1С:ЗУП как вывести список юбиляров текущего года — 1C-h
 

1С:ЗУП как вывести список юбиляров текущего года

В 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) &lt; &amp;ДатаОтчета
								ТОГДА 1
							ИНАЧЕ 0
						КОНЕЦ) / 5 - (ВЫРАЗИТЬ((РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) + ВЫБОР
								КОГДА ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, МЕСЯЦ, РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) * 12) &lt; &amp;ДатаОтчета
									ТОГДА 1
								ИНАЧЕ 0
							КОНЕЦ) / 5 КАК ЧИСЛО(10, 0))) = 0
						ТОГДА РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) + ВЫБОР
								КОГДА ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, МЕСЯЦ, РАЗНОСТЬДАТ(ФизическиеЛица.ДатаРождения, &ДатаОтчета, ГОД) * 12) <ДатаОтчета
									ТОГДА 1
								ИНАЧЕ 0
							КОНЕЦ
					ИНАЧЕ 0
				КОНЕЦ
		ИНАЧЕ NULL
	КОНЕЦ КАК Юбилей
ИЗ
	Справочник.ФизическиеЛица КАК ФизическиеЛица 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Next Post

Дни накопленного/неотработанного отпуска - как получить отчет в ЗУП (1С: Зарплата и Управление персоналом)

Вт Июл 23 , 2019
Вопрос Как в программе «Зарплата и Управление персоналом получить отчет, содержащий дни накопленного или неотработанного отпуска? Ответ Для этого нужно открыть форму элемента справочника «Сотрудники»: меню «Кадры — Сотрудники» в редакции 3.1 или меню «Предприятие — Сотрудники» в редакции 2.5, двойной щелчок мыши на сотруднике. Откроется диалоговая форма сотрудника (еще […]