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

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

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

Как редактировать правила обмена в 1С: работа с Конвертацией данных 2.0 и 3.0, правила конвертации объектов и свойств, обработчики, тестирование и типичные ошибки.

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

Редактирование правил выполняется в конфигурации «Конвертация данных» (редакция 2.1 для классических правил или редакция 3.0 для обменов в формате EnterpriseData). Альтернативный путь — правка XML-файла правил вручную, но она оправдана только для точечных исправлений, поскольку структура файла сложна и ошибка в нём обнаруживается уже на этапе загрузки.

Ниже разобраны оба подхода, порядок внесения изменений, тестирование результата и границы безопасной самостоятельной работы.

Какие инструменты используются для редактирования правил

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

Определить, какая редакция нужна, можно по виду обмена: если обмен настраивается через «Универсальный формат обмена данными» — это Конвертация данных 3.0; если в типовой обработке обмена загружается файл правил вида «ПравилаОбмена.xml» — чаще всего это редакция 2.1. Смешивать подходы нельзя: правила, созданные в одной редакции, не откроются в другой.

Для работы потребуется также сама конфигурация-источник и конфигурация-приёмник (или их файлы выгрузки метаданных), а также тестовые копии баз для проверки обмена после правок.

Подготовка: выгрузка метаданных и создание конвертации

Перед редактированием правил в Конвертации данных 2.1 нужно выгрузить описание структуры метаданных обеих конфигураций. Для этого используется внешняя обработка MD83Exp.epf (для обычных форм) или её аналог для управляемого приложения — она поставляется вместе с Конвертацией данных. Обработка запускается в базе-источнике и в базе-приёмнике, каждый раз формируя XML-файл со структурой конфигурации.

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

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

Редактирование правил конвертации объектов и свойств

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

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

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

Обработчики событий и алгоритмы

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

Важное ограничение: в обработчиках на стороне выгрузки доступен контекст базы-источника, в обработчиках загрузки — контекст приёмника. Переменные и запросы к «чужой» базе внутри обработчика невозможны; данные между сторонами передаются только через выгружаемые свойства и параметры обмена.

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

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

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

Результатом работы является не один XML-файл, а модуль менеджера обмена — код, который встраивается в расширение конфигурации или в саму конфигурацию. Это принципиальное отличие от редакции 2.1, где правила — внешний файл, подключаемый без изменения конфигурации.

Сравнение подходов

Конвертация данных 2.1

Подходит для классических обменов с файлом правил XML. Правила подключаются без изменения конфигурации, но технология считается устаревающей.

Конвертация данных 3.0

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

Ручная правка XML-файла правил

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

Тестирование изменённых правил

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

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

Проверяйте не только факт переноса объекта, но и корректность заполнения реквизитов, отсутствие дублей (признак неправильных полей поиска), перенос связанных объектов и поведение при повторном обмене — данные должны обновляться, а не плодить копии.

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

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

Объект появился в приёмнике
Норма

Объект создан или обновлён, реквизиты заполнены корректно

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

Объект отсутствует, создан пустым или с неверными значениями

Повторный обмен
Норма

Объект обновляется по полям поиска, дублей нет

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

Создаются дубли — поля поиска настроены неверно

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

Нет ошибок и критичных предупреждений

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

Ошибки загрузки объектов, сообщения о ненайденных правилах

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

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

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

Ограничение безопасной самостоятельной работы: правка правил требует понимания структуры обеих конфигураций и встроенного языка 1С. Если обмен работает в промышленном контуре с большими объёмами и участвует в учётных процессах (например, обмен с бухгалтерией или сайтом), доработку и первичное тестирование разумно поручать специалисту с опытом конвертации данных — цена ошибки здесь выражается в рассинхронизации учёта.

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

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

Можно ли редактировать правила обмена без Конвертации данных?

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

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

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

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

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

Как перенести только часть данных, а не все объекты?

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

Чем отличается обмен через правила от прямого обмена через планы обмена?

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

Итог

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

Правила обмена редактируются в «Конвертации данных 2.1» (классические XML-правила) или «3.0» (формат EnterpriseData). Основа работы — настройка ПКО, ПКС и при необходимости обработчиков. Любые изменения проверяйте только на копиях баз с анализом протокола обмена и сохраняйте предыдущую версию правил для отката.