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

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

Настройка одностороннего обмена данными из 1С:Зарплата и Управление Персоналом, редакция 3.1 (ЗУП 3.1), в 1С:Управление производственным предприятием, редакция 1.3 (УПП 1.3), является достаточно частой, но при этом весьма нетривиальной задачей. Она востребована компаниями, которые продолжают активно использовать УПП 1.3 для ведения регламентированного учета, но расчет заработной платы уже перенесли в ЗУП 3.1. Рассмотрим подробно, как организовать такой обмен, какие инструменты использовать и с какими сложностями мы можем столкнуться.

Выбор инструмента для обмена: Конвертация Данных 2 или Конвертация Данных 3

Первым и одним из самых важных шагов является выбор правильного инструмента для создания правил обмена. В нашем случае, когда одной из конфигураций является "вымерший мамонт" УПП 1.3, рекомендуется использовать "Конвертацию Данных 2" (КД2). Несмотря на свой возраст, КД2 зарекомендовала себя как надежный и гибкий инструмент для обмена данными между конфигурациями 1С:Предприятие 8 разных версий, особенно когда одна из них является устаревшей.

Мы выяснили, что "Конвертация Данных 3" (КД3), хотя и является более современной и поддерживает правила КД2, менее удобна для данного сценария. КД3 ориентирована на универсальный формат обмена EnterpriseData (ED), что хорошо для обмена между различными системами, не только 1С. Однако для специфической связки ЗУП 3.1 и УПП 1.3, где конфигурации имеют значительные архитектурные различия, КД2 считается более подходящей и менее сложной в освоении и применении.

Различия между КД2 и КД3, которые влияют на наш выбор:

  1. Механизм работы:
    • В КД2 мы описываем прямое преобразование данных из источника в приемник. Это означает, что правила напрямую указывают, как данные одного объекта конфигурации-источника должны быть преобразованы в данные объекта конфигурации-приемника.
    • В КД3 процесс обмена состоит из двух этапов: сначала данные источника преобразуются в универсальный формат ED, а затем из ED в формат базы-приемника. Этот двухэтапный подход добавляет гибкости, но усложняет процесс разработки правил для связки старой и новой конфигураций.
  2. Файлы правил:
    • КД2 использует один файл правил конвертации (как правило, с расширением .xml), который содержит всю логику преобразования.
    • В КД3 мы работаем с двумя отдельными файлами: один для правил выгрузки данных в универсальный формат, и второй — для правил загрузки из универсального формата в приемник.
  3. Файл обмена:
    • При использовании КД2 файл обмена (результат выгрузки) может включать в себя схему загрузки данных и даже код, управляющий загрузкой.
    • В КД3 файл обмена содержит только сами данные, что делает его более "чистым" и универсальным.
  4. Требования для загрузки:
    • Для загрузки данных, выгруженных с помощью КД2, нам достаточно иметь файл обмена и, при необходимости, сами правила обмена (если их нет в файле).
    • При работе с КД3 для успешной загрузки требуется файл обмена, правила загрузки данных и описание формата обмена.
  5. Разработка правил:
    • Для создания правил в КД2 программисту необходимо знать обе конфигурации – и источник, и приемник, чтобы корректно сопоставить их структуры.
    • В КД3 правила можно разрабатывать, зная только одну конфигурацию, если мы договорились об универсальном формате обмена с разработчиком второй части правил. Это удобно для распределенной разработки, но не так критично для нашей задачи.

Исходя из этих различий, КД2 является нашим предпочтительным выбором для обмена ЗУП 3.1 и УПП 1.3.

Где найти Конвертацию Данных 2?

Полную версию конфигурации "Конвертация данных", редакция 2.1 (например, релиз 2.1.8.2), можно найти на сайте 1С (на портале its.1c.ru) или на дисках ИТС. Важно отметить, что часто для старых редакций на ИТС доступны только обновления, а не полные дистрибутивы. В таких случаях вы можете поискать дистрибутивы на специализированных форумах или ресурсах по 1С, где пользователи делятся ими. Это критически важный шаг, так как без КД2 нам будет очень сложно двигаться дальше.

Пошаговая инструкция по настройке обмена (ручной запуск)

Предположим, что мы уже успешно получили дистрибутив КД2. Теперь рассмотрим пошаговый процесс создания правил обмена и выполнения ручной выгрузки/загрузки данных. Этот процесс требует внимания и аккуратности, особенно если мы не имеем опыта работы с Конвертацией Данных.

  1. Подготовка рабочей среды:
    1. Установите КД2: Разверните конфигурацию "Конвертация Данных", редакция 2.1, в отдельной информационной базе. Мы будем использовать эту базу для создания и редактирования правил.
    2. Извлеките универсальные обработки: После установки КД2, мы можем найти необходимые обработки для выгрузки/загрузки данных. Как правило, они находятся по пути: C:\Users\Имя_Пользователя\AppData\Roaming\1C\1cv8\tmplts\1c\Conversion\2_1_8_2 (путь может немного отличаться в зависимости от версии КД и операционной системы). Нам нужны следующие обработки:
      • ВыгрузкаЗагрузкаДанныхXML82.epf (или V8Exchan82.epf) — для работы с УПП 1.3 (платформа 8.2).
      • ВыгрузкаЗагрузкаДанныхXML83.epf (или V8Exchan83.epf) — для работы с ЗУП 3.1 (платформа 8.3).
    3. Выгрузите структуры метаданных:
      • Из УПП 1.3: Используйте обработку MD82Exp.epf для выгрузки структуры метаданных в файл (например, upp13_metadata.xml).
      • Из ЗУП 3.1: Используйте обработку MD83Exp.epf для выгрузки структуры метаданных в файл (например, zup31_metadata.xml).

      Эти обработки обычно можно найти в составе дистрибутива КД2 или на ИТС. Они позволяют "Конвертации Данных" получить информацию о всех объектах, реквизитах и табличных частях наших конфигураций.

    4. Загрузите структуры в базу КД2: Откройте базу "Конвертации Данных 2", перейдите в раздел "Конфигурации" и загрузите оба файла структуры метаданных. Укажите, какая структура соответствует конфигурации-источнику (ЗУП 3.1), а какая — конфигурации-приемнику (УПП 1.3).
  2. Создание правил обмена данными в КД2:
    1. В базе КД2 перейдите в раздел "Правила обмена данными" и создайте новое правило обмена.
    2. Укажите конфигурацию-источник – ЗУП 3.1, и конфигурацию-приемник – УПП 1.3.
    3. Внимание: В диалоге создания правил ни в коем случае не оставляйте переключатель на "Автоматически создать все правила обмена". Мы должны выбрать опцию "Создать новое правило", так как автоматическая генерация редко дает удовлетворительный результат для сложных обменов между сильно различающимися конфигурациями.
    4. Начинаем с конкретного документа: Выберите документ, который нам нужно переносить первым (например, "Отражение зарплаты в бухучете"). Создайте для него Правило Конвертации Объектов (ПКО).
    5. Пореквизитная настройка: Внутри ПКО для нашего документа начните создавать Правила Конвертации Свойств (ПКС). Это самая трудоемкая и сложная часть работы. Нам нужно будет для каждого реквизита документа-источника найти соответствующий реквизит в документе-приемнике и настроить правила их переноса. Здесь может потребоваться написание программного кода на встроенном языке 1С для сложных преобразований, расчетов или поиска по справочникам.
    6. Сохраните правила: После создания и настройки правил обмена, сохраните их в файл (например, zup31_to_upp13_rules.xml).
  3. Выгрузка и загрузка данных с помощью универсальных обработок:
    1. Выгрузка из ЗУП 3.1: Откройте базу ЗУП 3.1. Запустите внешнюю обработку V8Exchan83.epf (или УниверсальныйОбменДаннымиXML, если она встроена в конфигурацию).
      • Выберите ранее сохраненный файл правил обмена (zup31_to_upp13_rules.xml).
      • Укажите период выгрузки и отборы для документов.
      • Выполните выгрузку данных в файл XML (например, data_exchange.xml).
    2. Загрузка в УПП 1.3: Откройте базу УПП 1.3. Запустите внешнюю обработку V8Exchan82.epf (или УниверсальныйОбменДаннымиXML).
      • Выберите файл с выгруженными данными (data_exchange.xml).
      • Выполните загрузку данных.
    3. Анализ и отладка: После загрузки тщательно проверьте результаты в УПП 1.3. Если возникли ошибки или данные перенеслись некорректно, мы возвращаемся в базу КД2, исправляем правила обмена и повторяем процесс выгрузки/загрузки. Это итеративный процесс, требующий терпения и аналитических способностей.

Важно понимать: Самостоятельная настройка правил обмена без опыта работы с Конвертацией Данных — это очень сложная задача. Многие разработчики отмечают, что на детальное изучение КД2 и создание полноценных правил обмена для такой связки может уйти не менее месяца, а часто и дольше (некоторые проекты занимают 2-3 месяца). Именно поэтому подобные задачи часто решаются привлечением опытных специалистов. Для экономии времени можно использовать готовый шаблон правил обмена между ЗУП 3 и УПП 1.3.

Автоматизация обмена

Ручной запуск обмена через обработки подходит для тестирования, но для продуктивной работы нам необходима автоматизация. Рассмотрим возможные подходы:

  1. Использование внешних обработок в планировщике/фоновом задании:

    Если нам запрещено дорабатывать конфигурации (добавлять свои планы обмена), то наиболее простым вариантом является запуск уже знакомых нам обработок V8Exchan83.epf и V8Exchan82.epf через регламентные задания или планировщик операционной системы. Для этого нам потребуется написать небольшой внешний отчет или обработку, которая будет выполнять вызов функционала этих универсальных обработок в фоновом режиме, указывая путь к файлам правил и данных.

    Например, в регламентном задании ЗУП 3.1 мы можем вызывать экспорт данных, сохраняя XML-файл в определенную сетевую папку. А затем в УПП 1.3 другое регламентное задание будет забирать этот файл из папки и импортировать его.

  2. Создание собственного Плана обмена (если доработка конфигурации разрешена):

    Это более типовой и надежный способ организации обмена, который позволяет использовать встроенные механизмы регистрации изменений и обмена данными платформы 1С. Однако он требует внесения изменений в конфигурации:

    • В ЗУП 3.1: Если позволяет политика, план обмена можно добавить через расширение конфигурации. Это предпочтительный способ, так как он не изменяет типовую конфигурацию.
    • В УПП 1.3: Поскольку УПП 1.3 — старая конфигурация, и механизмы расширений для нее не так развиты, как в современных конфигурациях, скорее всего, придется добавлять план обмена непосредственно в саму конфигурацию. Это означает снятие УПП с поддержки (или частичное снятие с поддержки объектов, связанных с обменом) и усложняет будущие обновления.

    Создание Плана обмена предполагает не только добавление самого объекта ПланОбмена, но и настройку его состава (какие объекты должны регистрироваться к обмену) и использование в нем наших правил конвертации. После создания Плана обмена, вы сможете использовать типовые обработки для настройки узлов обмена и его выполнения по расписанию.

Что именно обменивать? Типовой состав данных ЗУП 3.1 -> УПП 1.3

При настройке обмена ЗУП 3.1 в УПП 1.3 обычно передаются следующие объекты:

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

Особенности синхронизации:

Нюансы и сложности при обмене

Давайте проанализируем основные сложности, с которыми мы сталкиваемся при создании такого обмена:

  1. Время и трудозатраты: Как уже упоминалось, процесс создания и отладки правил обмена с нуля занимает несколько месяцев. Это обусловлено необходимостью глубоко разбираться в структуре метаданных обеих конфигураций, их различиях, а также в логике отражения операций.
  2. Универсальность правил: Созданные нами правила обмена, скорее всего, не будут универсальными. Они будут заточены под специфику нашей конкретной информационной базы, доработки, используемые виды начислений и удержаний. Поэтому просто "взять скелет" или чужие правила и применить их без существенной доработки крайне сложно.
  3. Особенности проводок по резервам: Если в УПП нам необходимо отражать проводки по резервам, возможно, потребуется доработка правил обмена, так как типовые механизмы переноса могут не учитывать всех нюансов их формирования. Иногда приходится модифицировать сами документы УПП, чтобы они могли корректно создавать необходимые движения по регистрам.
  4. Сохранение нумерации документов: При обмене по готовым правилам, если документы выгружаются из ЗУП одновременно в управленческий и регламентированный учет, в УПП может сохраняться своя нумерация. Вид и номер документа из ЗУП будут дописываться в комментарий документа УПП, чтобы сохранить связь.
  5. Проведение документов после загрузки: После переноса документов в УПП их не всегда нужно проводить заново, так как они могут переноситься вместе с движениями (записями регистров). Однако, мы должны быть готовы к тому, что движения в УПП могут не совпадать с движениями в ЗУП 3.1 по некоторым регистрам из-за различий в алгоритмах и версиях платформы. Всегда проверяйте движения после загрузки.

Отладка правил обмена в КД2

Отладка правил обмена является неотъемлемой частью процесса разработки. Мы постоянно будем сталкиваться с ситуациями, когда данные переносятся некорректно или возникают ошибки. Вот как мы можем отлаживать наши правила в КД2:

  1. Использование обработки "Универсальный обмен данными XML": Эта обработка (V8Exchan82.epf / V8Exchan83.epf) является основным инструментом для тестирования и отладки. Она позволяет нам:
    • Выполнить выгрузку и загрузку данных в ручном режиме.
    • Автоматически сформировать текст модуля отладки с кодом обработчиков и подключить этот модуль при выполнении обмена.
  2. Пошаговая отладка:
    • Для отладки выгрузки данных код обработчиков берется из файла правил обмена.
    • Для отладки загрузки — из файла данных.
    • Мы должны запустить конфигуратор базы-источника (для отладки выгрузки) или базы-приемника (для отладки загрузки) в режиме отладки.
    • Затем открыть УниверсальныйОбменДаннымиXML, указать файл правил/данных и включить режим отладки в параметрах обработки.
    • Мы можем ставить точки останова в коде обработчиков (которые находятся в модуле, который будет создан для отладки), чтобы пошагово отслеживать выполнение кода и значения переменных. Для удобства, мы можем добавлять комментарии в код правил КД2, чтобы легче находить нужные места для останова.
  3. Использование оператора Сообщить(): Внутри кода обработчиков (например, в обработчиках "Перед выгрузкой", "После выгрузки", "При загрузке" и т.д.) мы можем временно вставлять вызовы Сообщить("Моя переменная: " + МояПеременная) для вывода значений переменных в окно сообщений при выполнении обмена. Это помогает быстро понять, какие данные приходят в обработчик и как они преобразуются.
  4. Анализ файла выгрузки XML: Иногда проще всего разобраться в ошибке, открыв сгенерированный файл .xml в текстовом редакторе (даже в блокноте). Это позволяет увидеть, какие данные были выгружены, в каком формате, и сравнить их с ожиданиями. Иногда даже правка правил в блокноте для мелких изменений может оказаться быстрее, чем переоткрытие КД2.
  5. Полезные ресурсы: Для глубокого изучения КД2 и ее отладки очень полезной будет книга "1С:Предприятие 8. Конвертация данных: обмен данными между прикладными решениями" авторов Бояркина и Филатова. Она подробно описывает все аспекты работы с этим инструментом.

Настройка обмена между ЗУП 3.1 и УПП 1.3 — это сложная, но выполнимая задача, требующая значительных усилий и специфических знаний. Если мы не имеем достаточного опыта, нам следует серьезно рассмотреть возможность привлечения специалиста, чтобы сэкономить время и нервы. Однако, следуя представленным рекомендациям и методично работая с "Конвертацией Данных 2", мы сможем успешно реализовать данный обмен.

← На главную