Как в 1С:ЗУП 3.1 указать и получить руководителя подразделения?

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

При переходе с версии 1С:ЗУП 2.5 на 1С:ЗУП 3.1 специалисты часто сталкиваются с вопросом: где теперь настраиваются руководители подразделений? В старой редакции существовал удобный регистр сведений ОтветственныеЛицаОрганизаций, позволявший явно зафиксировать ответственных лиц не только для всей организации, но и для каждого подразделения. Разберем особенности архитектуры ЗУП 3.1 и рассмотрим все возможные варианты решения этой задачи для формирования управленческих документов, печатных форм и почтовых рассылок.

Архитектурная логика ЗУП 3.1: почему нет типового регистра

Проанализируем типовой функционал программы. В конфигурации 1С:Зарплата и Управление Персоналом ред. 3.1 (версии ПРОФ) регистр сведений для ответственных лиц привязан исключительно к справочнику Организации. Типового регистра сведений по ответственным лицам подразделений в версии ПРОФ нет.

Разработчики 1С заложили следующую концепцию:

  1. Разделение версий ПРОФ и КОРП: полноценная управленческая структура со справочником Структура предприятия и закреплением руководителей подразделений штатно присутствует в версии КОРП.
  2. Привязка к штатному расписанию: в кадровом учете руководитель рассматривается не как конкретное физическое лицо, а как позиция штатного расписания. Физическое лицо, занимающее эту позицию, может меняться в результате кадровых переводов, увольнений или временного замещения.
  3. Интеграция с сервисом «1С:Кабинет сотрудника»: при активации функционала взаимодействия с кабинетом сотрудника в карточках подразделений появляется возможность указания руководителя для построения иерархии согласования.

Если перед нами стоит чисто прикладная задача — быстро получать ФИО и контакты руководителя для печатных форм или рассылок, рассмотрим практические способы ее реализации без модификации типовой конфигурации.

Способ 1. Использование механизма дополнительных реквизитов (без программирования)

Рассмотрим самый доступный вариант, который не требует изменения метаданных и сохраняет конфигурацию на полной типовой поддержке.

Разберем по шагам настройку дополнительного реквизита:

  1. Перейдем в раздел Администрирование → Общие настройки → Дополнительные реквизиты и сведения.
  2. В списке объектов найдем справочник Подразделения и добавим новый дополнительный реквизит.
  3. Выберем тип значения. Здесь доступны два подхода:
    1. Тип «Сотрудник» / «Физическое лицо»: позволяет сразу выбрать конкретного человека в карточке подразделения. Основной минус — при смене руководителя реквизит придется обновлять вручную.
    2. Тип «Позиция штатного расписания»: наиболее грамотный подход, если ведется штатное расписание. Вы привязываете руководящую позицию (например, «Начальник отдела»), а конкретного сотрудника на текущую дату получаете запросом.

Ограничение метода: стандартные дополнительные реквизиты не обладают периодичностью. Это означает, что программа хранит только текущее значение и не позволит автоматически узнать, кто возглавлял подразделение полгода назад.

Способ 2. Создание периодического регистра через расширение конфигурации

Если для работы требуется сохранять историю смены ответственных лиц на определенные даты, создадим собственное решение в расширении. Это сохранит возможность беспрепятственного типового обновления конфигурации.

Разберем порядок действий:

  1. Создадим новое расширение конфигурации в режиме Конфигуратор.
  2. Добавим заимствованный справочник Подразделения (или СтруктураПредприятия при необходимости).
  3. Создадим новый периодический регистр сведений (периодичность — В пределах дня или Позиция регистратора):
    1. Измерения: Подразделение (тип СправочникСсылка.Подразделения).
    2. Ресурсы: ФизическоеЛицо (тип СправочникСсылка.ФизическиеЛица) или Сотрудник (тип СправочникСсылка.Сотрудники), Должность (тип СправочникСсылка.Должности).
  4. В расширении добавим форму списка или выведем гиперссылку в карточку подразделения для удобного заполнения пользователями.

Посмотрим на пример запроса для получения актуального руководителя подразделения на заданную дату через созданный регистр сведений:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |    Ответственные.ФизическоеЛицо КАК Руководитель,
    |    Ответственные.Должность КАК Должность
    |ИЗ
    |    РегистрСведений.ОтветственныеЛицаПодразделений.СрезПоследних(&Период, Подразделение = &Подразделение) КАК Ответственные";

Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Подразделение", ВыбранноеПодразделение);

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    ТекущийРуководитель = Выборка.Руководитель;
КонецЕсли;

Способ 3. Программное вычисление через штатное расписание

Если на предприятии строго ведется штатное расписание и внедрена система должностей, руководителя можно определять программно. Для этого анализируется регистр сведений ЗанятыеПозицииШтатногоРасписания.

Выясним логику такого алгоритма:

  1. В позиции штатного расписания или должности определяется признак руководящей роли (например, через дополнительный реквизит должности или поиск по ключевым словам/категориям).
  2. Выполняется запрос к срезу последних кадровых данных для нахождения сотрудника, занимающего данную позицию в указанном подразделении.
  3. Учитываются кадровые условия: временное отсутствие, совмещение или исполнение обязанностей.

Резюме: для простых задач и небольших баз оптимально использовать механизм дополнительных реквизитов. Если критически важна история назначений или требуется интеграция в печатные формы на исторические даты — наилучшим решением будет вынесение периодического регистра сведений в расширение конфигурации.

← На главную