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