Разработка и Конфигурация · 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Сделайте резервные копии базы-источника и базы-приёмника
- 2Выгрузите структуру метаданных обеих конфигураций обработкой MD83Exp или аналогом
- 3Загрузите структуры в Конвертацию данных и создайте (или откройте существующую) конвертацию
- 4При доработке типового обмена загрузите существующий XML-файл правил
- 5Сохраните исходную версию правил отдельным файлом, чтобы была возможность отката
Редактирование правил конвертации объектов и свойств
Правило конвертации объектов (ПКО) связывает тип объекта источника с типом объекта приёмника: например, справочник «Номенклатура» одной базы со справочником «Номенклатура» другой. При создании ПКО указываются объекты источника и приёмника, способ поиска объекта в приёмнике (по уникальному идентификатору, по полям поиска или комбинированно) и поведение при отсутствии объекта — создавать новый или не переносить.
Внутри ПКО настраиваются правила конвертации свойств (ПКС): какое поле источника в какое поле приёмника переносится. Для простых реквизитов достаточно прямого соответствия. Для ссылочных реквизитов указывается ПКО, по которому конвертируется значение ссылки. Если прямого соответствия нет — например, единицы измерения хранятся по-разному — используются правила конвертации значений (ПКЗ) или алгоритмы на встроенном языке.
Типовая доработка выглядит так: в конфигурацию добавили новый реквизит «Проект» у документа «Реализация товаров». Чтобы он переносился обменом, откройте ПКО этого документа, добавьте новое ПКС, укажите источник и приёмник «Проект», выберите ПКО для справочника проектов и при необходимости настройте поиск объекта-проекта по коду или наименованию.
Обработчики событий и алгоритмы
Когда декларативных настроек недостаточно, используются обработчики событий: «Перед выгрузкой», «При выгрузке», «После выгрузки», «Перед загрузкой», «После загрузки» и другие. В них пишется код на встроенном языке 1С. Типовые задачи обработчиков: фильтрация выгружаемых объектов по условию, подстановка значений по умолчанию, отказ от загрузки объекта при определённых признаках.
Важное ограничение: в обработчиках на стороне выгрузки доступен контекст базы-источника, в обработчиках загрузки — контекст приёмника. Переменные и запросы к «чужой» базе внутри обработчика невозможны; данные между сторонами передаются только через выгружаемые свойства и параметры обмена.
Редактирование правил в Конвертации данных 3.0
В редакции 3.0 логика иная: обмен строится через универсальный формат EnterpriseData. Правила описывают, как объект конфигурации преобразуется в объект формата (правила конвертации объектов формата и конфигурации), и как объект формата загружается в конфигурацию. Соответственно, доработка затрагивает одну из двух сторон: отправку или получение.
Практический сценарий: нужно передавать добавленный реквизит. В Конвертации данных 3.0 расширяется формат (добавляется свойство в объект формата), затем в правилах отправки добавляется соответствие реквизита конфигурации этому свойству, а в правилах получения — обратное соответствие. Если приёмник — типовая конфигурация без доработки, нестандартное свойство формата она проигнорирует, поэтому обе стороны обмена должны понимать расширение.
Результатом работы является не один XML-файл, а модуль менеджера обмена — код, который встраивается в расширение конфигурации или в саму конфигурацию. Это принципиальное отличие от редакции 2.1, где правила — внешний файл, подключаемый без изменения конфигурации.
Сравнение подходов
Подходит для классических обменов с файлом правил XML. Правила подключаются без изменения конфигурации, но технология считается устаревающей.
Подходит для обменов в формате EnterpriseData. Результат встраивается в конфигурацию или расширение, лучше поддерживается в современных типовых решениях.
Допустима только для точечных исправлений при хорошем знании структуры файла. Ошибка синтаксиса приведёт к отказу загрузки правил целиком.
Тестирование изменённых правил
Проверка выполняется только на копиях баз. Порядок такой: сохранённые правила выгружаются из Конвертации данных в файл (для 2.1) или встраиваются в тестовую конфигурацию (для 3.0), затем запускается обмен между копиями с контролируемым набором данных — лучше заранее подготовить несколько объектов, затрагивающих изменённые правила.
Для отладки в Конвертации данных 2.1 есть обработка «Универсальный обмен данными в формате XML»: она позволяет выполнить выгрузку и загрузку с подробным протоколом, включить режим отладки обработчиков и увидеть, на каком объекте и с какой ошибкой обмен остановился. Протокол обмена — первый источник информации при расследовании проблем.
Проверяйте не только факт переноса объекта, но и корректность заполнения реквизитов, отсутствие дублей (признак неправильных полей поиска), перенос связанных объектов и поведение при повторном обмене — данные должны обновляться, а не плодить копии.
Как проверить результат
Объект создан или обновлён, реквизиты заполнены корректно
Объект отсутствует, создан пустым или с неверными значениями
Объект обновляется по полям поиска, дублей нет
Создаются дубли — поля поиска настроены неверно
Нет ошибок и критичных предупреждений
Ошибки загрузки объектов, сообщения о ненайденных правилах
Типичные ошибки и ограничения
Самая частая ошибка — правка правил под структуру метаданных, которая потом изменилась: после обновления конфигурации реквизит переименовали или удалили, и обмен начал падать. После каждого обновления конфигураций правила нужно проверять на соответствие актуальной структуре, а при необходимости — заново выгружать метаданные и корректировать ПКС.
Вторая группа ошибок — неверные поля поиска. Если искать контрагентов только по наименованию, любое расхождение в написании создаст дубль. Для справочников обычно используют комбинацию: поиск по уникальному идентификатору плюс поля поиска (код, ИНН и КПП для контрагентов) как резервный вариант.
Ограничение безопасной самостоятельной работы: правка правил требует понимания структуры обеих конфигураций и встроенного языка 1С. Если обмен работает в промышленном контуре с большими объёмами и участвует в учётных процессах (например, обмен с бухгалтерией или сайтом), доработку и первичное тестирование разумно поручать специалисту с опытом конвертации данных — цена ошибки здесь выражается в рассинхронизации учёта.
Частые вопросы
Можно ли редактировать правила обмена без Конвертации данных?
Технически да — правила редакции 2.1 хранятся в XML-файле, который открывается текстовым редактором. Но структура файла сложная, и ручная правка оправдана только для мелких исправлений при хорошем понимании формата. Для любой содержательной доработки используйте конфигурацию «Конвертация данных».
Где взять типовые правила для доработки?
Типовые правила обычно входят в поставку конфигурации или доступны внутри самой базы: во многих типовых решениях правила хранятся в макетах плана обмена и выгружаются через настройки синхронизации данных. Также файлы правил публикуются в составе дистрибутивов обновлений.
Почему после обновления конфигурации обмен перестал работать?
Чаще всего причина в изменении структуры метаданных: реквизит или объект, задействованный в правилах, был переименован или удалён. Нужно заново выгрузить структуру конфигурации, загрузить её в Конвертацию данных и скорректировать «отвалившиеся» правила конвертации свойств.
Как перенести только часть данных, а не все объекты?
Используйте обработчик «Перед выгрузкой» в ПКО с отказом от выгрузки по условию (например, только проведённые документы за период) либо настройте отбор в настройках самого обмена, если типовая синхронизация поддерживает фильтрацию по организациям, датам и видам документов.
Чем отличается обмен через правила от прямого обмена через планы обмена?
Планы обмена — механизм регистрации изменений и транспорта данных, а правила конвертации — логика преобразования объектов. В типовых синхронизациях они работают вместе: план обмена определяет, что изменилось, а правила — как эти изменения превратить в объекты приёмника.
Что важно запомнить
Правила обмена редактируются в «Конвертации данных 2.1» (классические XML-правила) или «3.0» (формат EnterpriseData). Основа работы — настройка ПКО, ПКС и при необходимости обработчиков. Любые изменения проверяйте только на копиях баз с анализом протокола обмена и сохраняйте предыдущую версию правил для отката.