Конфигурация 1С:Управление производственным предприятием 1.3 (УПП) содержит в себе подсистему расчета зарплаты, архитектурно идентичную 1С:ЗУП 2.5. Поскольку развитие ЗУП 2.5 прекращено, а 1С:ЗУП 3.1 предлагает современный функционал, многие предприятия принимают решение вынести расчет зарплаты в отдельную базу. Однако штатного обмена между УПП 1.3 и ЗУП 3.1 «из коробки» не существует. Рассмотрим подробнее, какими способами можно связать эти системы для корректного ведения учета.
Перед тем как настраивать регулярный обмен, необходимо перенести исторические данные (остатки, кадровую историю и сведения для расчета среднего заработка) из УПП в ЗУП 3.1. Несмотря на отсутствие прямой кнопки «Перенос из УПП», мы можем воспользоваться штатным помощником перехода с ЗУП 2.5.
Разберем алгоритм действий по шагам:
УПП 1.3 обновлен до актуального. Внутренняя версия зарплатного блока должна соответствовать последним требованиям, которые ЗУП 3.1 предъявляет к источнику.ЗУП 3.1 запустим помощник «Перенос данных из предыдущих программ».УПП и ЗУП 2.5 имеют схожую структуру метаданных в части зарплаты, ЗУП 3.1 сможет прочитать данные из УПП, если релиз конфигурации-источника является достаточно «свежим».Важный нюанс: рекомендуется выбирать «краткий» вариант переноса (только остатки и кадровую историю). Полный перенос за несколько лет в случае с УПП часто завершается ошибками из-за специфических доработок в производственных базах.
Основная задача после разделения баз — ежемесячно передавать результаты расчета зарплаты в УПП для формирования бухгалтерских проводок. В ЗУП 3.1 основным документом является ОтражениеЗарплатыВБухучете. В УПП 1.3 его аналогом выступает ОтражениеЗарплатыВРеглУчете.
Проанализируем основную проблему: в ЗУП 3.1 аналитика ограничивается справочником СпособыОтраженияЗарплатыВБухучете (просто наименование), в то время как в УПП способ отражения содержит в себе жесткую привязку к счетам учета и аналитике (СтатьиЗатрат, НоменклатурныеГруппы, ПодразделенияОрганизаций).
Рассмотрим два варианта решения этой задачи:
Создадим правила обмена в конфигурации Конвертация данных 2.1. Выясним причину, по которой это решение является наиболее гибким: оно позволяет настроить сложный маппинг аналитики без изменения кода конфигураций.
Процесс настройки выглядит так:
ЗУП 3.1 и УПП 1.3.Организации, Подразделения и ФизическиеЛица (лучше всего по UID или связке ИНН + СНИЛС).ОтражениеЗарплатыВБухучете пишем алгоритм, который при загрузке в УПП будет искать соответствие способа отражения из ЗУП и заполнять аналитику (счета и субконто) в УПП.Чтобы не «хардкодить» настройки в правилах, профессиональным решением будет создание в УПП дополнительного Регистра сведений (например, СопоставлениеСпособовОтраженияЗарплаты), где бухгалтер сам сможет указать, какой СпособОтражения из ЗУП какой СтатьеЗатрат и НоменклатурнойГруппе соответствует.
Если мы хотим избежать постоянной выгрузки/загрузки файлов, можно реализовать заполнение документа в УПП напрямую из ЗУП. Посмотрим на логику работы такой обработки:
В конфигурации УПП создается внешняя обработка, которая подключается к базе ЗУП, считывает данные документа отражения и программно заполняет табличную часть документа ОтражениеЗарплатыВРеглУчете.
Пример фрагмента кода для инициализации подключения:
ПараметрыСоединения = "Srvr=""" + ИмяСервера + """;Ref=""" + ИмяБазы + """;Usr=""" + Логин + """;Pwd=""" + Пароль + """;";
V83КомConnector = Новый COMОбъект("V83.COMConnector");
Попытка
СоединениеЗУП = V83КомConnector.Connect(ПараметрыСоединения);
Исключение
Сообщить("Не удалось подключиться к ЗУП: " + ОписаниеОшибки());
Возврат;
КонецПопытки;
После установления связи мы можем выполнять запросы к базе ЗУП напрямую из УПП. Рассмотрим пример получения данных:
ЗапросЗУП = СоединениеЗУП.NewObject("Запрос");
ЗапросЗУП.Текст =
"ВЫБРАТЬ
| Отражение.СпособОтражения.Наименование КАК СпособНаименование,
| Отражение.Сумма КАК Сумма,
| Отражение.Подразделение.Наименование КАК ПодразделениеНаименование
|ИЗ
| Документ.ОтражениеЗарплатыВБухучете.Начисления КАК Отражение
|ГДЕ
| Отражение.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон";
ЗапросЗУП.УстановитьПараметр("ДатаНач", НачалоМесяца);
ЗапросЗУП.УстановитьПараметр("ДатаКон", КонецМесяца);
Результат = ЗапросЗУП.Выполнить().Выгрузить();
Далее, используя полученную таблицу, мы сопоставляем наименования подразделений и способов отражения с объектами УПП и заполняем документ. Преимущество этого метода заключается в том, что пользователю не нужно выходить из УПП для получения данных из ЗУП.
Для стабильной работы любого обмена важно определить «мастер-систему» для справочников. Обычно в связке УПП — ЗУП основной системой для кадровых данных становится ЗУП, а для финансовой аналитики — УПП.
Проанализируем ключевые моменты синхронизации:
ЗУП структура подразделений шире (для штатного расписания), чем в УПП. В этом случае в УПП передаются только «центры финансовой ответственности», а соответствие настраивается через реквизит «Родитель» или дополнительные свойства.ЗУП 3.1 (включая обмен с банками). В УПП в этом случае выгружаются только сводные суммы по банку или кассе без детализации по каждому сотруднику, чтобы не перегружать базу лишними проводками по 70 счету.Связка УПП 1.3 и ЗУП 3.1 требует индивидуального подхода. Если ваша база УПП сильно доработана, наиболее надежным путем будет написание собственных правил через Конвертацию данных 2.1 с использованием промежуточного регистра сопоставления аналитик. Это позволит сохранить прозрачность учета и избежать ошибок при расчете себестоимости продукции в УПП.