Как организовать постоянный обмен данными между 1С:УПП 1.3 и 1С:ЗУП 3.1

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

Переход с комплексных систем на раздельный учет в 1С:ЗУП 3.1 и 1С:Бухгалтерию 3.0 при сохранении 1С:УПП 1.3 в качестве управленческой базы — классический сценарий. Однако основная сложность заключается в том, что «1С:УПП» является устаревшей конфигурацией и не поддерживает современный формат обмена Enterprise Data (ED), который является стандартным для «1С:ЗУП 3.1». В этой статье мы разберем несколько проверенных стратегий настройки обмена, проанализируем нюансы синхронизации данных и выясним, как минимизировать затраты на разработку.

Вариант 1. Классический обмен через Конвертацию данных 2.1

Это самый надежный и гибкий метод. Поскольку в «1С:ЗУП 3.1» сохранена встроенная обработка УниверсальныйОбменДаннымиXML, мы можем использовать правила, созданные в конфигурации «1С:Конвертация данных 2.1». Проанализируем, какие объекты необходимо включить в обмен в первую очередь:

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

Для реализации этого метода нам потребуется создать файл правил (XML), который будет описывать сопоставление полей. Рассмотрим важный момент: в «1С:ЗУП 3.1» структура справочника Сотрудники отличается от «1С:УПП». Настроим сопоставление физических лиц не по внутреннему идентификатору (GUID), а по СНИЛС и ИНН, так как это обеспечит уникальность при загрузке из разных систем.

Вариант 2. Упрощенная выгрузка через XML (Минималистичный подход)

Если нет необходимости в полной синхронизации всех кадровых изменений, рассмотрим вариант обмена только итоговыми данными. Как показывает практика, для управленческого учета в «1С:УПП» часто достаточно перегружать всего три типа документов раз в месяц. Разберем этот алгоритм подробнее:

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


// Пример упрощенной структуры выгрузки проводок
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ПутьКФайлу);
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("ДанныеЗарплаты");

Пока ВыборкаДокументов.Следующий() Цикл
    ЗаписьXML.ЗаписатьНачалоЭлемента("Проводка");
    ЗаписьXML.ЗаписатьАтрибут("СчетДт", Строка(ВыборкаДокументов.СчетДт));
    ЗаписьXML.ЗаписатьАтрибут("Сумма", Строка(ВыборкаДокументов.Сумма));
    // Добавление аналитики: подразделения, номенклатурные группы
    ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();

На стороне «1С:УПП» создается встречная обработка загрузки, которая читает этот файл и создает документ Отражение зарплаты в регламентированном учете. Этот способ исключает проблемы с несовместимостью версий метаданных.

Вариант 3. Транзитный обмен через 1С:Бухгалтерию 3.0

Если в вашей схеме учета уже присутствует «1С:Бухгалтерия 3.0» (БП), мы можем использовать её как «переходник». Выясним преимущества этой схемы:

  1. Между ЗУП 3.1 и БП 3.0 настроен штатный бесшовный обмен через Enterprise Data. Он поддерживается фирмой «1С» и не требует доработки при обновлениях.
  2. Для связи БП 3.0 и УПП 1.3 существуют типовые правила переноса данных (или их легче адаптировать).

Таким образом, данные о зарплате сначала попадают в регламентированную бухгалтерию, проходят проверку бухгалтером, а затем транзитом уходят в УПП для целей управленческого учета. Это позволяет избежать прямой разработки правил «ЗУП 3.1 <-> УПП 1.3».

Вариант 4. Использование HTTP-сервисов для оперативного обмена

Для компаний, которым важна актуальность данных «здесь и сейчас», использование файлового обмена может быть неудобным. Разберем современный подход с использованием HTTP-сервисов. Проанализируем шаги реализации:

В конфигурации «1С:УПП» (или в расширении для неё) создается HTTP-сервис с методом POST. Этот сервис будет принимать данные в формате JSON. В «1С:ЗУП 3.1» настраивается подписка на событие проведения документа, которая отправляет данные в УПП. Рассмотрим пример кода отправки данных из ЗУП:


Соединение = Новый HTTPСоединение("server_upp", , "admin", "password");
Запрос = Новый HTTPЗапрос("/v1/salary_data");
Запрос.УстановитьТелоИзСтроки(ДанныеВФорматеJSON, КодировкаТекста.UTF8);
Ответ = Соединение.ОтправитьДляОбъекта(Запрос);

Если Ответ.КодСостояния <> 200 Тогда
    ЗаписьЖурналаРегистрации("Обмен", УровеньЖурналаРегистрации.Ошибка, , , "Ошибка передачи данных");
КонецЕсли;

Этот метод работает стабильнее, чем старый COM-обмен, так как не зависит от разрядности платформы (x86/x64) и установленных на сервере компонент.

Важные нюансы синхронизации НСИ и аналитики

При настройке любого из вышеперечисленных методов мы обязательно столкнемся с проблемой разности аналитических разрезов. Рассмотрим две главные «ловушки»:

  1. Способы отражения зарплаты: В ЗУП 3.1 это фактически просто справочник с названиями. В УПП же объект СпособыОтраженияЗарплатыВРеглУчете жестко связан со счетами учета (Дт/Кт) и субконто. При обмене нам необходимо создать таблицу соответствий, где «Названию» из ЗУП будет соответствовать конкретный элемент справочника в УПП с заполненными счетами.
  2. Оценочные обязательства (Резервы): Механизм расчета резервов в ЗУП 3.1 (особенно методом МСФО) значительно сложнее, чем в УПП. При загрузке в УПП часто требуется «дообогащать» данные аналитикой (например, Номенклатурными группами), которой в ЗУП просто нет. Для этого в коде загрузки в УПП следует предусмотреть алгоритм распределения затрат согласно базе из производственных документов.

Рекомендация по сохранению типовой конфигурации

Чтобы оставить «1С:УПП» на поддержке и не усложнять процесс обновления (которые все еще выходят в части регламентированной отчетности), настоятельно рекомендуем выносить все механизмы обмена в расширения конфигурации. В расширении можно создать необходимые HTTP-сервисы, новые регистры сведений для хранения маппинга (сопоставления) объектов и обработчики загрузки. Это позволит сохранить основную конфигурацию максимально «чистой».

← На главную