1с не заданы правила конвертации для плана обмена

Обновлено: 07.07.2024

Многие специалисты работали с обменами данных в КД 2.0/2.1. Конвертация 3.0 представляет совершенно новую технологию. Сейчас мы расскажем её суть.

В чем суть Конвертации данных 3.0

Конфигурация «Конвертация данных» впервые была выпущена фирмой 1С для платформы 7.7, и с тех пор механизмы обменов данными развивались в рамках одного подхода.

Все обмены между различными по структуре базами 1С требовали написания правил обмена.

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

Для того, чтобы создать правила, нужно знать структуру метаданных базы-Источника и базы-Приемника, и описать преобразование объектов всех нужных типов. Правила выгружаются во внешний xml-файл, который используется каждый раз при выгрузке.

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

Тем более, что, если обмен выполняется в обе стороны, то таких правил двое.

В октябре 2014 года была выпущена первая версия «Конвертации данных», редакция 3.0, предназначенная для тестирования.

Новая технология, реализованная в «Конвертации данных 3.0», призвана обособить процессы выгрузки и загрузки, сделать их независимыми. Для этого создана совершенно другая концепция обмена.

Данные будут выгружаться в формат EnterpriseData, который не зависит напрямую от структуры баз Источника и Приемника.

Схема работы конфигурации “Конвертация данных” редакция 3.0. Универсальный формат выгрузки и загрузки данных EnterpriseData

Он предоставляется в виде xsd схемы, на основании которой формируется механизм преобразования объектов между этим форматом и любыми объектами информационных баз. Для упрощения этих преобразований формат EnterpriseData содержит объекты, аналогичные объектам метаданных типовых конфигураций.

Xml-формат EnterpriseData универсален как для обмена между базами 1С, так и со сторонними базами

При обмене через универсальный формат в каждой из баз содержится только код для преобразования объектов из базы в универсальный формат EnterpriseData и обратно.

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

Этот код находится в общем модуле МенеджерОбменаЧерезУниверсальныйФормат. Там же находятся и все обработчики событий, и весь механизм преобразования объектов, благодаря чему значительно упрощается процесс отладки. Там же могут быть описаны параметры, с помощью которых можно использовать единожды описанную там логику преобразования объектов для обмена с разными базами.

При необходимости разработчик может изменить структуру формата EnterpriseData для решения более широкого круга задач.

В процессе настройки обмена сама конфигурация «Конвертация данных 3.0» выполняет на данный момент только одну функцию — на базе структуры метаданных баз, участвующих в обмене, и схемы универсального формата она формирует тексты общих модулей МенеджерОбменаЧерезУниверсальныйФормат для каждой из баз.

Удобным будет сформировать эти модули на начальных этапах настройки обмена, а дальнейшие доработки выполнять непосредственно в тексте модулей в конфигураторе.

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

Таким образом, новая технология имеет ряд преимуществ:

  1. Для обмена между тремя и более базами не нужно создавать отдельные правила для каждой пары баз
  2. Упрощается поддержка обменов данными в случае изменения конфигураций баз
  3. Создан новый универсальный формат, который может быть использован, в частности, для обмена со сторонними базами
  4. Упрощается отладка алгоритмов, используемых при выгрузке-загрузке объектов.

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

Однако обмен через Универсальный формат не рассматривается как полная замена технологии обменов по правилам. «Конвертация данных» редакции 2.0/2.1 будет поддерживаться и дальше, так как для решения определенного круга задач она остается более удобным и гибким механизмом.

PDF-версия статьи для участников группы ВКонтакте

Описание ошибки:
Доработка правил обмена для односторонней выгрузки из базы конфигурации 1С: Управление торговлей ред.10.3 в базу конфигурации 1С: Бухгалтерия прдприятия, ред.3.0.

Для подобного рода доработки традиционно были взяты правила конвертации из УТ 10.3 в БП 3.0, предназначенные для выгрузки, инициируемой в базе УТ 10.3.

После доработки в правиле конвертации объекта "КорректировкаРеализации" (на скрине ниже приведен пример доработки для автоматической установки в документе после выгрузки в базу БП признака "Бухгалтерский учет прошлого года закрыт для корректировки (отчетность подписана)" для случая, когда в поле "Основание" находится документ, год даты которого меньше, чем год даты документа корректировки; так же в поле "Статья прочих доходов и расходов" устанавливается предопределенный элемент справочника "Исправительные записи по операциям прошлых лет") и теста обмена доработка не сработала.



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

1с 8 конвертация данных не срабатывает после загрузки объекта



Извлекаем из сохраненного архива файл CorrespondentExchangeRules.xml.


Добавляем в файл правил конвертации необходимые доработки. Обновляем в архиве.


Загружаем в "Параметры синхронизации данных". Оставляем вариант "Загрузить из файла на компьютере".


После проведенных операций. Выгрузка/загрузка документов из УТ 10.3 в БП 3.0 с доработкой обработчика "после загрузки" правил конвертации объекта стала выполняться как необходимо.

Чтобы выгрузить один объект источника в несколько объектов приемника, можно использовать мощный инструмент расширения возможностей правил конвертации – «ВыгрузитьПоПравилу».

Синтаксис функции:

Пример реальной задачи. Необходимо выгрузить справочник – «НоменклатурныеГруппы» в три объекта на стороне приемника: «НоменклатурнаяГруппа» (справочник), «ЗаказНаПроизводство» (документ), «СтатусыЗаказов» (регистр сведений). Для решения данной задачи можно использовать функцию «ВыгрузитьПоПравилу».

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


2. Выгрузка иерархического справочника (элементы и папки)

Если необходимо выгрузить иерархический справочник (элементы и папки) с учетом иерархии и поиск в базе приемника будет осуществляться по внутреннему идентификатору объекта источника (по полям поиска не будет продолжен поиск), то для корректной выгрузки иерархии необходимо установить галочку – «Поиск» у реквизита «ЭтоГруппа» (см. рисунок 1).


Рисунок 1 – Выгрузка иерархического справочника.

Если не установить галочку «Поиск» у реквизита «ЭтоГруппа», то папки объекта будут выгружаться как элементы.

3. Реквизиты объекта для правил регистрации объектов

Объекты регистрируются по правилам регистрации объектов к выгрузке только при изменении реквизитов объекта, которые указаны в правилах конвертации свойств (далее-ПКС) объекта (правила обмена данными). При необходимости регистрировать объект к выгрузке и при изменении реквизитов, которые не указаны в ПКС, достаточно данные реквизиты добавить в ПКС и установить галочку – «отключить» (см. рисунок 2).


Рисунок 2 – Реквизиты объекта для правил регистрации объекта.

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

4. Зарегистрировать объект к выгрузке другим объектом (объектами)

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

Синтаксис метода:

ЗарегистрироватьИзменения (Узлы, Данные)


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

В продолжение пункта 4. При выгрузке любого объекта происходит проверка, соответствует ли он существующим правилам регистрации. Если при регистрации вместо исходного объекта регистрируется к выгрузке другой объект, то новый объект также будет проходить проверку по своему типу правил регистрации объектов. В случае несоответствия правилам регистрации, объект будет выгружать, как «УдалениеОбъекта».

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

Описание параметра Выгрузка:

Выгрузка (только чтение) – Булево – параметр определяет контекст выполнения правила регистрации. Истина – правило регистрации выполняется в контексте выгрузки объекта. Ложь – правило регистрации выполняется в контексте перед записью объекта.


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

6. Выбор правила конвертации объектов по умолчанию

Если по одному объекту источнику в правилах конвертации объектов присутствуют несколько правил, то система будет использовать по умолчанию правило, которое совпадает по наименованию с наименованием объекта источника (см. рисунок 3).


Рисунок 3 – Выбор правила конвертации объекта по умолчанию.

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

7. Создание документов (справочников) через ПКО на стороне приемника

При необходимости создавать на стороне приемника новые элементы документов (справочников) и подставлять их в исходный объект, можно применить следующий подход:

- определить правило заполнения нового документа (справочника) на стороне приемника (например, через входящие данные);
- описать заполнение реквизита нового документа (справочника) в исходном объекте (например, через исходящие данные);
- заполнять при выгрузке на стороне источника новый документ (справочник) уникальным значением (например, числом).

Пример реальной задачи. Необходимо на стороне приемника создавать новые документы «ДокументРасчетовСКонтрагентом» в документе ввод начальных остатков по счетам взаиморасчетов. На стороне источника заполняем реквизит «ДокументРасчетовСКонтрагентом» при выгрузке начальных остатков по счетам взаиморасчетов уникальным значением (числом):


В исходном объекте («ВводНачальныхОстатков») описываем правила выгрузки реквизита «ДокументРасчетовСКонтрагентом»:


Определяем правило заполнения «ДокументаРасчетовСКонтрагентом» на стороне приемника (см. рисунок 4).


Рисунок 4 – Правили выгрузки «ДокументРасчетовСКонтрагентов».

В конвертации данных нельзя создать параметр с типом «ТаблицаЗначений» на вкладке «Параметры» (см. рисунок 5).


Рисунок 5 – Допустимые типы для параметров конвертации данных.

Возможность создать параметр с типом «ТаблицаЗначений» при необходимости присутствует в системе, необходимо в общем обработчике «ПередЗагрузкойДанных» определить параметр.


Также необходимо в общем обработчике «ПослеЗагрузкиДанных» удалить данный параметр.


9. Выгрузка реквизитов со значением перечисления или предопределенного значения справочника

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

Пример реальной задачи. В базе приемника присутствует реквизит – «ТипПлатежа» с типом «Перечисление». При выгрузке реквизита (обработчик: «Перед выгрузкой») можно указать текстовое значение равное наименованию элемента перечисления на стороне базы приемника (см. рисунок 6). Данный подход может ускорить процесс разработки в конвертации данных.


Рисунок 6 – Заполнение реквизита с типом «Перечисление».

10. Ускорение процесса выгрузки с помощью параметра «ВыгрузитьОбъект» («ВыгрузитьТолькоСсылку»)

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


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

Рассмотренные приемы работы позволят повысить производительность и эффективность работы с программой конвертацией данных 2.1.

Статью подготовил Аналитик-эксперт по информационным системам "ИнфоСофт" Ретунский Александр.

Читайте также: