Как добавить колонку «Возраст» в отчет по кадровым изменениям в 1С:ЗУП 3.1?

Пользователь 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При переходе с редакции 2.5 на 1С:Зарплата и Управление Персоналом 3.1 кадровики и бухгалтеры часто сталкиваются с тем, что в привычных отчетах (например, «Кадровые изменения») отсутствует поле «Возраст». Нажатие на обычную кнопку «Настройка» не дает возможности добавить вычисляемое поле, из-за чего приходится выгружать данные в Excel и считать возраст вручную.

Рассмотрим, как настроить расчет возраста прямо в программе в пользовательском режиме, без обращения к программистам и без изменения конфигуратора.

Причина разницы в интерфейсе настроек отчетов

Выясним, почему стандартная кнопка «Настройка» на форме отчета не позволяет добавить пользовательское поле. В 1С:ЗУП 3.1 за интерфейс отчетов отвечает Библиотека Стандартных Подсистем (БСП). По кнопке «Настройка» открывается упрощенный режим настройки, предназначенный для быстрой отборки и группировки полей.

Полный режим настройки Системы компоновки данных (СКД), где находится закладка «Пользовательские поля», спрятан в дополнительном меню формы.

Инструкция по переходу к расширенным настройкам варианта отчета

Для создания вычисляемого поля выполним следующие шаги:

  1. Откроем отчет «Кадровые изменения».
  2. В командной панели отчета нажмем кнопку «Еще».
  3. В выпадающем меню перейдем в раздел «Прочее» и выберем пункт «Изменить вариант отчета».
  4. В opened окне настройки схемы компоновки данных перейдем на вкладку «Пользовательские поля».

Создание пользовательского вычисляемого поля «Возраст»

Проанализируем порядок действий на вкладке «Пользовательские поля». Если в наборе данных отчета доступен реквизит даты рождения физического лица (например, [Сотрудник.Физическое лицо.Дата рождения] или [Физическое лицо.Дата рождения]), выберем команда «Добавить новое поле выражение».

В пользовательском режиме СКД нельзя вызывать глобальные функции общих модулей 1С, однако можно использовать базовые встроенные функции выражений СКД, такие как Год(), Месяц(), День() и ТекущаяДата().

Составим выражение для расчета полных лет сотрудника на текущую дату:


Выбор 
    Когда Месяц(ТекущаяДата()) = Месяц([Дата рождения]) И День(ТекущаяДата()) >= День([Дата рождения]) 
        Тогда Год(ТекущаяДата()) - Год([Дата рождения]) 
    Когда Месяц(ТекущаяДата()) < Месяц([Дата рождения]) 
        Тогда Год(ТекущаяДата()) - Год([Дата рождения]) - 1 
    Иначе Год(ТекущаяДата()) - Год([Дата рождения]) 
Конец

Обратите внимание: если вы хотите рассчитывать возраст не на текущий день, а на дату окончания периода отчета, вместо функции ТекущаяДата() следует вызывать параметр СКД ПараметрыДанных.КонецПериода.

Альтернативные варианты решения

Рассмотрим ситуации, когда указанный способ может не подойти:

  1. Дата рождения отсутствует в схеме отчета: Если в исходном запросе СКД отчета «Кадровые изменения» разработчики не вывели реквизит даты рождения, создать пользовательское поле в режиме 1С:Предприятия не удастся. В этом случае потребуется доработка отчета через конфигуратор или расширение.
  2. Использование альтернативного типового отчета: Можно сформировать отчет «Личные данные сотрудников», в котором колонка «Возраст» присутствует по умолчанию, настроить в нем необходимые кадровые группировки и сохранить вариант отчета для дальнейшей работы.
← На главную