Отладка правил конвертации

Конвертация данных 3.0. Новый подход к обменам данными

Отладка правил конвертации

В данной статье разберем основы технологии обмена данными с помощью 1С:Конвертации данных 3.0 – как это работает, какие преимущества, актуальны ли старые технологии обмена.

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

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

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

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

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

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

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

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

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

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

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

Формат EnterpriseData – это xml-формат, который создан, чтобы стать универсальным для всех обменов как между базами 1С, так и со сторонними базами.

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы узнать, как КД 3.0 выполняет обмен данными, переходите к следующей статье – Конвертация данных 3.0. Новая технология.

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

Мы ведем группу ВКонтакте – http://.com/kursypo1c.

Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

Ссылка доступна для зарегистрированных пользователей)Ссылка доступна для зарегистрированных пользователей)Ссылка доступна для зарегистрированных пользователей)

Источник: https://xn----1-bedvffifm4g.xn--p1ai/articles/%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-3-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9-%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4/

Конвертация данных, редакция 3.0. Урок 1. Подготовка работы с КД3.0

Отладка правил конвертации

Конвертация данных, редакция 3.0 (далее КД3.0) – является одним из компонентов технологии обмена данными через формат EnterpriseData.  КД3.0 не является заменой конфигурации Конвертация данных, редакция 2.0 (далее КД2.0).

 Это новый стандарт, который   сильно отличается от КД 2.0 .   Главное назначение КД3.

0 – это  создание  программный код модуля менеджера обмена , состоящий из процедур и функций, в которых реализована логика загрузки данных, представленных в формате EnterpriseData, а также логика выгрузки данных в формат.

Рис 1 Общий модуль менеджера обмена

КД3.0 можно скачать на сайтеhttps://users.v8.1c.ru/

Редакция 3.0.5.3 , предназначена для использования с версией системы
1С:Предприятие 8.3 не ниже 8.3.10,  а  редакция 3.0.4.3 –  для использования с версией системы 1С:Предприятие 8.3 не ниже 8.3.8.

Поставка КД3.0 содержит следующие внешние обработки

  •   Обработка MD83Exp.epf   “Выгрузка описания структуры метаданных конфигурации 8.3” – предназначена для выгрузки описания структуры метаданных любой конфигурации, реализованной на платформе “1C:Предприятие 8.3”.
  • Обработка Выгрузка правил синхронизации.epf  “Выгрузка правил синхронизации через универсальный формат” используемую при подготовке файлов правил конвертации, предназначенных для последующей загрузки в конфигурацию “Конвертация данных”, редакция 3.0.
  • Файл “Описание конфигурации.htm” содержит краткое описаниеосновных функциональных возможностей конфигурации“Конвертация данных”, редакция 3.0.

Дополнительные сведения по конфигурации “Конвертация данных”, редакция 3.0
см. http://its.1c.ru/db/metod8dev#content:5846:hdoc

1. Подготовка к настройке правил

Для загрузки структуры формата нужно сначала открыть конфигурацию базу данных в режиме конфигуратора  и выгрузить пакеты XDTO из конфигурации в файлы *.xsd.

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

После выполнения загрузки  формата XDTO в КД 3.0 происходит заполнение справочников “Объекты формата”, “Свойства формата”, “Значения формата”

В  справочник “Объекты формата” загружаются :

  • Объекты с типом “ТипОбъектаXDTO”, которые отражают ссылочные типы данных (документы, справочники)
  • Объекты с типом “ТипЗначенияXDTO”, содержащие перечисление. Они отражают предопределенные данные (например, перечисления)

В справочник “Свойства формата”  загружаются :

  • Свойства объектов “ТипОбъектаXDTO”. При этом сами объекты – те что были загружены в “Объекты формата”
  • Объекты с типом “ТипОбъектаXDTO” и их свойства, которые отражают табличные части и реквизиты табличных частей

В справочник “Значения формата”  загружаются свойства объектов “ТипЗначенияXDTO”, представляющие собой элементы предопределенных данных. При этом сами объекты – те что были загружены в “Объекты формата”

 1. 2. Обработка “Загрузка структуры конфигурации”

Данная обработка выполняет загрузку структуры метаданных конфигурации в информационную базу Конвертация данных ред.3.

Для выгрузки информации о структуре информационной базы используется обработка MD83Exp.epf, входящая в комплект поставки конфигурации КД3.0

Для информационной базы, структуру которой необходимо выгрузить, следует выполнить следующие действия:

  1. Открыть информационную базу в режиме “Предприятие”.
  2. Открыть внешнюю обработку  MD83Exp.epf (Меню Файл — Открыть).
  3. Указать имя файла, в который  следует сохранить структуру информационной базы.
  4. Проверить настройки в форме обработки (все флаги должны быть сняты).
  5. Нажать кнопку Выгрузить.

После выполнения выгрузки структуры конфигурации заполняются справочники

  • Объекты метаданных
  • Свойства объектов
  • Значения объектов.

Справочник Объекты метаданных  содержит информацию об объектах метаданных конфигурации. Тип объектов фиксируется в соответствующем реквизите.

В зависимости от значения реквизита Тип, заполняются реквизиты, описывающие свойства объекта метаданных. Реквизиты объектов метаданных описываются в подчиненном справочнике Свойства объектов.

Значения объектов (значения перечислений и имена предопределенных элементов) описываются в подчиненном справочнике Значения объектов.

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

Загрузка конфигурации выполняется с помощью обработки Загрузка структуры конфигурации (см.пункт 1.2). Отметим также, что  быть создан элемент справочника Конвертации.

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

1.3.1 Подготовка файлов для загрузки правил

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

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

Для подготовки файла с модулем менеджера необходимо войти в информационную базу в режиме Конфигуратор и сохранить общий модуль МенеджерОбменаЧерезУниверсальныйФормат в текстовый файл. Имя файла можно указать любое.

Все подготовленные файлы должны располагаться в одном каталоге.

1.3.2  Загрузка правил синхронизации

Выполняется в информационной базе Конвертация данных ред.3 с помощью обработки Загрузка правил синхронизации из файлов.

В форме обработки указать:

  • Каталог обмена, в котором расположены подготовленные ранее файлы
  • Конвертацию
  • Состав загружаемых данных
    • либо указать вариант “все”
    • либо выбрать выборочную загрузку, и настроить перечень правил, которые следует загружать
  • Файл с модулем менеджера обмена (не требуется, если производится выборочная загрузка и не выполняется загрузка обработчиков)

1.3.3 Особенности загрузки в непустую базу

  • Если загружаемое правило существует, и оно принадлежит только одной конвертации (текущей) – правило будет изменено. При этом не выполняется анализ отличий между существующим и загружаемым правилом, правило перезаполняется и записывается безусловно.
  • Если загружаемое правило существует, и оно принадлежит нескольким элементам справочника Конвертации, включая текущую конвертацию – будет создано новое правило и привязано к текущей конвертации. “Старое” правило останется без изменений, и останется привязанным к другим конвертациям.
  • Группы правил не загружаются. Но если правило было отнесено к какой-то группе, при повторной загрузке в это правило данная информация сохранится.

Источник: https://master1c8.ru/platforma-1s-predpriyatie-8/rukovodstvo-razrabottchika/glava-15-mehanizm-obmena-dannh/konvertatsiya-dannh-redaktsiya-3-0/

Отладка правил обмена 1С Конвертация данных

Отладка правил конвертации

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

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

Если это платформа «1С: Предприятие 7.7», то код обработчиков интегрируется в код обработки выгрузки или загрузки. Соответственно, каждый обработчик или алгоритм выделяется в отдельную функцию и доступен для отладки при обмене.

Если выгрузка или загрузка происходят на платформе «1С: Предприятие 8», то код обработчиков не интегрируется в код обработки обмена данными, а выгружается в файл правил обмена.

В процессе обмена данными код обработчиков или алгоритмов берется из файла правил и выполняется непосредственно в контексте оператора «Выполнить».

Для отладки кода обработчиков и алгоритмов можно воспользоваться обработкой «Универсальный обмен данными XML».

Обработка 1С «Универсальный обмен данными XML» позволяет автоматически сформировать текст модуля отладки с кодом обработчиков и подключить этот модуль при выполнении обмена данными посредством внешней обработки.

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

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

Настройка отладки обработчиков правил обмена

Для выполнения сеанса отладки откройте обработку «Универсальный обмен данными XML» и перейдите на закладку «Выгрузка» или «Загрузка» (в зависимости от варианта обмена).

Установите флажок «Режим отладки обработчиков выгрузки (загрузки)» и откройте окно настройки отладки по кнопке «Настройка отладки выгрузки (загрузки)».

Настройка отладки обработчиков и алгоритмов правил обмена выполняется за четыре шага:

Получите 267 видеоуроков по 1С бесплатно:

Шаг 1: Выбор режима отладки алгоритмов

В первую очередь выберите режим отладки алгоритмов:

  •  Без отладки алгоритмов.
  •  Вызывать алгоритмы как процедуры.
  •  Подставлять код алгоритмов по месту вызова.

Режим «Без отладки алгоритмов» удобно использовать, когда мы точно знаем, что ошибка в обработчике не связана с кодом какого-либо алгоритма. В этом режиме код алгоритмов не выгружается в модуль отладки. Алгоритмы выполняются в контексте оператора «Выполнить», и их код недоступен для отладки.

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

Этот способ является рекомендуемым. Однако если разработчик использует какой-либо другой способ передачи параметров (например, используются локальные переменные обработчика), то при попытке запуска выгрузки или загрузки в режиме отладки обработчиков программа выдаст ошибку создания внешней обработки.

Для отладки таких алгоритмов существует третий режим.

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

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

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

Шаг 2: Формирование модуля отладки

Выполните выгрузку обработчиков по кнопке «Сформировать модуль отладки выгрузки (загрузки)». Сформированные обработчики и алгоритмы выводятся в отдельное окно для просмотра, содержимое которого можно скопировать в буфер обмена по кнопке «Копировать в буфер обмена».

Шаг 3: Создание внешней обработки

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

Шаг 4: Подключение внешней обработки

В заключение укажите имя файла внешней обработки в поле «Имя файла внешней обработки с модулем отладки» и нажмите на кнопку «Готово».

При этом программа выполнит проверку по времени создания (обновления) файла обработки.

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

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

Примечание:

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

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

Пример передачи параметров алгоритму

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

В глобальном обработчике конвертации «Перед выгрузкой данных» определяем структуру «ПараметрыАлгоритмов»:

В обработчике «Перед обработкой» правила выгрузки данных определяем параметры для передачи в алгоритм «ВыгрузитьОстаткиПоСкладу»:

В теле алгоритма получаем переданные параметры:

Заключение

В этой статье мы узнали о механизме отладки обработчиков событий и алгоритмов правил обмена.

Выяснили, что при возникновении ошибок выгрузки или загрузки данных возможно использование обработки «Универсальный обмен данными XML» в режиме отладки обработчиков.

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

Автор статьи — Фирма 1С.

Азы настройки обмена данными в 1С с помощью конфигурации «1С Конвертации данных» на примере смотрите в видео:

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

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник: https://programmist1s.ru/otladka-obrabotchikov-pravil-obmena/

По закону
Добавить комментарий