При работе с типовыми конфигурациями 1С, такими как "1С:Зарплата и управление персоналом 3.1" (ЗУП 3.1) и "1С:Бухгалтерия предприятия 3.0" (БП 3.0), часто возникает необходимость анализа или модификации правил обмена данными. Если вы столкнулись с задачей поиска общего модуля, который содержит правила выгрузки и загрузки данных через универсальный формат EnterpriseData (XDTO), давайте вместе разберемся, где именно он расположен и как с ним работать.
Когда мы начинаем исследовать типовую конфигурацию ЗУП 3.1 для анализа правил обмена с БП 3.0, логично предположить, что все правила конвертации объектов (ПКО), правила конвертации свойств (ПКС) и другие алгоритмы будут собраны в одном или нескольких общих модулях, названия которых прямо указывают на целевой обмен. В процессе поиска могут попадаться модули, названия которых кажутся подходящими, например:
ОбменДаннымиЗарплата3Бухгалтерия3ОбменДаннымиЗарплата3Бухгалтерия3ВнутреннийОбменДаннымиЗарплата3Бухгалтерия3РасширенныйОбменДаннымиЗарплата3Бухгалтерия3СобытияМы можем внимательно изучить эти модули, но быстро обнаружим, что они не содержат привычных структур ПКО/ПКС, характерных для ранних версий "Конвертации данных 2.0" или для правил, загружаемых из внешних файлов XML. По своей структуре они больше напоминают вспомогательные или служебные модули, которые могут отвечать за регистрацию изменений, обработку событий обмена или выполнение каких-либо предварительных/пост-обменных процедур, но не являются центральным хранилищем непосредственно логики конвертации объектов.
Это происходит потому, что обмен через универсальный формат в современных конфигурациях 1С, таких как ЗУП 3.1 и БП 3.0, базируется на другой методологии, о которой мы поговорим далее.
После исключения вспомогательных модулей и более глубокого анализа архитектуры обмена, мы приходим к пониманию, что основной модуль, содержащий логику правил обмена через универсальный формат, называется:
МенеджерОбменаЧерезУниверсальныйФормат
Иногда также может встречаться его вариант с версией формата:
МенеджерОбменаЧерезУниверсальныйФормат13
Именно в этих общих модулях сосредоточена основная кодовая база, отвечающая за выгрузку и загрузку данных в соответствии со стандартом EnterpriseData. Здесь вы найдете процедуры и функции, которые определяют, какие объекты и как должны быть преобразованы для обмена.
Чтобы лучше понять, почему правила обмена находятся именно в модуле МенеджерОбменаЧерезУниверсальныйФормат и почему они не выглядят как традиционные ПКО/ПКС, давайте рассмотрим технологию, на которой основан универсальный формат обмена.
Обмен через универсальный формат в 1С:Предприятии 8.3 базируется на технологии EnterpriseData. Это единый, стандартизированный формат данных, разработанный фирмой "1С" для обмена между различными типовыми конфигурациями. Его основная идея заключается в том, чтобы данные между разными прикладными решениями обменивались не в их внутреннем представлении (специфичном для каждой конфигурации), а в некотором унифицированном, "нейтральном" формате. Такой подход значительно упрощает интеграцию и позволяет разрабатывать универсальные правила обмена, которые работают для широкого круга конфигураций.
В основе EnterpriseData лежит механизм XDTO (XML Data Transfer Objects). XDTO — это технология 1С для работы с XML-схемами и соответствующими им объектами. Данные, подлежащие обмену, преобразуются в XML-представление в соответствии с XDTO-схемами EnterpriseData. Благодаря этому достигается гибкость и стандартизация.
В отличие от более ранних подходов (например, "Конвертация данных 2.0", где правила хранились в виде внешних XML-файлов и загружались в обработку), в EnterpriseData логика конвертации часто инкапсулирована непосредственно в коде конфигурации, а не в декларативных внешних файлах. Модуль МенеджерОбменаЧерезУниверсальныйФормат и является таким местом, где эта логика реализована.
МенеджерОбменаЧерезУниверсальныйФорматКогда мы открываем модуль МенеджерОбменаЧерезУниверсальныйФормат, мы увидим не привычные декларативные описания ПКО и ПКС, а непосредственно код на встроенном языке 1С. В этом модуле мы найдем различные процедуры и функции, которые выполняют следующие ключевые задачи:
По сути, "правила" здесь — это не отдельный метаобъект, а непосредственно код, который реализует логику конвертации. Это делает его менее "читаемым" в привычном смысле для тех, кто работал с визуальными редакторами правил "Конвертации данных 2.0", но более гибким и интегрированным в конфигурацию.
Если в будущем мы столкнемся с ситуацией, когда не знаем точного имени модуля или хотим понять, какой код выполняется при обмене, существуют эффективные методы поиска и отладки:
Ctrl+Shift+F) по ключевым словам, связанным с обменом данными. Например, искать:
"МенеджерОбмена""УниверсальныйФормат""EnterpriseData""ОбменДанными"Несмотря на то, что логика обмена содержится в коде модуля МенеджерОбменаЧерезУниверсальныйФормат, прямая ручная правка этого модуля в конфигураторе крайне не рекомендуется. Это сложно, трудоемко, чревато ошибками и создает проблемы при обновлении конфигурации.
Для анализа, создания и модификации правил обмена, использующих технологию EnterpriseData (и, соответственно, генерирующих код для модулей типа МенеджерОбменаЧерезУниверсальныйФормат), мы используем специализированную конфигурацию:
"1С:Конвертация данных 3.0"
Этот инструмент является неотъемлемой частью процесса доработки обменов. Он позволяет нам:
МенеджерОбменаЧерезУниверсальныйФормат или его расширение) в конфигурации ЗУП 3.1 или БП 3.0.Использование "1С:Конвертация данных 3.0" значительно упрощает жизнь разработчика, позволяя работать с правилами обмена на более высоком уровне абстракции, а не копаться непосредственно в текстовом коде с его сложной структурой. Это рекомендуемый и стандартный подход для работы с обменами на базе EnterpriseData.
Итак, если мы ищем модуль с правилами обмена между ЗУП 3.1 и БП 3.0 через универсальный формат, нашим основным объектом поиска будет МенеджерОбменаЧерезУниверсальныйФормат (или его версия МенеджерОбменаЧерезУниверсальныйФормат13). Помним, что эти модули содержат непосредственно код, реализующий логику конвертации в соответствии с технологией EnterpriseData и XDTO. Для комфортной работы с этими правилами, их анализа и модификации, крайне рекомендуется использовать специализированный инструмент "1С:Конвертация данных 3.0", который позволяет визуализировать и генерировать необходимый код.