Как организовать выгрузку данных о зарплате из ЗУП 3.1 в УПП 1.3?

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

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

Почему нет типового обмена?

ЗУП 3.1 базируется на современных механизмах платформы 8.3, активно использует управляемые формы и новую структуру регистров накопления. УПП 1.3, напротив, является решением предыдущего поколения. Разработчики не предусмотрели механизмов прямой синхронизации между ними. Следовательно, нам с вами предстоит разработать собственный инструмент переноса данных.

Метод 1: Разработка собственных правил конвертации (КД 2.0)

Наиболее классическим способом решения является создание правил обмена с помощью конфигурации Конвертация данных 2.0. Разберем этот путь по шагам:

  1. Проанализируем структуру объектов-источников в ЗУП 3.1. Обычно нас интересуют документы типа ОтражениеЗарплатыВБухучете.
  2. Сопоставим эти объекты со структурой документов в УПП 1.3.
  3. Настроим правила конвертации свойств и алгоритмы конвертации объектов.
  4. Важно помнить, что структура справочников (например, Подразделения или СтатьиФинансирования) в этих программах различается, поэтому потребуется создание правил конвертации значений (маппинг).

Метод 2: Интеграция через COM-соединение

Для многих разработчиков более удобным и быстрым способом является написание внешней обработки, которая подключается к базе ЗУП 3.1 через COM-соединение. Это позволяет считывать данные напрямую из регистров накопления, минуя промежуточные файлы XML.

Рассмотрим примерный алгоритм работы такой обработки:


// Пример подключения к ЗУП 3.1 из УПП 1.3
COMОбъект = Новый COMОбъект("V83.COMConnector");
БазаЗУП = COMОбъект.Connect("Srvr=ИмяСервера;Ref=ИмяБазы;Usr=Пользователь;Pwd=Пароль");

// Выборка данных из регистра
Запрос = БазаЗУП.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ ... ИЗ РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК Данные";
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
    // Логика создания документов в УПП
    Док = Документы.ОтражениеЗарплатыВРеглУчете.СоздатьДокумент();
    // Заполнение реквизитов...
    Док.Записать();
КонецЦикла;

Метод 3: Использование промежуточной конфигурации

Если вы хотите максимально использовать типовые механизмы, рассмотрите вариант «буферной» базы. ЗУП 3.1 имеет типовой обмен с 1С:Бухгалтерией 3.0. Если ваша организация использует БП 3.0 в качестве промежуточного звена, можно настроить обмен «ЗУП -> БП», а затем доработать выгрузку из БП -> УПП. Этот путь сложнее в настройке, но более предсказуем при обновлениях конфигурации ЗУП.

Основные сложности при реализации

При проектировании обмена обязательно уделите внимание следующим моментам:

В заключение стоит отметить, что написание собственной обработки — это не просто задача на один вечер. Однако, основываясь на опыте коллег, можно справиться с этой задачей за 1-2 недели, если четко определить структуру выгружаемых данных и правила сопоставления объектов метаданных.

← На главную