К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как отредактировать правила обмена в 1С

Как отредактировать правила обмена в 1С через Конвертацию данных и универсальный формат: открытие правил, изменение ПКО и ПКС, тестирование и типичные ошибки.

Правила обмена определяют, какие объекты переносятся между базами 1С, как сопоставляются поля и какие преобразования выполняются при выгрузке и загрузке. Редактировать их приходится, когда в конфигурацию добавили новый реквизит, изменилась структура документа или стандартный обмен переносит данные не так, как нужно бизнесу. Способ правки зависит от того, какой механизм обмена используется: классические правила конвертации (XML-файл, создаваемый в конфигурации «Конвертация данных») или универсальный формат EnterpriseData с обработчиками на встроенном языке.

Прежде чем что-либо менять, определите, какой у вас случай. Если обмен настроен через «универсальный формат обмена данными» (типовые обмены между УТ, ERP, БП и ЗУП), правки вносятся либо через расширение с переопределением процедур модуля менеджера обмена, либо через подключаемые внешние правила. Если обмен построен на правилах конвертации XML — работа ведётся в конфигурации «Конвертация данных» (редакция 2 или 3). Путать эти подходы нельзя: файл правил для одного механизма не будет работать в другом.

Любую правку правил начинайте с копии. Сохраните исходный файл правил, сделайте резервную копию обеих баз и все проверки выполняйте на копиях. Ошибка в правилах не падает с сообщением «что-то пошло не так» — она молча создаёт дубли контрагентов, затирает реквизиты или переносит документы с неверными суммами, и замечают это обычно через недели.

Определяем, какой механизм обмена используется

Откройте настройку синхронизации в базе (раздел «Администрирование» → «Синхронизация данных») и посмотрите описание обмена. Если в настройках упоминается «универсальный формат обмена данными» — это обмен через EnterpriseData, и правила хранятся внутри конфигурации в общих модулях вида «МенеджерОбменаЧерезУниверсальныйФормат…». Если обмен загружает внешний файл правил (обычно с расширением .xml) или построен на плане обмена с конвертацией — это классические правила КД.

Есть и третий вариант: обмен написан полностью программно, без правил вообще. Признак — выгрузка выполняется внешней обработкой или регламентным заданием с собственным кодом. В этом случае редактировать нужно не правила, а код обработки, и материал ниже применим только частично.

В настройках указан универсальный форматEnterpriseData

Правки — через расширение конфигурации или внешние правила обмена

Загружается файл правил .xmlКонвертация данных

Редактирование в конфигурации «Конвертация данных»

Обмен выполняет внешняя обработкаПрограммный обмен

Правится код обработки, правил как таковых нет

Где взять и как открыть правила обмена

Для классического обмена файл правил выгружается из настройки синхронизации (кнопка вида «Сохранить правила» или из макета в конфигураторе) либо берётся из исходной поставки обмена. Открывается он в конфигурации «Конвертация данных»: запустите базу КД в режиме предприятия, выберите «Загрузить правила обмена» и укажите XML-файл. После загрузки в дереве появятся правила конвертации объектов (ПКО), правила конвертации свойств (ПКС), правила очистки и регистрации данных.

Для обмена через универсальный формат отдельного файла может не быть — правила зашиты в общие модули. Откройте конфигуратор, найдите общие модули с подстрокой «МенеджерОбмена» и изучите процедуры «ВыполнитьПравилаКонвертации» и обработчики «ПриКонвертацииДанныхXDTO». Редактировать типовой модуль напрямую не стоит: при обновлении конфигурации изменения будут сняты с поддержки или затёрты. Правильный путь — расширение конфигурации с аннотацией «&Вместо» или «&После» для нужных процедур.

Редактирование правил в Конвертации данных

Основная единица правил — ПКО, правило конвертации объекта (например, документа «Реализация товаров и услуг»). Внутри ПКО находятся ПКС — правила для каждого реквизита: откуда берётся значение, куда записывается, какой алгоритм применяется. Чтобы добавить перенос нового реквизита, откройте нужное ПКО, создайте новое ПКС, укажите свойство-источник и свойство-приёмник. Если типы совпадают, дополнительных настроек не требуется.

Если простого соответствия недостаточно — например, значение нужно вычислить или преобразовать — используйте закладку обработчиков: «ПередВыгрузкой», «ПриВыгрузке», «ПослеВыгрузки», «ПослеЗагрузки». В обработчиках пишется код на встроенном языке 1С с доступом к переменным «Источник», «Приемник», «Значение». Типовой пример: заполнить реквизит приёмника по формуле из нескольких полей источника или подставить фиксированное значение, когда в источнике поле пустое.

Для ссылочных реквизитов проверьте, что для типа значения существует своё ПКО. Если переносите контрагента, а правила конвертации справочника «Контрагенты» в файле нет, на стороне приёмника ссылка окажется пустой или создастся объект-заглушка без данных. Поиск объектов при загрузке настраивается в ПКО на закладке поиска: по GUID, по комбинации полей (код, наименование, ИНН) или по произвольному алгоритму. Неверно настроенный поиск — главная причина дублей справочников после обмена.

Порядок правки правил в Конвертации данных
  1. 1
    Сохраните копию исходного XML-файла правил и сделайте резервные копии обеих баз
  2. 2
    Загрузите правила в конфигурацию «Конвертация данных»
  3. 3
    Найдите нужное ПКО и добавьте или измените ПКС либо обработчик события
  4. 4
    Проверьте наличие ПКО для всех ссылочных типов изменённых реквизитов
  5. 5
    Выгрузите правила в новый файл (не перезаписывая исходный)
  6. 6
    Загрузите новый файл в тестовый обмен и выполните выгрузку-загрузку на контрольных объектах

Правка обмена через универсальный формат

В обменах EnterpriseData данные передаются в виде XDTO-пакетов, а логика преобразования описана в процедурах модуля менеджера обмена. Типовые модули содержат отдельные процедуры для каждого объекта: например, «ДобавитьПКО_Документ_РеализацияТоваровУслуг_Отправка». Чтобы изменить поведение, создайте расширение конфигурации, добавьте в него общий модуль менеджера обмена и переопределите нужную процедуру с аннотацией «&После», дописав свои строки конвертации свойств.

Часть конфигураций поддерживает подключение внешних правил обмена без изменения расширения: в настройке синхронизации есть пункт «Загрузить правила» для универсального формата. Внешние правила представляют собой структуру с макетом, содержащим текст процедур конвертации. Этот вариант удобен, когда правки нужны быстро и администратор не готов заводить расширение, но он менее прозрачен при сопровождении.

Загрузка изменённых правил и тестирование

Изменённый файл правил подключается в настройке обмена: для классической конвертации — кнопка «Загрузить правила конвертации» в настройке синхронизации, либо замена макета в конфигураторе, если правила хранятся внутри конфигурации. После загрузки перерегистрируйте несколько контрольных объектов вручную (через «Состав отправляемых данных») и выполните обмен в тестовой среде.

Проверяйте результат не по факту «обмен прошёл без ошибок», а по содержимому: откройте перенесённый документ в базе-приёмнике и сличите изменённые реквизиты, суммы, табличные части и ссылки на справочники. Для массовой проверки удобна типовая обработка «Сопоставление объектов информационных баз» и отчёты по результатам синхронизации, где видны предупреждения и незагруженные объекты.

Контрольные точки

Как проверить результат

Протокол обмена
Норма

Нет ошибок загрузки, предупреждения объяснимы

Тревожный признак

Ошибки формата, объекты не загружены

Контрольный документ в приёмнике
Норма

Все изменённые реквизиты заполнены как задумано

Тревожный признак

Поля пустые, значения удвоены или затёрты

Справочники после обмена
Норма

Контрагенты и номенклатура сопоставились с существующими

Тревожный признак

Появились дубли с тем же ИНН или кодом

Типичные ошибки и ограничения

Самая частая ошибка — правка правил только на одной стороне обмена, когда конвертация двусторонняя. Вторая по частоте — изменение поиска объектов без анализа уже сопоставленных данных: если раньше контрагенты искались по GUID, а вы переключили поиск на ИНН, при первом же обмене часть ссылок пересопоставится, и возможны дубли. Третья группа ошибок — обработчики, которые обращаются к реквизитам, отсутствующим в одной из конфигураций: на стороне приёмника такой код завершается ошибкой, и объект не загружается целиком.

Учитывайте и ограничения механизма. Правила конвертации не переносят движения документов напрямую — документ в приёмнике проводится заново, поэтому при разных настройках учёта итоговые проводки могут отличаться. Права доступа, подсистемы версионирования и бизнес-процессы правилами обычно не переносятся. Если требуется переносить то, что лежит за пределами объектной модели, задача решается отдельными обработчиками или доработкой обмена.

Типичные ошибки при редактировании правил
01
Правка правил только на стороне отправки — приёмник отклоняет или обрезает данные
02
Изменение правил поиска объектов без анализа — массовые дубли справочников
03
Перезапись исходного файла правил без копии — невозможно откатиться после неудачи
04
Проверка только по протоколу без открытия объектов — ошибки в данных обнаруживаются через недели
05
Правка типового модуля обмена напрямую — изменения теряются при обновлении конфигурации

Когда лучше привлечь специалиста

Самостоятельно безопасно выполнять точечные правки: добавить перенос простого реквизита, изменить фиксированное значение, поправить отбор регистрации. Сложные сценарии — конвертация табличных частей с преобразованием строк, обмен между сильно различающимися конфигурациями, миграция с самописной учётной системы — требуют опыта работы с КД и понимания обеих конфигураций. Ошибка в таких правилах стоит дороже, чем разовая настройка.

Критерий простой: если для правки нужно писать обработчик длиннее десятка строк или менять логику поиска объектов в работающем обмене с накопленными данными, сначала воспроизведите задачу на копии и оцените объём. Если на копии результат не получается предсказуемым — это граница безопасной самостоятельной работы.

Маршрут решения

Как выбрать способ правки

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

Что важно запомнить

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

Частые вопросы

Где хранятся правила обмена в типовой конфигурации?

Для классической конвертации правила обычно лежат в макете конфигурации или подключаются как внешний XML-файл в настройке синхронизации. Для универсального формата логика зашита в общих модулях менеджера обмена, отдельного файла может не быть. Найти макет можно через конфигуратор поиском по слову «Правила» в макетах общих модулей обмена.

Можно ли редактировать правила обмена без конфигурации «Конвертация данных»?

Технически XML-файл правил — это текст, и мелкую правку можно внести в текстовом редакторе. Но структура файла сложная, и ошибка в одном теге делает весь файл нечитаемым для обмена. Для любых правок, кроме тривиальных, используйте «Конвертацию данных»: она проверяет корректность ссылок между ПКО и ПКС.

Почему после изменения правил появились дубли контрагентов?

Почти всегда причина в изменении способа поиска объектов в ПКО: приёмник перестал находить ранее загруженные элементы и создаёт новые. Проверьте закладку поиска в правиле конвертации справочника и верните исходный вариант, затем устраните дубли штатной обработкой поиска и удаления дублей.

Нужно ли перерегистрировать объекты после загрузки новых правил?

Да, если правки касаются состава передаваемых данных. Изменённые правила применяются только к объектам, которые будут выгружаться заново. Перерегистрируйте нужные объекты через «Состав отправляемых данных» в настройке синхронизации или выполните полную выгрузку в тестовом режиме.

Что делать, если после правки правил обмен перестал выполняться с ошибкой формата?

Ошибка формата означает, что файл правил повреждён или несовместим с версией механизма обмена. Откатитесь на сохранённую копию правил, убедитесь, что обмен снова работает, и вносите изменения заново малыми порциями, проверяя загрузку файла после каждого шага.

Переносятся ли проводки документов при обмене по правилам конвертации?

Нет, правила переносят данные самого документа: шапку, табличные части, реквизиты. В базе-приёмнике документ проводится заново по своим правилам учёта. Поэтому при разных настройках учётных систем итоговые проводки в двух базах могут отличаться, и это нормальное поведение, а не ошибка правил.