При настройке интеграции и обмена данными между «1С:Зарплата и управление персоналом 3.1» и «1С:ERP Управление предприятием» специалисты часто сталкиваются со следующей проблемой: документ Отражение зарплаты в финансовом учете требует заполнения управленческих подразделений. Однако в 1С:ЗУП версии ПРОФ справочник Структура предприятия остается пустым, а реквизит Источник на форме элемента недоступен для ручного редактирования.
Разберем детально, почему возникает эта коллизия, как устроена взаимосвязь справочников и какими способами можно правильно синхронизировать управленческую и регламентированную структуры.
В архитектуре прикладных решений 1С реализовано четкое разделение двух видов учета:
Подразделения организаций. Эти подразделения привязаны к конкретным юридическим лицам и используются для кадровых приказов, табельного учета, начисления зарплаты и отчетности в контролирующие органы.Структура предприятия. Она описывает сквозную иерархию подразделений бизнеса без жесткой привязки к организациям компании.В версии 1С:ЗУП ПРОФ ведение параллельной управленческой структуры штатно заблокировано: метаданные справочника присутствуют, но скрыты и отключены функциональной опцией ИспользоватьЗарплатаКадрыКорпоративнаяПодсистемы. Полноценная работа с двумя независимыми деревьями подразделений предусмотрена только в версиях КОРП, ERP и КА.
Реквизит Источник в справочнике Структура предприятия имеет тип ссылки на Подразделения организаций, но на форме элемента представлен в виде информационного поля. Система проектировалась так, чтобы заполнять эту связь программно при соблюдении условия полного соответствия юридической и управленческой структур.
Проанализируем типовые механизмы конфигурации. В общем модуле ОрганизационнаяСтруктураСобытия присутствует процедура ОбновитьСтруктуруПредприятия, которая отвечает за зеркальное создание управленческих подразделений на основе справочника подразделений организаций.
По умолчанию в начале процедуры стоят проверки функциональных опций:
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьЗарплатаКадрыКорпоративнаяПодсистемы") Тогда
Возврат;
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("СтруктураПредприятияНеСоответствуетСтруктуреЮридическихЛиц") Тогда
Возврат;
КонецЕсли;
В версии ПРОФ первая опция всегда возвращает значение Ложь, из-за чего обновление не выполняется. Чтобы инициировать заполнение справочника, рассмотрим два пути:
ОбновитьСтруктуруПредприятия и запустить ее вызов для всех существующих подразделений.Если в базе кадровики регулярно добавляют новые подразделения организаций, разового запуска обработки будет недостаточно. Чтобы не менять типовую конфигурацию и обеспечить стабильное обновление при будущих релизах, перенесем логику в расширение конфигурации.
Создадим расширение с назначением Адаптация или Дополнение и переопределим процедуру модуля с помощью аннотации &Вместо или подпишемся на события записи справочника ПодразделенияОрганизаций.
Посмотрим на пример логики синхронизации, которую можно реализовать в расширении или внешней обработке:
Выборка = Справочники.ПодразделенияОрганизаций.Выбрать();
Пока Выборка.Следующий() Цикл
СсылкаПодразделения = Выборка.Ссылка;
// Ищем уже созданный элемент управленческой структуры
УправленческоеПодразделение = Справочники.СтруктураПредприятия.НайтиПоРеквизиту("Источник", СсылкаПодразделения);
Если УправленческоеПодразделение.Пустая() Тогда
НовыйЭлемент = Справочники.СтруктураПредприятия.СоздатьЭлемент();
НовыйЭлемент.Наименование = Выборка.Наименование;
НовыйЭлемент.Источник = СсылкаПодразделения;
// Синхронизируем родительский узел иерархии
Если ЗначениеЗаполнено(Выборка.Родитель) Тогда
РодительУпр = Справочники.СтруктураПредприятия.НайтиПоРеквизиту("Источник", Выборка.Родитель);
Если ЗначениеЗаполнено(РодительУпр) Тогда
НовыйЭлемент.Родитель = РодительУпр;
КонецЕсли;
КонецЕсли;
НовыйЭлемент.Записать();
КонецЕсли;
КонецЦикла;
Такой подход обеспечивает корректное заполнение реквизита Источник, сохраняет иерархическую соподчиненность элементов и не нарушает целостность данных информационной базы.
Проанализируем альтернативный архитектурный вариант. Если в ЗУП ПРОФ управленческий учет не ведется и искусственное наполнение служебного справочника нежелательно, правильнее всего вынести логику сопоставления в правила конвертации данных (КД 2) или обработчики EnterpriseData.
Разберем схему реализации:
Структура предприятия на стороне ERP.Если же предприятие планирует активно использовать сложную сквозную оргструктуру, матрицы грейдов и управленческую аналитику затрат на оплату труда непосредственно в кадровой системе, оптимальным долгосрочным решением станет штатный апгрейд конфигурации с ЗУП ПРОФ до уровня 1С:ЗУП КОРП.