При переходе с версии 1С:ЗУП 2.5 на 1С:ЗУП 3.1 специалисты часто сталкиваются с вопросом: где теперь настраиваются руководители подразделений? В старой редакции существовал удобный регистр сведений ОтветственныеЛицаОрганизаций, позволявший явно зафиксировать ответственных лиц не только для всей организации, но и для каждого подразделения. Разберем особенности архитектуры ЗУП 3.1 и рассмотрим все возможные варианты решения этой задачи для формирования управленческих документов, печатных форм и почтовых рассылок.
Проанализируем типовой функционал программы. В конфигурации 1С:Зарплата и Управление Персоналом ред. 3.1 (версии ПРОФ) регистр сведений для ответственных лиц привязан исключительно к справочнику Организации. Типового регистра сведений по ответственным лицам подразделений в версии ПРОФ нет.
Разработчики 1С заложили следующую концепцию:
Структура предприятия и закреплением руководителей подразделений штатно присутствует в версии КОРП.Если перед нами стоит чисто прикладная задача — быстро получать ФИО и контакты руководителя для печатных форм или рассылок, рассмотрим практические способы ее реализации без модификации типовой конфигурации.
Рассмотрим самый доступный вариант, который не требует изменения метаданных и сохраняет конфигурацию на полной типовой поддержке.
Разберем по шагам настройку дополнительного реквизита:
Ограничение метода: стандартные дополнительные реквизиты не обладают периодичностью. Это означает, что программа хранит только текущее значение и не позволит автоматически узнать, кто возглавлял подразделение полгода назад.
Если для работы требуется сохранять историю смены ответственных лиц на определенные даты, создадим собственное решение в расширении. Это сохранит возможность беспрепятственного типового обновления конфигурации.
Разберем порядок действий:
Подразделения (или СтруктураПредприятия при необходимости).Подразделение (тип СправочникСсылка.Подразделения).ФизическоеЛицо (тип СправочникСсылка.ФизическиеЛица) или Сотрудник (тип СправочникСсылка.Сотрудники), Должность (тип СправочникСсылка.Должности).Посмотрим на пример запроса для получения актуального руководителя подразделения на заданную дату через созданный регистр сведений:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Ответственные.ФизическоеЛицо КАК Руководитель,
| Ответственные.Должность КАК Должность
|ИЗ
| РегистрСведений.ОтветственныеЛицаПодразделений.СрезПоследних(&Период, Подразделение = &Подразделение) КАК Ответственные";
Запрос.УстановитьПараметр("Период", ТекущаяДата());
Запрос.УстановитьПараметр("Подразделение", ВыбранноеПодразделение);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ТекущийРуководитель = Выборка.Руководитель;
КонецЕсли;
Если на предприятии строго ведется штатное расписание и внедрена система должностей, руководителя можно определять программно. Для этого анализируется регистр сведений ЗанятыеПозицииШтатногоРасписания.
Выясним логику такого алгоритма:
Резюме: для простых задач и небольших баз оптимально использовать механизм дополнительных реквизитов. Если критически важна история назначений или требуется интеграция в печатные формы на исторические даты — наилучшим решением будет вынесение периодического регистра сведений в расширение конфигурации.