Правка правил обмена в 1С: где лежат, чем открыть, как внедрить
Содержание
Правила обмена не редактируются внутри рабочей базы — там, в разделе Администрирование → Синхронизация данных, доступны только отборы и фильтры. Саму логику сопоставления объектов и полей правят в отдельной конфигурации «Конвертация данных
», выгружают оттуда и загружают в базу.
Поэтому первый вопрос — какой у вас механизм: старые правила в XML-файле (это «Конвертация данных 2.0») или синхронизация через универсальный формат EnterpriseData («Конвертация данных 3.0»). Способ правки, место хранения правил и порядок загрузки у них разные.
Ниже — как определить версию, где и чем открыть правила в каждом случае, как настроить отборы, прочитать протокол ошибок и внедрить изменения, не уронив рабочий обмен.
С чего начать: отличаем КД 2.0 от КД 3.0
Версию конвертации определяют не по платформе, а по тому, как настроен обмен в базе.
Признаки Конвертации данных 2.0:
- 📄 обмен настроен через обработку
Универсальный обмен данными в формате XML(файлВыгрузкаЗагрузкаДанныхXML.epf); - 🗂 правила лежат в отдельном XML-файле, который загружается в узел обмена;
- 🔀 формат выгрузки произвольный, своя структура под конкретную пару конфигураций.
Признаки Конвертации данных 3.0:
- 🔁 в базе есть раздел
Администрирование → Синхронизация данных, обмен идёт через «универсальный формат»; - 📐 формат обмена — EnterpriseData (стандартизированный, общий для типовых конфигураций);
- 🧩 правила хранятся в самой конфигурации — в модуле менеджера плана обмена, а не во внешнем файле.
Быстрая проверка: откройте в Конфигураторе дерево метаданных, ветку Планы обмена. Если узел работает через универсальный формат и ссылается на модуль менеджера — перед вами КД 3.0.
Правка правил в Конвертации данных 3.0 (формат EnterpriseData)
КД 3.0 — это отдельная конфигурация, которую запускают как самостоятельную базу. В ней правят правила, а не в рабочей базе.
Порядок работы:
- Выгрузите из обеих конфигураций описание формата EnterpriseData (версии формата) — это делается типовой обработкой выгрузки версии формата в каждой базе.
- Загрузите эти версии формата и текущие правила в «Конвертацию данных 3.0».
- Отредактируйте нужное: правила конвертации объектов, правила конвертации свойств, обработчики событий на встроенном языке.
- Выгрузите результат — получится модуль правил обмена.
- Поместите модуль обратно в конфигурацию рабочей базы.
Последний шаг — главный и часто пропускаемый. В типовой конфигурации правила обмена — это часть кода, поэтому просто «загрузить файл » в пользовательском режиме нельзя. Варианты:
- Через расширение конфигурации — самый аккуратный путь. Модуль с правилами подключается расширением, типовая конфигурация остаётся на поддержке, обновления не затирают правку. Расширения доступны с платформы 8.3.6.
- Правкой основной конфигурации — модуль правил меняется прямо в менеджере обмена. Конфигурацию придётся частично снять с поддержки, а после загрузки выполнить
Обновить конфигурацию базы данных(F7).
Загрузка .cfe (файла расширения) и команда Обновить конфигурацию базы данных — это два отдельных действия. Пока не выполните обновление конфигурации БД, новые правила в работу не пойдут.
Если обмен настроен через внешние правила (план обмена это допускает), модуль загружается без правки конфигурации — в настройке синхронизации появляется пункт загрузки правил из файла. Но в большинстве типовых такой опции нет: правила встроены.
Сопоставление полей в правилах КД 3.0
Основная работа при правке — связать свойства объекта-источника с полями формата и целевого объекта. Типичные сопоставления выглядят так:
Для каждого свойства в правиле конвертации свойств (ПКС) задают либо прямое сопоставление поля, либо обработчик — небольшой код, который вычисляет значение. Обработчики на встроенном языке используйте только тогда, когда простого сопоставления полей не хватает: лишний код усложняет отладку.
Правка правил в Конвертации данных 2.0 (XML-файл)
КД 2.0 — более старый инструмент, но многие обмены на нём до сих пор работают. Здесь правила — это внешний XML-файл, и это удобнее: его можно загрузить в узел обмена без правки конфигурации.
Структура правил в КД 2.0:
| Элемент правил | За что отвечает |
|---|---|
| ПВД — правила выгрузки данных | какие объекты и по какому отбору выгружать |
| ПКО — правила конвертации объектов | соответствие объекта-источника объекту-приёмнику |
| ПКС — правила конвертации свойств | соответствие реквизитов и табличных частей |
Как отредактировать:
- Откройте конфигурацию «Конвертация данных 2.0» как отдельную базу.
- Загрузите в неё структуры обеих конфигураций (источника и приёмника) — через выгрузку описания метаданных из каждой базы.
- Откройте нужную конвертацию, внесите правки в ПВД, ПКО или ПКС.
- Выполните команду выгрузки правил обмена — на выходе XML-файл.
- Загрузите этот файл в рабочую базу через обработку универсального обмена или в настройках узла плана обмена.
Поскольку правила КД 2.0 внешние, их легко держать в системе контроля версий и откатывать: сравнить два XML-файла нагляднее, чем два состояния модуля конфигурации.
Если нужно поправить разовую мелочь (убрать одно свойство из выгрузки, добавить условие), можно открыть XML -файл правил текстовым редактором и найти нужный узел. Но правьте XML руками только если понимаете структуру — ошибка в теге ломает загрузку всего файла целиком.
Настройка отборов, фильтров и состава выгрузки
Отборы — единственное, что реально правят в рабочей базе без конфигуратора. Путь: Администрирование → Синхронизация данных, откройте настройку обмена, нажмите изменение правил отправки и получения.
Что здесь доступно:
- 🏢 отбор по организации — выгружать данные только выбранных организаций;
- 📅 дата начала выгрузки — не поднимать историю за все годы;
- 🚚 отбор по складам, договорам, видам операций — в зависимости от конфигурации;
- ⛔ дата запрета загрузки — защита закрытого периода от правок из другой базы.
Отборы делятся на два направления: настройки отправки (что уходит из этой базы) и настройки получения (что принимается из базы-корреспондента). Их настраивают по отдельности — частая путаница в том, что ограничивают только отправку, а встречный поток идёт полностью.
Более глубокая фильтрация — на уровне самих правил (ПВД в КД 2.0 или правил выгрузки данных в КД 3.0). Там условие задаётся произвольным выражением: например, выгружать только проведённые документы или только номенклатуру определённого вида. Такие условия в пользовательском режиме недоступны — только через правку правил.
Ещё один слой — состав плана обмена. План обмена в Конфигураторе хранит список узлов и перечень объектов, изменения которых регистрируются к выгрузке (состав). Если нужного объекта нет в составе плана, никакие правила его не выгрузят — он просто не попадает в регистрацию изменений. Правка состава плана обмена и настройка авторегистрации — это уже уровень конфигурации, не пользовательский режим.
После изменения отборов состав данных меняется не задним числом. Объекты, уже выгруженные раньше, повторно не уйдут автоматически — их нужно зарегистрировать к выгрузке принудительно.
Протокол обмена и разбор ошибок синхронизации
Когда правила отредактированы, первый обмен почти всегда даёт замечания. Читать их нужно в протоколе, а не гадать.
Где смотреть результат:
- Предупреждения синхронизации — список объектов, которые не загрузились или загрузились с оговорками. Открывается из формы синхронизации данных после сеанса обмена.
- Состав отправляемых данных — отчёт о том, что именно зарегистрировано к выгрузке. Помогает понять, почему объект «не ушёл».
- Журнал регистрации — технические ошибки сеанса: сбой соединения, исключение в обработчике правил.
Типовые причины, по которым объект не проходит после правки правил:
- 🔍 Не найден объект поиска. В правиле задан поиск по реквизиту (например, по коду), а в базе-приёмнике такого значения нет — объект не с чем сопоставить.
- 🧮 Ошибка в обработчике. Код в ПКС обращается к реквизиту, которого нет в этой версии конфигурации.
- 📐 Расхождение версий формата. Правила собраны под одну версию EnterpriseData, а база-корреспондент работает на другой.
При расхождении версий формата не придумывайте «какая старше»: сравните номера версий формата в обеих базах напрямую. Правила должны быть собраны под версию не ниже той, что поддерживает принимающая сторона.
Отдельная ситуация — объект загрузился, но данные в нём не те. Это почти всегда ошибка в сопоставлении свойств (ПКС): поле связано не с тем реквизитом или обработчик возвращает неверное значение. Такую ошибку протокол не покажет как сбой — обмен пройдёт «успешно», а значения окажутся испорчены. Поэтому после правки свойств обязательно сверяют не только факт загрузки, но и содержимое нескольких контрольных объектов.
Для разбора замечаний по симптому удобно идти от текста ошибки к причине, а не перебирать всё подряд.
Как проверить изменения, не сломав рабочий обмен
Правила обмена — это код, который массово создаёт и меняет объекты в двух базах сразу. Проверяйте новые правила только на копии рабочей базы, никогда сразу на боевой. Ошибка в правиле способна задвоить документы или перезаписать справочники по всей системе.
Безопасный порядок внедрения:
Несколько приёмов, которые экономят разбор потом:
- Тестируйте на узком отборе — один-два документа и несколько элементов справочников. По маленькой партии ошибку сопоставления видно сразу, а не среди тысяч строк протокола.
- Проверяйте обмен в обе стороны. Правило может корректно выгружать и некорректно загружать встречный поток.
- Держите предыдущую версию правил под рукой. Для КД 2.0 это копия XML-файла, для КД 3.0 — предыдущий модуль или версия расширения. Откат должен занимать минуты.
Если обмен идёт по расписанию (регламентное задание), на время внедрения отключите автоматический обмен, чтобы недоправленные правила не ушли в работу между тестом и переносом.