helpf.pro
Регистрация

v8.3: Расчет возраста сотрудника с разбивкой результата на годы, месяцы и дни

Ledgik
09.03.2019 17:44Прочитано: 646

Привет! Может помочь кто-нибудь в вопросе: Пытаюсь реализовать расчет возраста сотрудника с разбивкой результата на годы, месяцы и дни. Написал код на основе примера из синтаксис-помощника из 1С. Пытаюсь вызвать код на исполнение, но он пишет об ошибке при проверке. Я новичок в вопросах программирования в 1С. Так что сообщение об ошибке для меня "тайна покрытая мраком". Код привожу ниже. Помогите решить проблему!

Код ошибки вот такой:

Код 1C v 8.3
 {Справочник.Расчет.Форма.ФормаЭлемента.Форма(68,17)}: Ожидается выражение   РасчетВозраста(<<?>>Знач РасчетДатыРождения,  (Проверка: Сервер){Справочник.Расчет.Форма.ФормаЭлемента.Форма(68,41)}: Ожидается выражение   РасчетВозраста(Знач РасчетДатыРождения,<<?>>  (Проверка: Сервер){Справочник.Расчет.Форма.ФормаЭлемента.Форма(74,17)}: Ожидается выражение   РасчетВозраста(<<?>>Знач РасчетДатыРождения,  (Проверка: Сервер){Справочник.Расчет.Форма.ФормаЭлемента.Форма(74,41)}: Ожидается выражение   РасчетВозраста(Знач РасчетДатыРождения,<<?>>  (Проверка: Сервер){Справочник.Расчет.Форма.ФормаЭлемента.Форма(68,17)}: Ожидается выражение   РасчетВозраста(<<?>>Знач РасчетДатыРождения,  (Проверка: Тонкий клиент){Справочник.Расчет.Форма.ФормаЭлемента.Форма(68,41)}: Ожидается выражение   РасчетВозраста(Знач РасчетДатыРождения,<<?>>  (Проверка: Тонкий клиент){Справочник.Расчет.Форма.ФормаЭлемента.Форма(74,17)}: Ожидается выражение   РасчетВозраста(<<?>>Знач РасчетДатыРождения,  (Проверка: Тонкий клиент){Справочник.Расчет.Форма.ФормаЭлемента.Форма(74,41)}: Ожидается выражение   РасчетВозраста(Знач РасчетДатыРождения,<<?>>  (Проверка: Тонкий клиент)   

Подскажите мне о каком выражении идет речь.

Код расчета возраста сотрудника:

Код 1C v 8.3
 &НаКлиентеПроцедура РасчетДатыРождения()   Стр = Элементы.ТЧВозраст.ТекущиеДанные;   Стр.ДатаРождения=Дата(Год(Элементы.ТЧВозраст.ДатаРождения()), Месяц(Элементы.ТЧВозраст.ДатаРождения()), День(Элементы.ТЧВозраст.ДатаРождения()));   КонецПроцедуры   
Код 1C v 8.3
 &НаКлиентеПроцедура РасчетТекущейДаты()   Стр = Элементы.ТЧВозраст.ТекущиеДанные;   Стр.ТекущаяДата = ТекущаяДата();КонецПроцедуры   
Код 1C v 8.3
 &НаСервереПроцедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)   Для Каждого Стр ИЗ Объект.ТЧВозраст Цикл   Стр.ТекущаяДата = ТекущаяДата();   КонецЦикла;КонецПроцедуры   
Код 1C v 8.3
 &НаКлиентеПроцедура ПриОткрытии(Отказ)   Для Каждого Стр ИЗ Объект.ТЧВозраст Цикл   Стр.ТекущаяДата = ТекущаяДата();   КонецЦикла;КонецПроцедуры   
Код 1C v 8.3
 &НаКлиентеПроцедура ТЧВозрастДатаРожденияПриИзменении(Элемент)   РасчетДатыРождения();КонецПроцедуры   
Код 1C v 8.3
 &НаКлиентеПроцедура ТЧВозрастТекущаяДатаПриИзменении(Элемент)   РасчетТекущейДаты();КонецПроцедуры   
Код 1C v 8.3
 &НаКлиентеПроцедура РасчетВозраста(Знач РасчетДатыРождения,    Знач РасчетТекущейДаты, Лет=0, Месяцев=0, Дней=0) Экспорт    Стр = Элементы.ТЧВозраст.ТекущиеДанные;   Если РасчетТекущейДаты>=РасчетДатыРождения Тогда    Лет1 = Год(РасчетТекущейДаты);     Месяцев1 = Месяц(РасчетТекущейДаты);     Если НачалоДня(РасчетТекущейДаты)<>НачалоДня(КонецМесяца(РасчетТекущейДаты)) Тогда      Дней1 = День(РасчетТекущейДаты);     Иначе       Дней1 = (((365*3+366)/4)/12); //В каждом месяце ровно 30,4375 дней.     КонецЕсли;     Лет2 = Год(РасчетДатыРождения);     Месяцев2 = Месяц(РасчетДатыРождения);     Если НачалоДня(РасчетДатыРождения)<>НачалоДня(КонецМесяца(РасчетДатыРождения)) Тогда       Дней2 = День(РасчетДатыРождения);     Иначе       Дней2 = (((365*3+366)/4)/12); //В каждом месяце ровно 30,4375 дней.     КонецЕсли;     Лет = Лет1 - Лет2;     Месяцев = Месяцев1 - Месяцев2;     Дней = Дней1 - Дней2;   Иначе    Лет = 0;     Месяцев = 0;     Дней = 0;   КонецЕсли; КонецПроцедуры     
Код 1C v 8.3
 &НаКлиентеПроцедура ТЧВозрастВозрастПриИзменении(Элемент)   РасчетВозраста(Знач РасчетДатыРождения,    Знач РасчетТекущейДаты, Лет, Месяцев, Дней);КонецПроцедуры   
Код 1C v 8.3
 &НаКлиентеПроцедура ПередЗаписью(Отказ, ПараметрыЗаписи)   РасчетВозраста(Знач РасчетДатыРождения,    Знач РасчетТекущейДаты, Лет, Месяцев, Дней);КонецПроцедуры   
Yandex
Возможно, вас также заинтересует
Реклама на портале
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.