Где найти модуль с правилами обмена между 1С:Зарплата и управление персоналом 3.1 и 1С:Бухгалтерия предприятия 3.0 через универсальный формат?

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

При работе с типовыми конфигурациями 1С, такими как "1С:Зарплата и управление персоналом 3.1" (ЗУП 3.1) и "1С:Бухгалтерия предприятия 3.0" (БП 3.0), часто возникает необходимость анализа или модификации правил обмена данными. Если вы столкнулись с задачей поиска общего модуля, который содержит правила выгрузки и загрузки данных через универсальный формат EnterpriseData (XDTO), давайте вместе разберемся, где именно он расположен и как с ним работать.

Начальный поиск и частые заблуждения

Когда мы начинаем исследовать типовую конфигурацию ЗУП 3.1 для анализа правил обмена с БП 3.0, логично предположить, что все правила конвертации объектов (ПКО), правила конвертации свойств (ПКС) и другие алгоритмы будут собраны в одном или нескольких общих модулях, названия которых прямо указывают на целевой обмен. В процессе поиска могут попадаться модули, названия которых кажутся подходящими, например:

  1. ОбменДаннымиЗарплата3Бухгалтерия3
  2. ОбменДаннымиЗарплата3Бухгалтерия3Внутренний
  3. ОбменДаннымиЗарплата3Бухгалтерия3Расширенный
  4. ОбменДаннымиЗарплата3Бухгалтерия3События

Мы можем внимательно изучить эти модули, но быстро обнаружим, что они не содержат привычных структур ПКО/ПКС, характерных для ранних версий "Конвертации данных 2.0" или для правил, загружаемых из внешних файлов XML. По своей структуре они больше напоминают вспомогательные или служебные модули, которые могут отвечать за регистрацию изменений, обработку событий обмена или выполнение каких-либо предварительных/пост-обменных процедур, но не являются центральным хранилищем непосредственно логики конвертации объектов.

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

Ключевой модуль с правилами обмена

После исключения вспомогательных модулей и более глубокого анализа архитектуры обмена, мы приходим к пониманию, что основной модуль, содержащий логику правил обмена через универсальный формат, называется:

МенеджерОбменаЧерезУниверсальныйФормат

Иногда также может встречаться его вариант с версией формата:

МенеджерОбменаЧерезУниверсальныйФормат13

Именно в этих общих модулях сосредоточена основная кодовая база, отвечающая за выгрузку и загрузку данных в соответствии со стандартом EnterpriseData. Здесь вы найдете процедуры и функции, которые определяют, какие объекты и как должны быть преобразованы для обмена.

Технология обмена EnterpriseData и XDTO

Чтобы лучше понять, почему правила обмена находятся именно в модуле МенеджерОбменаЧерезУниверсальныйФормат и почему они не выглядят как традиционные ПКО/ПКС, давайте рассмотрим технологию, на которой основан универсальный формат обмена.

Обмен через универсальный формат в 1С:Предприятии 8.3 базируется на технологии EnterpriseData. Это единый, стандартизированный формат данных, разработанный фирмой "1С" для обмена между различными типовыми конфигурациями. Его основная идея заключается в том, чтобы данные между разными прикладными решениями обменивались не в их внутреннем представлении (специфичном для каждой конфигурации), а в некотором унифицированном, "нейтральном" формате. Такой подход значительно упрощает интеграцию и позволяет разрабатывать универсальные правила обмена, которые работают для широкого круга конфигураций.

В основе EnterpriseData лежит механизм XDTO (XML Data Transfer Objects). XDTO — это технология 1С для работы с XML-схемами и соответствующими им объектами. Данные, подлежащие обмену, преобразуются в XML-представление в соответствии с XDTO-схемами EnterpriseData. Благодаря этому достигается гибкость и стандартизация.

В отличие от более ранних подходов (например, "Конвертация данных 2.0", где правила хранились в виде внешних XML-файлов и загружались в обработку), в EnterpriseData логика конвертации часто инкапсулирована непосредственно в коде конфигурации, а не в декларативных внешних файлах. Модуль МенеджерОбменаЧерезУниверсальныйФормат и является таким местом, где эта логика реализована.

Структура и содержимое модуля МенеджерОбменаЧерезУниверсальныйФормат

Когда мы открываем модуль МенеджерОбменаЧерезУниверсальныйФормат, мы увидим не привычные декларативные описания ПКО и ПКС, а непосредственно код на встроенном языке 1С. В этом модуле мы найдем различные процедуры и функции, которые выполняют следующие ключевые задачи:

  1. Регистрация объектов для обмена: Процедуры, которые определяют, какие типы объектов (справочники, документы и т.д.) участвуют в обмене.
  2. Алгоритмы выгрузки данных: Функции и процедуры, которые вызываются при выгрузке конкретных объектов. Здесь описывается, как данные из объекта-источника преобразуются в формат EnterpriseData. Это может включать сопоставление реквизитов, преобразование значений, выгрузку табличных частей и связанных объектов.
  3. Алгоритмы загрузки данных: Аналогичные функции для обратного процесса — преобразования данных из формата EnterpriseData в объекты конфигурации-приемника.
  4. Обработчики событий: Возможно, здесь будут реализованы различные обработчики событий, которые позволяют модифицировать поведение обмена на определенных этапах (например, перед выгрузкой, после загрузки).
  5. Функции преобразования типов и значений: Вспомогательные функции для стандартизации и преобразования данных (например, форматирование дат, чисел, строк).

По сути, "правила" здесь — это не отдельный метаобъект, а непосредственно код, который реализует логику конвертации. Это делает его менее "читаемым" в привычном смысле для тех, кто работал с визуальными редакторами правил "Конвертации данных 2.0", но более гибким и интегрированным в конфигурацию.

Методы поиска модулей и отладки

Если в будущем мы столкнемся с ситуацией, когда не знаем точного имени модуля или хотим понять, какой код выполняется при обмене, существуют эффективные методы поиска и отладки:

  1. Полнотекстовый поиск по конфигурации: Мы можем использовать полнотекстовый поиск в конфигураторе (Ctrl+Shift+F) по ключевым словам, связанным с обменом данными. Например, искать:
    • "МенеджерОбмена"
    • "УниверсальныйФормат"
    • "EnterpriseData"
    • "ОбменДанными"
    • Или даже имена конкретных документов, которые участвуют в обмене, вместе со словом "Выгрузка" или "Загрузка".
    Этот метод часто приводит к обнаружению нужных модулей или процедур.
  2. Отладка и замер производительности: Это один из самых надежных способов определить, какой код выполняется в момент обмена.
    1. Запускаем базу в режиме отладки.
    2. Инициируем процедуру обмена данными (например, через форму настройки обмена).
    3. В процессе выполнения обмена можем попробовать поставить точки останова в предполагаемых местах или использовать механизм "Замер производительности" (доступен в отладчике). Замер производительности покажет, какие процедуры и функции выполнялись, сколько времени они заняли, и в каких модулях они расположены. Это позволит нам точно определить, какой модуль отвечает за конкретную часть обмена.
    Этот подход особенно полезен, когда обмен происходит не так, как ожидалось, и нам нужно докопаться до конкретной строки кода, вызывающей проблему.

Инструменты для анализа и модификации правил обмена: "1С:Конвертация данных 3.0"

Несмотря на то, что логика обмена содержится в коде модуля МенеджерОбменаЧерезУниверсальныйФормат, прямая ручная правка этого модуля в конфигураторе крайне не рекомендуется. Это сложно, трудоемко, чревато ошибками и создает проблемы при обновлении конфигурации.

Для анализа, создания и модификации правил обмена, использующих технологию EnterpriseData (и, соответственно, генерирующих код для модулей типа МенеджерОбменаЧерезУниверсальныйФормат), мы используем специализированную конфигурацию:

"1С:Конвертация данных 3.0"

Этот инструмент является неотъемлемой частью процесса доработки обменов. Он позволяет нам:

  1. Загрузить структуру правил: "Конвертация данных 3.0" умеет считывать метаданные конфигураций-источников и приемников, а также загружать уже существующие правила обмена из общего модуля.
  2. Визуально настраивать соответствия: Мы можем в удобном графическом интерфейсе настраивать соответствия объектов, реквизитов, табличных частей.
  3. Редактировать алгоритмы и обработчики: Для сложных случаев можно писать собственные алгоритмы и обработчики событий обмена на встроенном языке.
  4. Выгружать измененные правила: После всех модификаций "Конвертация данных 3.0" позволяет выгрузить измененные правила в виде текста общего модуля. Этот текст затем можно скопировать и вставить в соответствующий модуль (например, в МенеджерОбменаЧерезУниверсальныйФормат или его расширение) в конфигурации ЗУП 3.1 или БП 3.0.

Использование "1С:Конвертация данных 3.0" значительно упрощает жизнь разработчика, позволяя работать с правилами обмена на более высоком уровне абстракции, а не копаться непосредственно в текстовом коде с его сложной структурой. Это рекомендуемый и стандартный подход для работы с обменами на базе EnterpriseData.

Резюме

Итак, если мы ищем модуль с правилами обмена между ЗУП 3.1 и БП 3.0 через универсальный формат, нашим основным объектом поиска будет МенеджерОбменаЧерезУниверсальныйФормат (или его версия МенеджерОбменаЧерезУниверсальныйФормат13). Помним, что эти модули содержат непосредственно код, реализующий логику конвертации в соответствии с технологией EnterpriseData и XDTO. Для комфортной работы с этими правилами, их анализа и модификации, крайне рекомендуется использовать специализированный инструмент "1С:Конвертация данных 3.0", который позволяет визуализировать и генерировать необходимый код.

← На главную