Как изменить правила обмена через универсальный формат

Обмен через универсальный формат Подсистема «Обмен данными» библиотеки стандартных подсистем содержит 4 варианта ( технологии) обмена информацией между различными информационными базами: распределе…

Обмен через универсальный формат

Подсистема «Обмен данными» библиотеки стандартных подсистем содержит 4 варианта ( технологии) обмена информацией между различными информационными базами:

  • распределенные информационные базы (РИБ);
  • обмен данными через универсальный формат;
  • обмен данными по правилам обмена (правила обмена создаются при помощи конфигурации «Конвертация данных», редакция 2.1);
  •  обмен данными без правил обмена.

В этой статьи рассматривается технология обмена данными через универсальный формат EnterpriseData.  Данная технология   доступна в “Библиотеке стандартных подсистем”, начиная с версии 2.3.1.62. выпущенной в начале 2016 году.  На текущий момент, последняя редакция БСП 2.3  (для  использования с платформой “1С:Предприятие 8.3” не ниже версии 8.3.8.1652 с отключенным режимом совместимости)  имеет релиз 2.3.6.17 .

Рис. 1 Последние релизы БСП 2.3

Среди файлов поставки прикладных решений 1С имеется текстовый файл “Версии библиотек”, где написана на базе какой версии БСП разработано приложение, например,  на основе прикладного решения УТ 11.3.3.231 легло БСП  2.3.5.65.

Отметим, что  для использования с платформой “1С:Предприятие 8.3” не ниже версии 8.3.10.2168 с отключенным режимом совместимости выпущена редакция БСП 2.4.  

Описание формата EnterpriseData

Что такое формат EnterpriseData ?

Это формат, позволяющий описать объект информационной базы (контрагента, накладную и т.п.) или сообщить о факте удаления этого объекта. Ожидается, что конфигурация, получившая файл в формате EnterpriseData, отреагирует соответствующим образом – создаст у себя новые объекты и удалит те, которые в файле помечены как удаленные. Он  предназначен для обмена информацией между конфигурациями УТ, РТ, УНФ, БП. Также формат может использоваться для обмена информацией с любыми другими информационными системами: он не зависит от особенностей собственного программного обеспечения или структур информационных баз, которые участвуют в обмене и не содержит в себе явных ограничений использования.

Версия  формата EnterpriseData

Данные формата хранятся в XDTO – пакетах в ветки общие конфигурации базы данных, как  показано на рис. 2

Рис.2 XDTO – пакеты формата данных EnterpriseData

На рис. 2 видно, что существуют несколько XDTO – пакетов. Это разные версии формата. Номер версии формата состоит из X.Y.Z, где X.Y – версия, Z – это Minor версия. Minor версия увеличивается в случае исправления ошибок и прочих изменениях, при которых: сохраняется работоспособность логики конвертации данных, основанной на предыдущей версии формата (сохранение обратной совместимости текущих алгоритмов передачи данных через формат); поддержка новых возможностей формата для логики конвертации носит добровольный характер. Примером таких изменений может быть исправление ошибки, изменения свойств объектов формата, добавление свойств, использование которых при конвертации данных не является обязательным. В остальных случаях при изменении формата увеличивается Major версия: X – в случае глобальной реструктуризации, Y – в остальных случаях.
Формат описывает представление объектов (документов или элементов справочников) в виде XML-файлов. Версия 1.0.1 содержит описание 94-х объектов из различных областей (финансы, производство, закупки и продажи, складские операции). Названия типов, как правило, хорошо понятны и не нуждаются в дополнительных объяснениях: например, «Документ.АктВыполненныхРабот» или «Справочник.Контрагенты». Как можно заметить, описание типов документов начинается с префикса «Документ.», элемента справочника – с префикса «Справочник.».
Последняя версия 1.3, однако, чаще всего используется версия 1.0. Нет большой разницы между версиями. Формат EnterpriseDataExchange_1_0_1_1 используется при обмене через веб-сервис.
Отметим, что вместе с пакетом формата данных EnterpriseData используется пакет ExchangeMessage  при создании правилах конвертации. Именно этот пакет  содержит тип объект AdditionalInfo, который может иметь любой тип значения и используется при при создании правила конвертации между объектами конфигураций. которые отсутствуют в  формате данных. Именно, благодаря  AdditionalInfo, можно адаптировать и настраивать  правила обмена без  изменения данных формата в XDTO-пакетах.  

Рис. 3 Структура XDTO-пакетаExchangeMessage

Как обмениваться данными в формате EnterpriseData?

Обмен данными в формате EnterpriseData с конфигурацией – это обмен файлами. В ответ на полученный от внешнего приложения файл конфигурация обработает его и создаст файл-ответ. Обмен файлами может происходить:

  • через выделенный файловый каталог,
  • через каталог FTP,
  • через веб-сервис, развернутый на стороне информационной базы. Файл с данными передается как параметр веб-методов.

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

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

Следующий шаг за сторонним приложением – оно должно обработать информацию из XML-файла и при следующем сеансе синхронизации поместить в секцию <Confirmation> информацию, что сообщение от конфигурации за определенным номером успешно принято (поместить в поле ReceivedNo номер полученного от конфигурации сообщения). Сообщение-квитанция является для конфигурации сигналом, что все объекты успешно обработаны внешним приложением и информацию о них передавать больше не нужно. Помимо квитанции XML-файл от стороннего приложения также может содержать данные для синхронизации (в секции <Body>).

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

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

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

Более подробно об обмен данными с прикладными решениями на платформе «1С:Предприятие» в формате EnterpriseData можно посмотреть здесь 

Общий модуль “менеджера обмена через универсальный формат”.

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

Рис. 4 Структура модуля менеджера обмена через универсальный формат

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

Модуль состоит из нескольких крупных разделов, каждый из которых содержит свою группу процедур и функций.

  1. Комментарий. Первая строка модуля содержит комментарий с наименованием конвертации. Эта строка необходима для идентификации модуля при использовании команды Загрузка обработчиков в программе «Конвертация данных», редакция 3.0., например. // Конвертация УП2.2.3 от 01.06.2017 19:51:50
  2. Процедуры конвертации. Содержит предопределенные процедуры, которые выполняются на разных этапах синхронизации данных: перед конвертацией, после конвертации, перед отложенным заполнением.
  3. Правила обработки данных (ПОД). Содержит процедуры и функции, которые описывают правила обработки данных.
  4. Правила конвертации объектов (ПКО). Содержит процедуры и функции, которые описывают правила конвертации объектов, а также правила конвертации свойств данных объектов.
  5. Правила конвертации предопределенных данных (ПКПД). Содержит процедуру, заполняющую правила конвертации предопределенных данных.
  6. Алгоритмы. Содержит произвольные алгоритмы, которые вызываются из других правил (ПОД или ПКО).
  7. Параметры. Содержит логику заполнения параметров конвертации.
  8. Общего назначения. Содержит процедуры и функции, которые широко используются в правилах и алгоритмах.

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

КомпонентыОбмена. Тип – Структура. Содержит параметры и правила обмена, инициализированные в рамках выполнения сеанса обмена.

НаправлениеОбмена. Тип – Строка. Либо «Отправка», либо «Получение».

ДанныеИБ. Тип – СправочникОбъект либо ДокументОбъект.

Процедуры, связанные с событиями конвертации

Предусмотрены три предопределенные процедуры, которые вызываются в процессе конвертации:

  • ПередКонвертацией. Вызывается перед выполнением синхронизации данных. Обычно в этой процедуре размещается логика инициализации различных параметров конвертации, заполнения значений по умолчанию и т. д. Параметры:КомпонентыОбмена.
  • ПослеКонвертации. Вызывается после выполнения синхронизации данных, но до выполнения отложенного заполнения. Параметры:КомпонентыОбмена.
  • ПередОтложеннымЗаполнением. Вызывается перед выполнением отложенного заполнения. Здесь может быть расположена логика сортировки или корректировки таблицы объектов, подлежащих отложенному заполнению. Параметры:КомпонентыОбмена.

Процедуры ПОД

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

ДобавитьПОД_<ИмяПОД>. Набор процедур, которые наполняют таблицу ПОД правилами для конкретных объектов. Количество таких процедур соответствует количеству ПОД, предусмотренных для данной конвертации в программе «Конвертация данных», редакция 3.0. Параметры: ПравилаОбработкиДанных (таблица значений, инициализированная в рамках выполнения сеанса обмена).

ПОД_<ИмяПОД>_ПриОбработке. Процедура содержит текст обработчика ПриОбработке для конкретного ПОД. Обработчик предназначен для реализации логики конвертации на уровне объектов. Например, назначить конкретному объекту определенное ПКО в зависимости от содержимого объекта. Параметры:

  • ДанныеИБлибо ДанныеXDTO (в зависимости от направления обмена):
  • при отправке – объект (СправочникОбъект,ДокументОбъект);
  • при получении – структуру с описанием объекта XDTO.
  • ИспользованиеПКО. Тип –Структура. Ключ содержит строку с именем ПКО, а значение типа Булево (Истина – ПКО используется, Ложь – ПКО не используется).
  • КомпонентыОбмена.

ПОД_<ИмяПОД>_ВыборкаДанных. Функция содержит текст обработчика ПриВыгрузке. Обработчик предназначен для реализации произвольного алгоритма выборки объектов, подлежащих выгрузке. Возвращаемое значение: массив объектов, подлежащих выгрузке. В массиве могут содержаться как ссылки на объекты информационной базы, так и структура с данными для выгрузки. Параметры: КомпонентыОбмена.

Процедуры ПКО

ЗаполнитьПравилаКонвертацииОбъектов. Экспортная процедура, в которой располагается логика заполнения правил конвертации объектов. Содержит вызовы других процедур, которые добавляют в таблицу правил правило конвертации конкретного объекта (см. ниже процедуры ДобавитьПКО). Параметры: НаправлениеОбменаПравилаКонвертации (таблица значений, инициализированная в рамках выполнения сеанса обмена).

ДобавитьПКО_<ИмяПКО>. Набор процедур, которые наполняют таблицу ПКО правилами для конкретных объектов. Количество таких процедур соответствует количеству ПКО, предусмотренных для данной конвертации в программе «Конвертация данных», редакция 3.0. Параметры: ПравилаКонвертации (таблица значений, инициализированная в рамках выполнения сеанса обмена).

ПКО_<ИмяПКО>_ПриОтправкеДанных. Процедура содержит текст обработчика ПриОтправке для конкретного ПКО. Обработчик используется при выгрузке данных. Предназначен для реализации логики конвертации данных, содержащихся в объекте информационной базы, в описание объекта XDTO. Параметры:

  • ДанныеИБ. Тип –СправочникОбъектДокументОбъект. Обрабатываемый объект информационной базы.
  • ДанныеXDTO. Тип –Структура. Предназначен для доступа к данным объекта XDTO.
  • КомпонентыОбмена.
  • СтекВыгрузки. Тип –Массив. Содержит ссылки на выгружаемые объекты с учетом вложенности.

ПКО_<ИмяПКО>_ПриКонвертацииДанныхXDTO. Процедура содержит текст обработчика ПриКонвертацииДанныхXDTO для конкретного ПКО. Обработчик используется при загрузке данных. Предназначен для реализации произвольной логики конвертации данных XDTO. Параметры:

  • ДанныеXDTO. Тип –Структура. Свойства объекта XDTO, прошедшие предварительную обработку для упрощения доступа к ним.
  • ПолученныеДанные. Тип –СправочникОбъектДокументОбъект. Объект информационной базы, сформированный путем конвертации данных XDTO. Не записан в информационную базу.
  • КомпонентыОбмена.

ПКО_<ИмяПКО>_ПередЗаписьюПолученныхДанных. Процедура содержит текст обработчика ПередЗаписьюПолученныхДанных для конкретного ПКО. Обработчик используется при загрузке данных. Предназначена для реализации дополнительной логики, которую необходимо выполнить перед записью объекта в информационную базу. Например, нужно ли загрузить изменения в существующие данные ИБ либо следует загрузить их как новые данные. Параметры:

  • ПолученныеДанные. Тип –СправочникОбъектДокументОбъект. Элемент данных, сформированный путем конвертации данных XDTO.

Записывается в случае, если эти данные являются для информационной базы новыми (параметр ДанныеИБ содержит значение Неопределено).

В противном случае ПолученныеДанные замещают собой ДанныеИБ (все свойства из ПолученныеДанные переносятся в ДанныеИБ).

Если стандартное замещение данных ИБ полученными данными не требуется, следует прописать свою логику переноса, после чего установить параметру ПолученныеДанные значение Неопределено:

  • ДанныеИБ. Тип –СправочникОбъектДокументОбъект. Элемент данных информационной базы, соответствующий полученным данным. Если соответствующие данные не найдены, содержит Неопределено.
  • КонвертацияСвойств. Тип –Таблица значений. Содержит правила конвертации свойств текущего объекта, инициализированные в рамках выполнения сеанса обмена.
  • КомпонентыОбмена.

Процедуры ПКПД

ЗаполнитьПравилаКонвертацииПредопределенныхДанных. Экспортная процедура, в которой располагается логика заполнения правил конвертации предопределенных данных. Параметры: НаправлениеОбменаПравилаКонвертации (таблица значений, инициализированная в рамках выполнения сеанса обмена).

Алгоритмы

В программе «Конвертация данных», редакция 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, который не зависит напрямую от структуры баз Источника и Приемника.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ольга Кузнецова

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

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

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

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

Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.

Содержание:

1.    Зачем изменять типовой XDTO-пакет?

2.    Образцы описания документа в XDTO-пакете

3.    Обновление 1С 8.3 записей регистра сведений НастройкиОбменаДаннымиXDTO

В статье описан порядок действий при подключении нетиповых документов к механизму «Синхронизация данных через универсальный формат» (КД 3.0).

В контексте данной статьи термин «нетиповой» означает, что документ не описан ни в одном из XDTO-пакетов механизма «Синхронизация данных через универсальный формат».

Если же документ описан в типовом XDTO-пакете, то порядок его подключения к обмену можно посмотреть в статье «Обмен через универсальный формат (КД 3.0): подключение типового документа».  

1.    Зачем изменять типовой XDTO-пакет?

Основной смысл технологии КД 3.0 (обмен через универсальный формат) – это добиться «универсальности» правил обмена, чтобы правила выгрузки/загрузки объектов не зависели от того, какая конфигурация (или ее релиз) находятся на том «конце провода». И если мы корректируем типовой XDTO-пакет, то мы эту «универсальность» разрушаем.

Но в полной мере преимуществом «универсальности» может воспользоваться только сама 1С (и ее партнеры – разработчики конфигураций), которая таким образом упрощает себе процедуры обновления правил обмена при переходе от одного релиза типовых конфигураций 1С 8.3 к другим, а также упрощает подключения к обменам новых конфигураций.

На стороне пользователя выгоды от «универсальности» гораздо меньше, ведь он работает с конкретной конфигурацией-источником и конкретной конфигурацией-приемником. Все изменения правил обмена между этими конфигурациями (в т.ч. структура XDTO-пакетов) согласованы внутри его «корпорации». А то, что его правила обмена становятся несовместимы с правилами обмена, принятыми в других «корпорациях», его в большинстве случаев не волнует. Поэтому изменить структуру XDTO-пакета обычно некритично.

Более того, если речь идет о добавлении в обмен новых объектов, то технически это проще сделать через технологию КД 2.0:

·         Там нужно писать всего один комплект правил обмена вместо двух для КД 3.0.

·         Включение в обмен КД 3.0 промежуточного «универсального формата» сильно повышает уровень абстракции (он уже не связан напрямую с прикладной областью) и избыточности (он же «универсальный»). А это, в свою очередь, повышает требования к квалификации специалистов, которые этот обмен будут настраивать.

Но в последних конфигурациях 1С продвигается обмен именно по технологии КД 3.0. И чтобы для своих нетиповых объектов не строить параллельно еще и второй механизм обмена (на КД 2.0), приходится корректировать типовые XDTO-пакеты.

Есть описания примеров, когда для нетиповых объектов создаются отдельные XDTO-пакеты, а для работы с ними в 1С запускается отдельная 1С 8.3 XDTO-фабрика. Но это опять-таки – построение параллельного механизма обмена (два механизма на КД 3.0), а этого хочется избежать.

Итак, если мы хотим остаться внутри единого механизма «Синхронизация данных через универсальный формат», и для нас некритичен факт изменения типового XDTO-пакета, то изменим типовой XDTO-пакет.  

2.    Образцы описания документа в XDTO-пакете

Объекты обмена, которые включены в состав механизма «Синхронизация данных через универсальный формат», описаны в XDTO-пакетах, наименования которых начинаются с «EnterpriseData». Например, EnterpriseData_1_2_3 … EnterpriseData_1_6_20, где 1_2, … 1_6 – это номера «версий форматов».

 

Добавлять описание своего объекта необязательно во все XDTO-пакеты EnterpriseData_1_2_3 … EnterpriseData_1_6_20. Достаточно это сделать только для того номера версии формата, на котором обмениваются наши конкретные конфигурации. Узнать его можно в настройках синхронизации данных.

Т.е. в нашем примере достаточно скорректировать пакет EnterpriseData_1_5_20.

Корректировать XDTO-пакет можно либо вручную, либо с использованием специализированного редактора.

Посмотрим на образец описания документа. В примере добавляем описание нетипового документа «экзРапортФ114». Вносим описание типа значения:

Вносим описание его структуры (реквизиты шапки, в т.ч. ключевые свойства, табличную часть «Сырье» и реквизиты строки табличной части:

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

3.    Обновление 1С 8.3 записей регистра сведений НастройкиОбменаДаннымиXDTO

После добавления описания документа в XDTO-пакет есть один тонкий момент. Даже если Вы включили свой документ (в примере — это «экзРапортФ114» синоним «Рапорт на выработку комбикорма») в состав плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат», и он появится на форме регистрации изменений, этот документ еще не включен в механизм обмена. Об этом свидетельствует его отсутствие на ветке «AvailableObjectTypes» файла обмена.

 

Дело в том, что механизм обмена содержит в себе описание «доступных объектов», которое среди прочего хранится в регистре сведений НастройкиОбменаДаннымиXDTO. «Доступные объекты» в этом регистре заполняются:

А) Из состава XDTO-пакет при первичной настройке плана обмена à определяются объекты, которые «в принципе могут обмениваться».

Б) При анализе правил обмена текущей конфигурации à уточняется перечень объектов, доступных на «прием» и «отправку» относительно текущей базы.

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

Объект становится «доступным на отправку», если он «в принципе может обмениваться» (выполнен п.А), имеет правила «на отправку» в текущей базе (п.Б) и имеет правила «на приемку» в базе-корреспонденте (п.В). Аналогично «доступен на приемку», если есть п.А, есть правила «на приемку» у текущей (п.Б) и правила «на отправку» у корреспондента (п.В).

Для того, чтобы выполнить п.Б и п.В достаточно настроить правила обмена (инструкции и примеры можно найти в интернете оп запросу «1С:Конвертация данных 3»).

А вот с п.А сложнее. Как уже сказано, он выполняется при первичной настройке плана обмена 1С 8.3. Когда Вы добавляете свой объект, как правило, первичная настройка обмена уже произведена. Как быть?

Можно, например, в настройку синхронизации добавить команду «Обновить настройку синхронизации», которая перечитывает состав XDTO-пакетов. Текст модуля этой команды приведен в прил.1.

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

После того как Вы включили свой нетиповой документ в состав «доступных объектов», в т.ч. выполнили настройку правил обмена, Ваш документ появится на ветке AvailableObjectTypes.

В примере выполняется односторонний обмен документом «экзРапортФ114» из конфигурации Бухгалтерия 3.0 в конфигурацию «1С:ERP Управление предприятием 2». Поэтому в файле, выгруженном из «1С:Бухгалтерия 3.0» документ прописан на ветке «Sending».

 

А в файле, выгруженном из «1С:ERP Управление предприятием 2», документ прописан на ветке «Receiving»/

Нетиповой документ готов к обмену через типовой механизм.

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

1.    Описать документ в XDTO-пакете обеих обменивающихся конфигураций.

2.    Обновить записи регистра сведений НастройкиОбменаДаннымиXDTO обеих обменивающихся баз.

3.    Выполнить действия для «типовых» документов (см. статью «Обмен через универсальный формат (КД 3.0): подключение типового документа», — ссылка в начале):

a.    В конфигурации-источнике подключить документ в состав плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат».

b.    Настроить правила обмена (КД 3.0) в обеих конфигурациях

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

Приложение 1

Текст модуля команды «Обновить настройку синхронизации».

 

Специалист компании ООО «Кодерлайн» 

Игорь Борисенко.

Изменение типовых правил обмена универсального формата

Я
   zippygrill

29.05.16 — 12:11

Всем привет!

Очень надеюсь на вашу помощь.

Настраиваю односторонний обмен УТ-БП. Настройку делаю сначала в БП (в описание даже написано для одностороннего обмена с УТ), выбираю универсальный формат, конфу УТ11 и далее далее далее (через сетевой диск подключение).

В УТ подбираю файл с настройками созданный настройкой БП и также далее далее.

Выгрузил и из БП и из УТ модули универсального формата и все правила. Загрузил в новые конвертации в КД 3. При отправки номенклатуры из УТ, мне нужно чтобы код -> артикул. Меняю это в КД. Тоже самое делаю и для конвертации БП при получении. Сохраняю каждый модуль выгрузки во внешнюю обработку и соответственно путь к этим обработкам указываю в настройках синхронизации. Выполняю обмен, результат 0.

Нет понимания вообще, правильный ли подход к изменению правил я выбрал? И почему измененные правила не отрабатывают как мне надо.

   zippygrill

1 — 29.05.16 — 12:13

   MaxS

2 — 29.05.16 — 12:51

Зачем в БП менять правила, если в УТ уже поменяли правило выгрузки?

   zippygrill

3 — 29.05.16 — 12:53

Когда настривал в УТ выбрал этот пункт http://screencast.com/t/E7P9hTTNsI2

   zippygrill

4 — 29.05.16 — 12:54

+ (3) может в этом причина? Но опять же если я бы выбрал пункт «Бухгалтерия предприятия 3.0» то не смог бы выбрать файл с настройками..

   zippygrill

5 — 29.05.16 — 12:56

(2) Убрал путь ко внешней обработки в БП. Артикул по прежнему не заполняется при очередном обмене

   zippygrill

6 — 29.05.16 — 13:02

в КД правильно ли я указал ПКС код в артикул?

   MaxS

7 — 29.05.16 — 13:02

УТ файловая? Поставить точку останова в процедуре ПКО_Справочник_Номенклатура_Отправка_ПриОтправкеДанных и глянуть отладчиков что в ДанныеXDTO

   zippygrill

8 — 29.05.16 — 13:03

да. файловая. Точку останова не в модуле типовом а в моей обработки?

   MaxS

9 — 29.05.16 — 13:05

(6) Вроде бы можно так.

(5) можно в xml файле глянуть что там есть.

(8) да, но можно и в модуле, чтобы выяснить что на самом деле выполняется.

   zippygrill

10 — 29.05.16 — 13:20

   zippygrill

11 — 29.05.16 — 13:28

Параметр «КодВПрограмме» в ДанныеXDTO заполнился из Кода а вот Артикул из Кода нет. Почему так? http://screencast.com/t/5J4CpMkx37

   MaxS

12 — 29.05.16 — 13:35

Проверить в этом же модуле

Процедура ДобавитьПКО_Справочник_Номенклатура_Отправка(ПравилаКонвертации)

есть ли это:

НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();

НоваяСтрока.СвойствоКонфигурации = «Код»;

НоваяСтрока.СвойствоФормата = «Артикул»;

   zippygrill

13 — 29.05.16 — 13:37

НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();

    НоваяСтрока.СвойствоКонфигурации = «Код»;

    НоваяСтрока.СвойствоФормата = «Артикул»;

    
    НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();

    НоваяСтрока.СвойствоКонфигурации = «Код»;

    НоваяСтрока.СвойствоФормата = «КодВПрограмме»;

    
    НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();

    НоваяСтрока.СвойствоКонфигурации = «Наименование»;

    НоваяСтрока.СвойствоФормата = «Наименование»;

    
    НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();

    НоваяСтрока.СвойствоКонфигурации = «ОбъемДАЛ»;

    НоваяСтрока.СвойствоФормата = «ОбъемДАЛ»;

   zippygrill

14 — 29.05.16 — 13:39

это в моей обработки

   zippygrill

15 — 29.05.16 — 13:40

вот в Message из УТ в БП

<Справочник.Номенклатура>

            <КлючевыеСвойства>

                <Ссылка>9b36026c-0361-11e6-bf63-208984983077</Ссылка>

                <НаименованиеПолное>пиво Шнайдер Вайс б/а ТАР3, светлое, 20/0,5л бут</НаименованиеПолное>

                <КодВПрограмме>3030502388     </КодВПрограмме>

                <Артикул>3030502388     </Артикул>

            </КлючевыеСвойства>

            <Наименование>Шнайдер Вайс б/а ТАР3, светлое, 20/0,5л бут</Наименование>

            <ТипНоменклатуры>Товар</ТипНоменклатуры>

   zippygrill

16 — 29.05.16 — 13:41

то есть в файле записывается

   zippygrill

17 — 29.05.16 — 13:42

загрузил в приемника и Артикул появился наконец то

   zippygrill

18 — 29.05.16 — 13:43

*приемник.

   zippygrill

19 — 29.05.16 — 13:45

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

   zippygrill

20 — 29.05.16 — 13:50

А подскажи пожалуйста еще такой момент: если мне нужно подставить в приемнике контрагента которого нет в источнике, мне менять уже в конвертации БП в какой нить событии загрузки или же в конвертации УТ?

   MaxS

21 — 29.05.16 — 14:01

(20) Можно и в УТ. В типовых правилах можно глянуть пример Справочник_ДоговорыКонтрагентов_ИзСтруктуры

   zippygrill

22 — 29.05.16 — 14:44

В конвертации УТ, в Получение документа -> ПередЗаписьюПолученныХДанных внес свой код. После выполнения загрузки документ не заполняется как мне надо. Может всетаки надо в конвертации БП Получение поменять? и установить путь к менеджеру в БП?

   MaxS

23 — 29.05.16 — 15:56

(22) нужно в УТ Процедура ДобавитьПКО_ мой док _Отправка(ПравилаКонвертации) свой код вносить, если в БП контрагента подставить.

В в свойствах ПКО включить флаг «Используется алгоритм конвертации».

Или в БП в _ПередЗаписьюПолученныхДанных

   zippygrill

24 — 29.05.16 — 16:11

Спасибо. подозревал что так надо..

   zippygrill

25 — 29.05.16 — 16:19

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

    Если ПолученныеДанные.ПринятоОт = «Розничного покупателя» Тогда

        ЧастноеЛицо = Справочники.Контрагенты.НайтиПоНаименованию(«Частное лицо»);

        ДанныеИБ.Контрагент = ЧастноеЛицо;

        Для Каждого Строка Из ДанныеИБ.РасшифровкаПлатежа цикл

            Строка.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(«Розница»,,,ЧастноеЛицо);    

        КонецЦикла;

        
    КонецЕсли;

   zippygrill

26 — 29.05.16 — 19:21

Наткнулся еще на ошибку странную, поиском по форуму показал вот эту единственную тему Значение не является значением объектного типа (ВалютаВзаиморасчетов)

Ошибка аналогичная, как решил ТС не понятно.

Договор в Поступление на расчетный счет не переносится,  ТЧ Расшифровка платежа стоит Объект не найден в поле Договор, и документ вообще не открывается.

Значение не является значением объектного типа (ВалютаВзаиморасчетов)

            СтрокаПлатеж.ДоговорКонтрагентаВалютаВзаиморасчетов     = СвойстваДоговоров[

Хотя договор в РТУ переносится  нормально.

   zippygrill

27 — 29.05.16 — 19:37

апну

   MaxS

28 — 29.05.16 — 19:49

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

   zippygrill

29 — 29.05.16 — 19:53

Да тут все файловые режим у меня

Загрузка только самого договора не проходит и ЖР не зайти посмотреть по какой причине…вешается.

   zippygrill

30 — 29.05.16 — 19:53

файловые базы

  

zippygrill

31 — 29.05.16 — 20:29

Очень странно…грохнул настройки синхронизации в обе базы. Заново добавил и все нормально перенеслось Поступление на расчетный счет из УТ



Печать (Ctrl+P)

Обмен через универсальный формат

Подсистема «Обмен данными» библиотеки стандартных подсистем содержит 4 варианта (технологии) обмена информацией между различными информационными базами:

  • распределенные информационные базы (РИБ);
  • обмен данными через универсальный формат;
  • обмен данными по правилам обмена (правила обмена создаются при помощи конфигурации «Конвертация данных», редакция 2.1);
  • обмен данными без правил обмена.

В этой статьи рассматривается технология обмена данными через универсальный формат EnterpriseData
. Данная технология доступна в “Библиотеке стандартных подсистем”, начиная с версии 2.3.1.62. выпущенной в начале 2016 году. На текущий момент, последняя редакция БСП 2.3 (для использования с платформой “1С:Предприятие 8.3” не ниже версии 8.3.8.1652 с отключенным режимом совместимости) имеет релиз 2.3.6.17 .

Рис. 1 Последние релизы БСП 2.3

Среди файлов поставки прикладных решений 1С имеется текстовый файл “Версии библиотек”, где написана на базе какой версии БСП разработано приложение, например, на основе прикладного решения УТ 11.3.3.231 легло БСП 2.3.5.65.

Отметим, что для использования с платформой “1С:Предприятие 8.3” не ниже версии 8.3.10.2168
с отключенным режимом совместимости выпущена редакция БСП 2.4.

Описание формата EnterpriseData

Что такое формат EnterpriseData ?

Это формат, позволяющий описать объект информационной базы (контрагента, накладную и т.п.) или сообщить о факте удаления этого объекта. Ожидается, что конфигурация, получившая файл в формате EnterpriseData, отреагирует соответствующим образом – создаст у себя новые объекты и удалит те, которые в файле помечены как удаленные. Он предназначен для обмена информацией между конфигурациями УТ, РТ, УНФ, БП. Также формат может использоваться для обмена информацией с любыми другими информационными системами: он не зависит от особенностей собственного программного обеспечения или структур информационных баз, которые участвуют в обмене и не содержит в себе явных ограничений использования.

Версия формата EnterpriseData

Данные формата хранятся в XDTO – пакетах в ветки общие конфигурации базы данных, как показано на рис. 2

Рис.2 XDTO – пакеты формата данных EnterpriseData

На рис. 2 видно, что существуют несколько XDTO – пакетов. Это разные версии формата. Номер версии формата состоит из X.Y.Z, где X.Y – версия, Z – это Minor версия. Minor версия увеличивается в случае исправления ошибок и прочих изменениях, при которых: сохраняется работоспособность логики конвертации данных, основанной на предыдущей версии формата (сохранение обратной совместимости текущих алгоритмов передачи данных через формат); поддержка новых возможностей формата для логики конвертации носит добровольный характер. Примером таких изменений может быть исправление ошибки, изменения свойств объектов формата, добавление свойств, использование которых при конвертации данных не является обязательным. В остальных случаях при изменении формата увеличивается Major версия: X – в случае глобальной реструктуризации, Y – в остальных случаях.
Формат описывает представление объектов (документов или элементов справочников) в виде XML-файлов. Версия 1.0.1 содержит описание 94-х объектов из различных областей (финансы, производство, закупки и продажи, складские операции). Названия типов, как правило, хорошо понятны и не нуждаются в дополнительных объяснениях: например, «Документ.АктВыполненныхРабот» или «Справочник.Контрагенты». Как можно заметить, описание типов документов начинается с префикса «Документ.», элемента справочника – с префикса «Справочник.». Подробнее описание формата можно посмотреть
Последняя версия 1.3, однако, чаще всего используется версия 1.0. Нет большой разницы между версиями. Формат EnterpriseDataExchange_1_0_1_1

используется при обмене через веб-сервис.
Отметим,
что вместе с пакетом формата данных EnterpriseData используется пакет ExchangeMessage

при создании правилах конвертации. Именно этот пакет содержит тип объект AdditionalInfo,

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

можно адаптировать и настраивать правила обмена без изменения данных формата в XDTO-пакетах.

Рис. 3 Структура XDTO-пакетаExchangeMessage

Как обмениваться данными в формате EnterpriseData?

Обмен данными в формате EnterpriseData с конфигурацией – это обмен файлами. В ответ на полученный от внешнего приложения файл конфигурация обработает его и создаст файл-ответ. Обмен файлами может происходить:

  • через выделенный файловый каталог,
  • через каталог FTP,
  • через веб-сервис, развернутый на стороне информационной базы. Файл с данными передается как параметр веб-методов.

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

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

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

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

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

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

Более подробно об обмен данными с прикладными решениями на платформе «1С:Предприятие» в формате EnterpriseData можно посмотреть

Общий модуль “менеджера обмена через универсальный формат”.

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

Рис. 4 Структура модуля менеджера обмена через универсальный формат

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

Модуль состоит из нескольких крупных разделов, каждый из которых содержит свою группу процедур и функций.

  1. Комментарий. Первая строка модуля содержит комментарий с наименованием конвертации. Эта строка необходима для идентификации модуля при использовании команды в программе «Конвертация данных», редакция 3.0., например. // Конвертация УП2.2.3 от 01.06.2017 19:51:50

  2. Процедуры конвертации
    . Содержит предопределенные процедуры, которые выполняются на разных этапах синхронизации данных: перед конвертацией, после конвертации, перед отложенным заполнением.
  3. Правила обработки данных (ПОД)
    . Содержит процедуры и функции, которые описывают правила обработки данных.
  4. Правила конвертации объектов (ПКО)
    . Содержит процедуры и функции, которые описывают правила конвертации объектов, а также правила конвертации свойств данных объектов.
  5. Правила конвертации предопределенных данных (ПКПД).
    Содержит процедуру, заполняющую правила конвертации предопределенных данных.
  6. Алгоритмы
    . Содержит произвольные алгоритмы, которые вызываются из других правил (ПОД или ПКО).
  7. Параметры.
    Содержит логику заполнения параметров конвертации.
  8. Общего назначения
    . Содержит процедуры и функции, которые широко используются в правилах и алгоритмах.

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

КомпонентыОбмена. Тип – Структура
. Содержит параметры и правила обмена, инициализированные в рамках выполнения сеанса обмена.

НаправлениеОбмена. Тип – Строка
. Либо «Отправка», либо «Получение».

ДанныеИБ. Тип – СправочникОбъект
либо ДокументОбъект
.

Процедуры, связанные с событиями конвертации

Предусмотрены три предопределенные процедуры, которые вызываются в процессе конвертации:

  • ПередКонвертацией
    . Вызывается перед выполнением синхронизации данных. Обычно в этой процедуре размещается логика инициализации различных параметров конвертации, заполнения значений по умолчанию и т. д. Параметры:КомпонентыОбмена
    .
  • ПослеКонвертации
    . Вызывается после выполнения синхронизации данных, но до выполнения отложенного заполнения. Параметры:КомпонентыОбмена
    .
  • ПередОтложеннымЗаполнением
    . Вызывается перед выполнением отложенного заполнения. Здесь может быть расположена логика сортировки или корректировки таблицы объектов, подлежащих отложенному заполнению. Параметры:КомпонентыОбмена
    .

Процедуры ПОД

ЗаполнитьПравилаОбработкиДанных. Экспортная процедура, в которой располагается логика заполнения правил обработки данных. Содержит вызовы других процедур, которые добавляют в таблицу правил правило обработки конкретного объекта (см. ниже процедуры ДобавитьПОД
). Параметры: НаправлениеОбмена
, ПравилаОбработкиДанных

ДобавитьПОД_<ИмяПОД>. Набор процедур, которые наполняют таблицу ПОД правилами для конкретных объектов. Количество таких процедур соответствует количеству ПОД, предусмотренных для данной конвертации в программе «Конвертация данных», редакция 3.0. Параметры: ПравилаОбработкиДанных
(таблица значений, инициализированная в рамках выполнения сеанса обмена).

ПОД_<ИмяПОД>_ПриОбработке. Процедура содержит текст обработчика ПриОбработке
для конкретного ПОД. Обработчик предназначен для реализации логики конвертации на уровне объектов. Например, назначить конкретному объекту определенное ПКО в зависимости от содержимого объекта. Параметры:

  • ДанныеИБ
    либо ДанныеXDTO
    (в зависимости от направления обмена):
  • при отправке – объект (СправочникОбъект
    ,ДокументОбъект
    );
  • при получении – структуру с описанием объекта XDTO.
  • ИспользованиеПКО
    . Тип –Структура
    . Ключ содержит строку с именем ПКО, а значение типа Булево
    (Истина
    – ПКО используется, Ложь
    – ПКО не используется).
  • КомпонентыОбмена
    .

ПОД_<ИмяПОД>_ВыборкаДанных. Функция содержит текст обработчика ПриВыгрузке
. Обработчик предназначен для реализации произвольного алгоритма выборки объектов, подлежащих выгрузке. Возвращаемое значение: массив объектов, подлежащих выгрузке. В массиве могут содержаться как ссылки на объекты информационной базы, так и структура с данными для выгрузки. Параметры: КомпонентыОбмена
.

Процедуры ПКО

ЗаполнитьПравилаКонвертацииОбъектов. Экспортная процедура, в которой располагается логика заполнения правил конвертации объектов. Содержит вызовы других процедур, которые добавляют в таблицу правил правило конвертации конкретного объекта (см. ниже процедуры ДобавитьПКО
). Параметры: НаправлениеОбмена
, ПравилаКонвертации
(таблица значений, инициализированная в рамках выполнения сеанса обмена).

ДобавитьПКО_<ИмяПКО>. Набор процедур, которые наполняют таблицу ПКО правилами для конкретных объектов. Количество таких процедур соответствует количеству ПКО, предусмотренных для данной конвертации в программе «Конвертация данных», редакция 3.0. Параметры: ПравилаКонвертации
(таблица значений, инициализированная в рамках выполнения сеанса обмена).

ПКО_<ИмяПКО>_ПриОтправкеДанных. Процедура содержит текст обработчика ПриОтправке
для конкретного ПКО. Обработчик используется при выгрузке данных. Предназначен для реализации логики конвертации данных, содержащихся в объекте информационной базы, в описание объекта XDTO. Параметры:

  • ДанныеИБ
    . Тип –СправочникОбъект
    , ДокументОбъект
    . Обрабатываемый объект информационной базы.
  • ДанныеXDTO
    . Тип –Структура
    . Предназначен для доступа к данным объекта XDTO.
  • КомпонентыОбмена
    .
  • СтекВыгрузки
    . Тип –Массив
    . Содержит ссылки на выгружаемые объекты с учетом вложенности.

ПКО_<ИмяПКО>_ПриКонвертацииДанныхXDTO. Процедура содержит текст обработчика ПриКонвертацииДанныхXDTO
для конкретного ПКО. Обработчик используется при загрузке данных. Предназначен для реализации произвольной логики конвертации данных XDTO. Параметры:

  • ДанныеXDTO
    . Тип –Структура
    . Свойства объекта XDTO, прошедшие предварительную обработку для упрощения доступа к ним.
  • ПолученныеДанные
    . Тип –СправочникОбъект
    , ДокументОбъект
    . Объект информационной базы, сформированный путем конвертации данных XDTO. Не записан в информационную базу.
  • КомпонентыОбмена
    .

ПКО_<ИмяПКО>_ПередЗаписьюПолученныхДанных. Процедура содержит текст обработчика ПередЗаписьюПолученныхДанных
для конкретного ПКО. Обработчик используется при загрузке данных. Предназначена для реализации дополнительной логики, которую необходимо выполнить перед записью объекта в информационную базу. Например, нужно ли загрузить изменения в существующие данные ИБ либо следует загрузить их как новые данные. Параметры:

  • ПолученныеДанные
    . Тип –СправочникОбъект
    , ДокументОбъект
    . Элемент данных, сформированный путем конвертации данных XDTO.

Записывается в случае, если эти данные являются для информационной базы новыми (параметр ДанныеИБ
содержит значение Неопределено
).

В противном случае ПолученныеДанные
замещают собой ДанныеИБ
(все свойства из ПолученныеДанные
переносятся в ДанныеИБ
).

Если стандартное замещение данных ИБ полученными данными не требуется, следует прописать свою логику переноса, после чего установить параметру ПолученныеДанные
значение Неопределено
:

  • ДанныеИБ
    . Тип –СправочникОбъект
    , ДокументОбъект
    . Элемент данных информационной базы, соответствующий полученным данным. Если соответствующие данные не найдены, содержит Неопределено
    .
  • КонвертацияСвойств
    . Тип –Таблица значений
    . Содержит правила конвертации свойств текущего объекта, инициализированные в рамках выполнения сеанса обмена.
  • КомпонентыОбмена
    .

Процедуры ПКПД

ЗаполнитьПравилаКонвертацииПредопределенныхДанных
. Экспортная процедура, в которой располагается логика заполнения правил конвертации предопределенных данных. Параметры: НаправлениеОбмена
, ПравилаКонвертации
(таблица значений, инициализированная в рамках выполнения сеанса обмена).

Алгоритмы

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

Параметры

ЗаполнитьПараметрыКонвертации. Экспортная процедура, в которой происходит заполнение структуры с параметрами конвертации. Параметры: ПараметрыКонвертации
(тип – Структура
).

Процедуры и функции общего назначения

ВыполнитьПроцедуруМодуляМенеджера. Параметры: ИмяПроцедуры
(строка), Параметры
(структура). Экспортная процедура, которая предназначена для вызова неэкспортной процедуры модуля, имя и параметры которой получены на вход. Позволяет выполнить вызов процедуры или функции по строке без использования метода Выполнить
.

ВыполнитьФункциюМодуляМенеджера. Параметры: ИмяПроцедуры
(строка), Параметры
(структура). Функция, назначение аналогично ВыполнитьПроцедуруМодуляМенеджера
. Отличие в том, что она вызывает функцию и возвращает ее значение.

Достаточно часто в работе крупных предприятий и торговых сетей возникает необходимость в обмене данными между базами. Каждый программист и администратор по-разному решает этот вопрос. Кто-то пишет выгрузки-загрузки через промежуточные файлы таблиц, кто-то использует режим COM соединения для подключения к базе источнику. Однако, в последнее время всё большую популярность набирает собственный 1С-овский механизм под названием «Универсальный обмен данными в формате XML».

Внешний вид обработки

В Полном интерфейсе открыть обработку можно по адресу Сервис->Прочие обмены данными-> Универсальный обмен данными в формате XML.

Форма обработки (Рис.1) содержит четыре закладки:

  • Дополнительные настройки;
  • Удаление данных.
  • Интерфейс каждой из закладок сильно загружен элементами, а потому требует отдельного рассмотрения.

    Выгрузка данных

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

    На следующей строке формы находятся два переключателя:

    1. Выгрузка в файл обмена (Рис.2);
    2. Подключение и выгрузка данных в ИБ (рис.3).

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

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

    Табличная часть расположенная ниже позволяет настроить отборы и остальные параметры выгрузки.

    Для отладки алгоритмов и исправления ошибок можно воспользоваться встроенным в обработку обмена механизмом. Его активация производится установкой соответствующего флажка в нижней части формы. Нажатие на кнопку «Настройка отладки…» вызывает окно (Рис. 4).

    Рис.4

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

    Нажатие на кнопку «Готово» проверяет правильность и полноту заполненных данных.

    В отличие от «Выгрузки», на данной закладке (Рис.5) нет табличной части, зато гораздо больше флажков, позволяющих регулировать параметры записи новых и измененных объектов.

    Рис.5

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

    Соответствующие флажки позволяют настроить:

    • Транзакцию при записи объектов (это иногда ускоряет процесс);
    • Загрузку данных в режиме обмена (в этом случае все платформенные проверки, за исключением проверки при проведении документов, будут игнорироваться при записи);
    • Перезапись измененных элементов;
    • Установку пометки удаления для загружаемых элементов;
    • Режим записи новых данных в регистр (либо по одной, либо набором);
    • Обрезку незначащих символов (пробелов и табуляций) для строковых значений.

    Дополнительные настройки

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

    1. Включает режим отладки;
    2. Позволяет использовать транзакцию в процессе выгрузки;
    3. Оптимизирует обмен между базами 8-ой версии 1С;
    4. Выгружать только те объекты, которые разрешены к использованию текущему пользователю;
    5. Включить протоколирование процесса обмена между базами.

    Эти и некоторые другие функции включаются выставлением соответствующих флажков на форме (рис.6).

    Рис.6

    Удаление данных

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

    Коротко о настройке правил обмена

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

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

    1. epf – необходим для выгрузки структуры метаданных для баз 1С 8;
    2. epf – если конфигурация 1С 8 самописная или не стандартная, в ней может не быть обработки «Универсальный обмен данными», этот файл и есть эта обработка;
    3. ert –файл содержит код для выгрузки структуры метаданных конфигураций 1С версий 7.7;
    4. ert – файл обработки выгрузки-загрузки данных для семерки.

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

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

    • Видео – 21 учебный час
    • Методические материалы в PDF — 117 страниц А4
    • 16 практических заданий с решениями преподавателя

    Формат курса, поддержка

    Материалы доступны сразу после оплаты заказа – Вы скачиваете их с сайта и изучаете в любое удобное время.

    Поддержка производится через Мастер-группу на сайте .

    Полноценный доступ в Мастер-группу должен быть активирован не позднее 100 дней после покупки.

    Актуальность курса

    Материалы курса актуальны для версии БСП 2.3.2.73.

    Если Вы планируете использовать более старшие версии БСП, то учтите, что изменились механизмы работы подсистемы БСП “Обмен данными”, также изменились интерфейсы.

    Новый курс под последние версии БСП находится в процессе разработки и будет выпущен через несколько месяцев. Но для версий БСП 2.3.2.73 и младше будет актуален текущий курс.

    Стоимость курса

    9 700
    рублей


    Гарантия

    Мы ведем обучение с 2008 года, уверены в качестве наших курсов и даем на этот курс нашу стандартную 60-дневную гарантию
    .

    Это значит, что если Вы начали заниматься по нашему курсу, но вдруг передумали (или, скажем, не имеете возможности), то у Вас есть 60-дневный срок для принятия решения – и если Вы производите возврат, мы возвращаем 100% оплаты.


    Рассрочка платежа

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

    Это возможно при оплате от физических лиц на сумму от 3 000 руб. до 150 000 руб.

    Все, что Вам нужно сделать – это выбрать способ оплаты “Оплата через Яндекс.Касса”. Далее на сайте платежной системы выбираете “Заплатить по частям”, указываете срок и размер выплат, заполняете небольшую анкету – и через пару минут получаете решение.


    Варианты оплаты

    Мы принимаем все основные формы платежей.

    От физических лиц
    – оплаты с карт, оплаты электронными деньгами (WebMoney, ЯндексДеньги), оплаты через интернет-банкинг, оплаты через салоны связи и так далее. Возможна также оплата заказа по частям (в рассрочку), в том числе без дополнительных процентов.

    Начните оформлять заказ – и на втором шаге Вы сможете выбрать предпочтительный способ оплаты.

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


    Обучение нескольких сотрудников

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

    Если компании требуется обучить нескольких сотрудников, мы обычно предлагаем “дополнительные комплекты”, которые стоят на 40% дешевле.

    Для оформления заказа на “дополнительный комплект” выберите в форме 2 и более комплектов курса
    , начиная с второго комплекта стоимость курса будет на 40% дешевле
    .

    Есть три условия использования дополнительных комплектов:

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

    2018-11-15T19:32:35+00:00

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

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

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

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

    С уважением,
    (преподаватель и разработчик ).

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

    Цель данной статьи — ответить на первые вопросы по КД3 и на простом примере показать как доработать типовые правила. Информация полезна начинающим и тем, кто уже приступил к освоению и появились новые вопросы.

    Принятые сокращения в этой публикации

    КД2 — конфигурация Конвертация данных, редакция 2.0.
    КД3 — конфигурация Конвертация данных, редакция 3.0, конфигурация 3.0.5.3.
    ED — универсальный формат обмена EnterpriseData.

    Ответы на вопросы после поверхностного знакомства с КД3. Если Вы знаете зачем нужна КД3 можно не читать этот абзац 😉 

    Принятые сокращения далее

    БСП — Библиотека стандартных подсистем.
    ПОД — правило обработки данных.
    ПКО — правило конвертации объекта.
    ПКПД — правило конвертации предопределенных данных.
    ПКС — правило конвертации свойства.

    Рассмотрим пример — необходимо изменить типовые правила обмена БП 3.0 и УТ 11.3

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

    Как изменить правила ED?
    1. Доработать модуль с правилами обмена прямо в конфигурации. Этот вариант пока не рассматриваем, т.к. для понимания что и где нужно менять, необходимо хотя бы один раз сделать это в КД3. В этом случае будет проще в будущем оперативно решать проблемы, отлаживать в модуле  и переносить в  КД3 при необходимости.
    2. Воспользоваться КД3.
      Как это делается в КД2? Выгружаем метаданные обеих конфигураций и загружаем в КД2.
      Шаг 1. Для  КД3 делаем аналогично – в каждой конфигурации в режиме предприятия обработкой mplts1cConversion3_0_5_3MD83Exp.epf выгружаем метаданные конфигураций,
      например, в папку «D:Правила БП3БП 3.0.54.15», имя файла «МД.xml». 

     Рекомендуемые доработки «MD83Exp.epf«

    Шаг 3. Загружаем ранее созданный файл «МД.xml»  в КД3,  раздел «Конфигурации» — «Загрузка структуры конфигурации»  флаг «В новую версию конфигурации».  
    Загрузка МД

    Т.к. в КД3 для обмена используется «промежуточная конфигурация» (ED), загружаем и её «метаданные», которые представляют собой XML  схему, файл с расширением «xsd». Шаг 2.  Взять её можно из конфигурации УТ 11 или БП 3.0. Они одинаковы. Открываем конфигурацию, в строке поиска вводим «enter», видим в дереве Общие — XDTO-пакеты примерно такие пакеты: EnterpriseData_1_3_8, EnterpriseData_1_4_4 и подобные..  Это версии формата 1.3 и 1.4 соответственно и 1.2, 1.1, 1.0 если есть.  Правая кнопка мыши на пакете, в контекстном меню выбираем «Экспорт XML-схемы».
    Экспорт XML-схемы

    Шаг 4. В КД3 раздел Формат данных – «Загрузка структуры формата», выбираем ранее выгруженные файлы с расширением «xsd». Нужно выбирать один файл! Множественный выбор совместно с ExchangeMessage не нужен! Это предлагалось в старых инструкциях КД3 предыдущих версий. В последних КД3 этого не требуется.
    Загрузка структуры формата

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

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

    Выгрузка типовых правил из конфигурации для загрузки в КД3

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

    Открываем конфигурацию БП 3.0 или УТ 11.3 в режиме конфигуратора, в строке поиска можно ввести  «мен уни», открываем общий модуль  МенеджерОбменаЧерезУниверсальныйФормат. Если это БП 3.0, то открываем МенеджерОбменаЧерезУниверсальныйФормат13. В открытом модуле переходим в меню Файл – Сохранить копию, сохраняем файл с произвольным именем, например,  «D:Правила БП3БП 3.0.54.15Общий модуль МенеджерОбменаЧерезУниверсальныйФормат_ Модуль».
    Открываем конфигурацию БП 3.0 или УТ 11.3 в режиме предприятия, открываем обработку   mplts1cConversion3_0_5_3Выгрузка правил синхронизации.epf

     Рекомендуемые доработки «Выгрузка правил синхронизации.epf«

    • Выбираем «Номер версии формата», например, «1.3»,  
    • «Каталог обмена» — создадим папку, например, «D:Правила БП3БП 3.0.54.151.3»
    • Нажимаем кнопку «Выгрузить».

    Повторяем эти действия для других версий формата и сохраняем в соответствующие папки «1.4», «1.5» и т.п.. Для БП 3.0 достаточно выгрузить все форматы от 1.3 и выше. Для других конфигураций от 1.2 и выше.

    Правила выгружены, теперь нужно загрузить их в КД3. В КД2 правила загружаются одновременно с созданием конвертации. В КД3 нужно создать конвертацию и загрузить в неё правила.
    В КД3 Раздел Конвертации – Конвертации – Создать.  Заполняем поля новой конвертации. Выбираем конфигурацию. Для удобства можно изменить наименование  конфигурации, перейдя в режим редактирования элемента. Например, вместо  БухгалтерияПредприятия указать «БП 3.0.54.15». Реквизит Имя не нужно менять! Наименование конвертации можно указать таким же, например, «БП 3.0.54.15». В табличную часть выбираем поддерживаемые версии формата.  Версии формата те, которые мы выгрузили из базы выше. Сохраняем конвертацию.

    Переходим в раздел Конвертация – Загрузка правил синхронизации из файлов.
    Пример заполнения полей обработки:

    • Место загрузки : «В существующую конвертацию»

    • Каталог обмена:  «D:Правила БП3БП 3.0.54.151.3»

    • Файл с модулем обмена: «D:Правила БП3БП 3.0.54.15Общий модуль МенеджерОбменаЧерезУниверсальныйФормат13_ Модуль.txt»
    • Конвертация:  «БП 3.0.54.15»

     Рекомендуемые доработки КД3 для исправления ошибок

    Нажимаем кнопку «Загрузить». На сообщение «Обработчики предназначены для другой конвертации: БП 3.0.44 (формат 1.4). Продолжить загрузку?»  Нажимаем «Да».
    Не закрывая форму выбираем другой  «Каталог обмена» и нажимаем кнопку «Загрузить». Повторяем несколько раз загрузку правил для каждого формата в текущую конвертацию.
    После успешной загрузки переходим в раздел «Конвертации» – «Настройка правил конвертации», открываем нашу конвертацию из формы списка.
    Если видим заполненные ПКО, ПОД и т.п., значит загрузка в КД3 удалась. 

    Проверка корректности загрузки правил

    Это не обязательная операция! Если Вы будете использовать одну версию формата в правилах, добиваться идентичности текста модуля не требуется.

    • Открываем конфигуратор БП, создаём новую внешнюю обработку,  например, Имя «СинхронизацияEDБП», синоним «Синхронизация ED БП 3.0». 
    • В КД3 в форме «Настройка правил обмена» нажимаем кнопку  «Сохранить модуль менеджера обмена» и вставляем этот код из буфера обмена в нашу новую обработку.
    • В конфигураторе БП проверяем модуль на синтаксические ошибки. Сохраняем обработку.
    • создаём в БП ещё одну пустую обработку,  например, Имя «СинхронизацияEDБПтиповая», синоним «Синхронизация ED БП 3.0 типовая». Копируем текст общего модуля БП МенеджерОбменаЧерезУниверсальныйФормат13 в модуль обработки и сохраняем её.

    Сравниваем обе обработки. Меню Файл — Сравнить файлы.

    Сравнить файлы

    Сравниваем модули.

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

    Аналогичным способом создаём в КД3 конвертацию для УТ 11.3.

     Рекомендуемые исправления в конвертации после загрузки типовых правил


    Рассмотрим пример доработки

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

    Необходимо перенести реквизит «ВидНоменклатуры» справочника «Номенклатура», тип реквизита  «Справочник.ВидыНоменклатуры«. Этот вид справочника не переносится типовыми правилами КД3 и не поддерживается форматом ED версии ниже 1.6.

    Есть несколько вариантов решения подобной задачи

    • Доработка XDTO пакета, добавление в формат объекта «Справочник.ВидыНоменклатуры». В результате теряется основное преимущество универсального формата – он перестаёт быть универсальным. Доработка XDTO пакета  потребуется во всех базах, участвующих в обмене.
    • Использовать свойство формата «ДополнительныеРеквизиты«, которое есть во многих объектах. Этот вариант рассматривать в данной статье не будем ввиду некоторой сложности. Примем к сведению что есть такой способ.
    • Реквизит AdditionalInfo.  Он присутствует в шапке всех объектов формата. Тип anyType. Предназначен для подобных случаев. Воспользуемся им как самым простым способом.

    Перед тем как приступить к доработке типовых правил, создадим в группе правил две группы «Добавлено», «Изменено». Это делается в «Конвертации — Группы правил«.
    Новые ПОД, ПКО, Алгоритмы и т.п. будем создавать в группе «Добавлено», типовые объекты, в которые вносим изменения, переносим в группу «Изменено». Это облегчит последующую поддержку изменённых правил.

    Итак, приступим.

    Изменения правил в УТ 11.3

    В КД3 в форме «УТ 11.3.4.12 Настройка правил обмена» на вкладке Алгоритмы создаём новый алгоритм

    • Имя алгоритма «AdditionalInfoВставить»
    • Группа: «Добавлено»

    Параметры: «ДанныеXDTO, Имя, ДопЗначение»

    Сохраняем алгоритм и переходим на вкладку «Правила конвертации объектов»

    По кнопке «Найти» ищем «Номенклатура», открываем ПКО «Справочник_Номенклатура_Отправка».  Переходим на вкладку «При отправке». Там видим поле «Имя обработчика:» «ПКО_Справочник_Номенклатура_Отправка_ПриОтправкеДанных».  Можно прямо туда внести изменения.
    Более сложный код, требующий отладки можно писать в конфигурации. Ищем в модуле обмена в УТ 11.3 процедуру с именем «ПКО_Справочник_Номенклатура_Отправка_ПриОтправкеДанных» и дорабатываем там.
    Для переноса изменений из УТ 11.3 в КД3 копируем всю процедуру в буфер обмена, в КД3 в форме «Настройка правил обмена» нажимаем кнопку «Загрузка обработчиков».

     Для нашего примера код такой

    После переноса изменений в КД3 нажимаем кнопку «Сохранить модуль менеджера обмена» и переносим код из буфера в модуль УТ 11.3.

    Изменения правил в БП 3.0

    Вносим изменения в ПКО «Справочник_Номенклатура_Получение«, на вкладке «При конвертации данных XDTO«, имя процедуры «ПКО_Справочник_Номенклатура_Получение_ПриКонвертацииДанныхXDTO«.

     Код, добавляемый в модуль «ПКО_Справочник_Номенклатура_Получение_ПриКонвертацииДанныхXDTO»

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

    Переносим модуль менеджера обмена в модуль конфигурации БП 3 или во внешнюю обработку.

    Как загрузить доработанные правила КД3 в базу?

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

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

    1. Снять конфигурацию с поддержки и внести изменения в общий модуль МенеджерОбменаЧерезУниверсальныйФормат;
    2. На конфигурациях, работающих в режиме совместимости с платформой 8.3.10 и выше можно вносить исправления в общий модуль с помощью расширения.
    3. Подключить расширение, которое полностью подменяет общий модуль с правилами.
    4. Не снимая конфигурацию с поддержки подключить к узлу внешнюю обработку с правилами;

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

    Третий вариант — использование расширения с правилами обмена в универсальном формате в настоящее время самый оптимальный. Недостаток пока один — необходимо снимать флаг «Безопасный режим» при подключении данного расширения. Это ограничивает его использование в облачных сервисах. Ждём решения от 1С о порядке замены правил обмена в универсальном формате в 1С фреш.

    Суть в том, что необходимо найти в конфигурации участок кода, который отвечает за выбор общего модуля в зависимости от версии формата обмена и заменить выбор модуля на свой модуль. Пример для БП 3.0.67:

     Рекомендуемые доработки с использованием расширения для подмены типовых правил на свои

    Рассмотрим 4-й вариант, который не описан в документации, т.к. в БСП нет такой возможности. Данный вариант уже устарел. Внешняя обработка с правилами применялась в первых версиях с универсальным форматом обмена. Сейчас 1С постепенно избавляется от этого функционала.

    В режиме предприятия, в разделе администрирования переходим по ссылке Синхронизация данных — Настройки синхронизации данных, нажимаем кнопку «Настроить…» если настройка одна или «Изменить«, если настроек несколько. Переходим в режим редактирования формы через меню «Ещё — Изменить форму», Разворачиваем «Группа«, там включаем скрытый элемент формы «Служебная информация«, «ОК«.
    На вкладке «Служебная информация» выбираем «Путь к менеджеру обмена«, подставляем туда нашу обработку с правилами.

    Вкладка Служебная информация

     Подключение внешней обработки с правилами к БП 3.0.52 и выше

    Как выполнять отладку правил во внешней обработке

    • В конфигураторе «Сервис -> Параметры -> Запуск 1С:Предприятия -> Параметр запуска«, указать параметр «РежимОтладки«.

    • Ниже приведён код для расширения, для УТ 11.4, КА 2.4, ERP 2.4. Код для БП 3.0 приведён выше. Модуль менеджера плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат.

    Отладку проще всего вести в файловой базе. Точку останова ставим в обработке с правилами. Чтобы найти нужную процедуру, используем КД3. Находим ПКО, ПОД или Алгоритм, смотрим «Имя обработчика» или «Имя алгоритма«, ищем эту процедуру в модуле правил. После правки модуля не забываем скопировать процедуру в буфер и в КД3 нажать кнопку «Загрузка обработчиков«. Будьте внимательны, должна быть открыта эта же конвертация.

    На этом пока всё. Данной информации для программиста 1С уже достаточно чтобы самостоятельно освоить КД3 и поддерживать в рабочем состоянии современный способ синхронизации между базами 1С. Если остались белые пятна, спрашивайте, статья будет дополняться и Вы можете вернуться к ней если что-то забыли.


    Общеизвестные ссылки на документацию по КД3:
    • 1С: Общее описание формата
    • ИТС: Методика работы с конфигурацией «Конвертация данных 3.0»
    • Помощник быстрого освоения — открывается в КД3
    • ИТС: Описания, сроки поддержки и xsd-схемы актуальных версий формата «EnterpriseData»
    • ИТС, БСП: Как настраивать обмен
    • ИТС, БСП 3.0: Спецификация сообщения обмена
    • ИТС, Обмен данными через веб-сервисы в формате EnterpriseData
    Курсы по КД3
    • Курсы-по-1с. «КОНВЕРТАЦИЯ ДАННЫХ 3.0»  Насипов Фарит и Евгений Гилев, ООО «ОдинКурс»  — /1c-v8/dataconv-3/
    • 1С-Учебный центр №3, «Конвертация данных 3.0» — http://www.1c-uc3.ru/konvert30.html
    Расширить сферу применения КД3 Вы можете используя эти публикации:
    • [ED2] Обмен УТ 10.3, КА 1.1, УПП 1.3 с EnterpriseData (универсальный формат обмена), обработка — конфигурации предыдущих версий на платформе 8.2 и ниже превращаются в совместимые с ED.
    Сэкономить время и воспользоваться готовыми правилами для последних версий конфигураций можно здесь
    • [ED3] Обмен ERP 2, УТ 11, КА 2, БП 3 и другими с EnterpriseData (универсальный формат обмена), правила обмена — расширенный функционал, исправления замеченных ошибок.

    Понравилась статья? Поделить с друзьями:

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

  • Как изменить правила на сервере
  • Как изменить правила магазина на ярмарке мастеров
  • Как изменить правила кай
  • Как изменить правила xenforo
  • Как изменить правила iptables

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии