Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 мая 2024, 12:23

Выполнение кода при входе в систему (расчет возраста)

Автор Алексей_1985_06, 26 дек 2019, 10:46

0 Пользователей и 1 гость просматривают эту тему.

Алексей_1985_06

Ребят, подскажите есть справочник "Личный состав" в котором реквизиты "дата рождения" и "возраст", что нужно сделать что бы возраст рассчитывался каждый раз при входе в систему, т.е всегда был актуален... иначе этот расчет просто теряет всякий смысл.... Прошу помочь знатоков! Конфа самописная УФ 8.3.

&НаКлиенте
Процедура  РасчетВозраста()
Лет = 0;
Месяцев = 0;
Дней = 0;
ДатаРождения = Объект.ДатаРождения; 
Пока ДатаРождения <= ТекущаяДата() Цикл
ДатаРождения = ДобавитьМесяц(ДатаРождения,1);
Месяцев = Месяцев + 1;
КонецЦикла;
Месяцев = Месяцев-1;
Лет = Цел(Месяцев/12);
Месяцев = Месяцев-Лет*12;
Дней = Цел((ТекущаяДата() - ДобавитьМесяц(ДатаРождения,-1))/86400);

Строка = СтрокаСЧислом("; %1 год;; %1 года; %1 лет;",
    Лет,
    ВидЧисловогоЗначения.Количественное,
"L=ru");
Объект.Возраст = Строка;
КонецПроцедуры


&НаКлиенте
Процедура ДатаРожденияПриИзменении(Элемент)
РасчетВозраста ();
КонецПроцедуры


depb

У вас процедура на клиенте, там недоступен объект перечисление. Можно вынести эту часть кода в серверную процедуру или использовать предопределенное значение Объект.СемейноеПоложение = ПредопределенноеЗначение("Перечисление.СемейноеПоложение.НужноеЗначение");

antoneus

Сделайте регламентное задание и пусть пересчитывает возрасты раз в сутки.
А вообще, этот реквизит - возраст - где-нибудь используется?

wise

(0) согласен с (2) !
ЗАЧЕМ хранить.?? когда надо, тогда и рассчитывайте...
а перезаписывать элементы справочника при КАЖДОМ входе в систему... :thwrt: НЕЛЬЗЯ так делать.!
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск