Разработка и Конфигурация · 10 мин
Универсальный формат обмена 1С: как изменить правила конвертации
Как изменить правила универсального формата обмена 1С: загрузка в Конвертацию данных 3.0, правка ПКО и ПКС, регистрация правил в базе и проверка обмена.
Универсальный формат обмена (EnterpriseData) — это XML-формат, через который типовые конфигурации 1С обмениваются данными без жёсткой привязки к структуре конкретной базы. Правила конвертации определяют, какие объекты выгружаются, как сопоставляются поля и какие значения подставляются при загрузке. Когда типовых правил не хватает — например, нужно переносить дополнительный реквизит, отсекать часть документов или менять логику поиска контрагентов — правила приходится дорабатывать.
Меняют правила двумя способами: через внешнюю обработку с алгоритмами на встроенном языке (без изменения самих правил) или через конфигурацию «Конвертация данных, редакция 3.1» (КД 3), где правила редактируются визуально. Второй путь даёт полный контроль, но требует аккуратности: некорректные правила способны остановить обмен или загрузить в базу искажённые данные.
Ниже разобран практический порядок: как выгрузить типовые правила, открыть их в Конвертации данных, изменить правила конвертации объектов и свойств, зарегистрировать результат в базе и проверить обмен без потери данных.
Как устроен универсальный формат и где хранятся правила
В типовых конфигурациях обмен через универсальный формат работает по схеме «менеджер обмена + правила конвертации». Менеджер обмена — это общий модуль (обычно с именем вида «МенеджерОбменаЧерезУниверсальныйФормат»), который формирует и разбирает XML-пакеты. Логика преобразования объектов зашита либо в процедурах этого модуля, либо в правилах конвертации, загруженных в информационную базу.
Найти действующие правила можно в настройках синхронизации данных: раздел «Администрирование» → «Синхронизация данных» → настройка конкретного обмена. Там видно, используются типовые правила из конфигурации или загруженные из файла. Если обмен настраивал сторонний специалист, сначала выгрузите текущие правила в файл — не исключено, что они уже доработаны, и править нужно именно их, а не типовые.
Важно понимать версию формата: правила собираются под конкретную версию EnterpriseData, и обе стороны обмена должны её поддерживать. Несовпадение версий формата — частая причина ошибок загрузки даже при корректных правилах.
Подготовка: резервная копия и исходные данные для КД 3
Перед любыми изменениями сделайте выгрузку информационной базы (файл .dt) или снимите SQL-копию, если база клиент-серверная. Доработка правил почти всегда требует нескольких итераций тестового обмена, и откатиться на рабочее состояние должно быть возможно за минуты, а не часами.
Для работы в Конвертации данных 3.1 понадобятся три компонента: сама конфигурация КД 3 (поставляется отдельно), файлы структуры метаданных обеих конфигураций-участниц обмена и файлы структуры универсального формата нужной версии. Структуру метаданных выгружают обработкой, которая идёт в комплекте поставки КД 3 (обычно называется «Выгрузка описания метаданных»). Структуру формата можно получить из типовой конфигурации через механизмы обмена данными либо использовать файлы из комплекта КД.
Также зафиксируйте текущее поведение обмена: какие объекты переносятся, какие нет, какие ошибки уже есть в журнале регистрации. Это «точка отсчёта», с которой вы будете сравнивать результат после доработки.
Загрузка правил в Конвертацию данных 3.1
В КД 3 правила существуют не как отдельный XML-файл, а как данные внутри базы конвертации. Поэтому первый шаг — создать в КД 3 новую конвертацию и загрузить в неё структуры: сначала конфигурации источника и приёмника, затем версию универсального формата.
- 1Создайте новую конвертацию и укажите конфигурации источника и приёмника.
- 2Загрузите описание метаданных обеих конфигураций из подготовленных файлов.
- 3Загрузите структуру универсального формата нужной версии.
- 4Загрузите существующие правила: из файла правил обмена или из модуля менеджера обмена, выгруженного из типовой базы.
- 5Проверьте, что в дереве конвертации появились ПКО, ПКС и алгоритмы.
Если типовые правила хранятся в модуле менеджера обмена, в КД 3 есть механизм загрузки правил из текстового модуля — он разбирает процедуры и превращает их в правила конвертации. После загрузки сверьте количество ПКО и наличие ключевых алгоритмов с исходным модулем: иногда при импорте теряются комментарии и отключаемые правила.
Сохраните проект конвертации отдельно и ведите версионирование — хотя бы копии базы КД или выгрузки правил с датой в имени файла. Когда доработок станет много, без истории изменений разобраться, что и зачем менялось, будет сложно.
Изменение правил: типовые сценарии доработки
Добавление переноса дополнительного реквизита
Самая частая задача — перенести реквизит, которого нет в типовых правилах. Откройте нужное ПКО, добавьте новое ПКС, укажите свойство источника и свойство приёмника. Если реквизит называется одинаково и имеет простой тип (строка, число, дата), достаточно прямого соответствия. Если типы различаются или значение нужно вычислить, используйте алгоритм «Перед выгрузкой» в ПКС: в нём переменной «Значение» присваивается результат, который уйдёт в приёмник.
Отбор выгружаемых объектов
Чтобы не выгружать часть документов (например, помеченные на удаление или по конкретной организации), используйте обработчик «Перед обработкой» или «При обработке» в ПКО и присвойте переменной «Отказ» значение «Истина» при выполнении условия. Учтите: отказ на этапе выгрузки надёжнее, чем фильтрация при загрузке, — лишние данные просто не попадут в файл обмена.
Изменение поиска объектов при загрузке
По умолчанию ссылочные объекты ищутся по уникальному идентификатору, а при его отсутствии — по полям поиска, заданным в ПКО. Если в приёмнике контрагенты должны сопоставляться по ИНН и КПП, добавьте эти поля в настройку поиска ПКО и упорядочьте их по приоритету. Ошибка в полях поиска приводит к дублям справочников — это одна из самых дорогих в исправлении проблем.
Выгрузка правил и регистрация в базе
После доработки правила нужно вернуть в рабочую базу. В КД 3 выполняется выгрузка модуля менеджера обмена (и при необходимости файла правил) по кнопке выгрузки в карточке конвертации. Полученный текст модуля заменяет содержимое соответствующего общего модуля в конфигурации — для этого конфигурация должна быть снята с полной поддержки либо модуль подключается как внешний через механизм загрузки правил.
Более мягкий путь — регистрация правил через настройки синхронизации: в настройке обмена выберите вариант «правила из файла» и загрузите выгруженный из КД 3 файл. Тогда типовая конфигурация не меняется, а при обновлении релиза правила не затрутся. Этот способ предпочтителен, если доработка не требует изменения структуры формата.
Способы применения доработанных правил
Подходит для большинства доработок; конфигурация остаётся на поддержке; ограничение — нельзя менять состав версий формата.
Даёт полный контроль, включая состав формата; требует снятия с поддержки и усложняет обновления.
Подходит для точечной логики без правки правил; ограничена возможностями механизма обработчиков.
Проверка обмена после изменения правил
Тестируйте на копии базы-приёмника. Выполните выгрузку ограниченного набора данных (по одному-двум объектам каждого изменённого типа), затем загрузку и сверьте результат: заполненность новых реквизитов, отсутствие дублей справочников, корректность ссылок в документах.
Контрольные точки после тестового обмена: журнал регистрации без ошибок конвертации, количество выгруженных и загруженных объектов совпадает с ожиданием, изменённые правилами поля заполнены ожидаемыми значениями. Если обмен двусторонний, прогоните обмен в обе стороны — доработка в одном направлении может сломать обратный поток.
Как проверить результат
Нет ошибок загрузки и конвертации данных
Ошибки «Не найдено правило конвертации» или «Ошибка в обработчике»
Элементы сопоставлены с существующими, дублей нет
Появились новые элементы с теми же наименованиями
Значения перенесены и соответствуют источнику
Поля пустые или содержат значения другого типа
Только после успешного теста на копии переносите правила в рабочие базы. Если обмен настроен через расписание, отключите автоматический запуск на время замены правил и включите после первой контролируемой итерации.
Держите под рукой исходный файл обмена (XML) из проблемной выгрузки: по нему в КД 3 удобно отлаживать правила через загрузку данных из файла, не запуская полный обмен. Это сокращает цикл проверки с десятков минут до нескольких.
FAQ
Можно ли изменить правила без Конвертации данных 3?
Частично — да: точечную логику реализуют через внешнюю обработку с алгоритмами, подключаемую в настройках обмена. Но добавление новых ПКО, изменение полей поиска и структуры формата без КД 3 выполнить нельзя.
Что будет с доработанными правилами при обновлении конфигурации?
Правила, загруженные из файла через настройки синхронизации, при обновлении сохраняются. Если вы меняли типовой модуль менеджера обмена в конфигурации, обновление перезапишет его — доработку придётся переносить заново с учётом изменений в новом релизе.
Почему после замены правил обмен выдаёт ошибку о версии формата?
Правила собраны под версию EnterpriseData, которую не поддерживает одна из сторон. Проверьте версию формата в настройках обеих баз и пересоберите правила в КД 3 под совместимую версию.
Как откатиться, если новые правила сломали обмен?
Верните ранее сохранённый файл типовых или предыдущих рабочих правил через настройки синхронизации, затем выполните повторную выгрузку. Если в приёмник уже загрузились некорректные данные, восстановите базу из резервной копии, сделанной до замены правил.
Нужно ли менять правила в обеих базах при двустороннем обмене?
Если доработка касается только одного направления — достаточно правил на стороне отправителя. Если меняется структура передаваемых данных или логика поиска при загрузке, обычно требуется согласованная доработка правил в обеих базах.
Что важно запомнить
Правила универсального формата правят в Конвертации данных 3.1: загрузка метаданных и формата, доработка ПКО и ПКС, выгрузка правил, регистрация в базе. Работайте на копиях, храните исходные правила и проверяйте результат по журналу регистрации и отсутствию дублей.