Привет! Может помочь кто-нибудь в вопросе: Пытаюсь реализовать расчет возраста сотрудника с разбивкой результата на годы, месяцы и дни. Написал код на основе примера из синтаксис-помощника из 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 &НаКлиентеПроцедура ПередЗаписью(Отказ, ПараметрыЗаписи) РасчетВозраста(Знач РасчетДатыРождения, Знач РасчетТекущейДаты, Лет, Месяцев, Дней);КонецПроцедуры