В 1С:ЗУП есть типовой отчет с личными данными: меню «Кадры — Кадровые отчеты — Личные данные сотрудников».
Этот отчет можно настроить на вывод юбиляров следующим образом.
В отчете нажмите на кнопку «ЕЩЕ», выберите пункт «Прочее — Изменить вариант отчета…»
Откройте вкладку Пользовательские поля». Нажмите на кнопку «Добавить — Новое поле выражение…». В поле «Заголовок» напишите «Юбилей». В поле Выражение детальных записей вставьте текст:
Выбор Когда [Дата рождения] <> ДатаВремя(1, 1, 1) Тогда Выбор Когда (РазностьДат([Дата рождения], [Параметры.Дата], "год") + Выбор Когда ДобавитьКДате([Дата рождения], "МЕСЯЦ", РазностьДат([Дата рождения], [Параметры.Дата], "ГОД") * 12) < [Параметры.Дата] Тогда 1 Иначе 0 Конец) % 5 = 0 Тогда РазностьДат([Дата рождения], [Параметры.Дата], "год") + Выбор Когда ДобавитьКДате([Дата рождения], "МЕСЯЦ", РазностьДат([Дата рождения], [Параметры.Дата], "ГОД") * 12) < [Параметры.Дата] Тогда 1 Иначе 0 Конец Иначе 0 Конец Иначе Null Конец
Нажмите «ОК».
Перейдите на вкладку «Поля», раскройте в дереве доступных полей раздел «Пользовательские поля» и двойным щелчком на слове «Юбилей» поместите поле в таблицу выбранных полей справа.
Нажмите на кнопку «Завершить редактирование».
Если теперь нажать на кнопку Сформировать», то в отчет в графе «Юбилей» появятся числа с количеством лет юбиляров.
Осталось сохранить новую настройку отчета — иконка с желтой папкой рядом с кнопкой «Настройки» — Сохранить вариант отчета», укажите наименование, например, «Юбиляры», и сохраните нажатием на кнопку «Сохранить».
Примечание
Отчет показывает список людей, которым исполнится круглое количество лет (с точностью до пяти) от даты отчета — в ближайший год.
Т.е. если дата отчета 25.03.2019 года, сотрудник родился 02.01.1985, то 35 лет ему исполнится 02.01.2020, т.е. до того, как истечет период 25.03.2019 — 24.03.2020.
Если Вам необходимо получить юбиляров календарного года, т.е. в интервале с 01.01.2019 — 31.12.2019, то просто установите дату отчета 01.01.2019
Пояснения для начинающих программистов
В приведенном коде используется конструкция «% 5», означающая, что требуется определить остаток от деления на 5. Эта конструкция не является доступной в языке запросов. Т.к. «Выражение детальных записей» не является итерпретатором языка запросов, то такая конструкция тут доступна. Если появится необходимость отладить этот код в конструкторе запросов, то можно использовать вычитание с преобразованием типа «ВЫРАЗИТЬ».
Например, для отладки можно написать такой запрос:
ВЫБРАТЬ ФизическиеЛица.Ссылка КАК Ссылка, ФизическиеЛица.ДатаРождения КАК ДатаРождения, ВЫБОР КОГДА ФизическиеЛица.ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1) ТОГДА ВЫБОР КОГДА (РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) + ВЫБОР КОГДА ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, МЕСЯЦ, РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) * 12) < &ДатаОтчета ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) / 5 - (ВЫРАЗИТЬ((РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) + ВЫБОР КОГДА ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, МЕСЯЦ, РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) * 12) < &ДатаОтчета ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) / 5 КАК ЧИСЛО(10, 0))) = 0 ТОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) + ВЫБОР КОГДА ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, МЕСЯЦ, РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) * 12) <ДатаОтчета ТОГДА 1 ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ ИНАЧЕ NULL КОНЕЦ КАК Юбилей ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица