1с кд3 как загрузить правила

Обновлено: 07.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Широко используемый инструмент для решения задач обмена «1С:Конвертация данных 2.0», существенно отличается от инструмента «1С:Конвертация данных 3.0», использующего новый формат EnterpriseData. Отличие касается как внешнего интерфейса инструментов, так и самих принципов работы. Понимание этих принципов постепенно переходит из разряда желательных в область необходимых компетенций программиста 1С.

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

При реализации обменов через «1С:Конвертация данных 3.0» используется предопределенный формат обмена EnterpriseData, разработанный фирмой «1С». Формат основан на XML и представляет структуры данных, которые соответствуют определенным бизнес-сущностям, используемых в конфигурациях «1С», таким как документы, справочники и прочие. Структура формата является универсальной и не зависит от состава метаданных конфигураций, участвующих в обмене. Формат EnterpriseData универсален и может также использоваться для обмена c не 1С-ными приложениями.

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

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

Цель статьи – попытаться дать общее представление о том, каким образом можно решить элементарную задачу доработки типового обмена на «1С:Конвертация данных 3.0», использующую формат EnterpriseData, без детального погружения в механизмы новой конвертации и нового формата.

Опишем постановку задачи:

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

1-12

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

2-6

3-4

Понятно, что типовые правила обмена не предусматривают подобную трансляцию данных. Собственно, постановка задачи заключается в следующем: требуется доработать правила обмена таким образом, чтобы показатель номенклатуры «Вес» передавался из КА в БП в соответствующий дополнительный реквизит «Вес».

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

4-6

5-3

В свойстве заголовка «msg:Format» указывается пространство имен версии используемого формата. В нашем случае это формат 1.6, а если более точно, то 1.6.20.

6

Нас интересует справочник «Номенклатура», найдем его в пакете XDTO нашей версии формата EnterpriseData.

Среди перечисленных реквизитов справочника «Номенклатура» отсутствуют необходимые нам реквизиты для передачи показателя «Вес».

7

У нашего объекта «Справочник.Номенклатура» базовый тип определен как «Object», все базовые типы описываются в пакете ExchangeMessage:

8

В этом пакете у базового типа объектов «Object» есть свойство «AdditionalInfo», тип которого определен как «anyType», то есть может принимать любые значения.

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

Далее нам необходимо определить в модуле МенеджерОбменаЧерезУниверсальныйФормат обработчик правила конвертации объекта при отправке «Номенклатура» в исходной конфигурации, в этом обработчике в свойство «AdditionalInfo» поместить передаваемое значение для веса. Затем, в конфигурации-приемнике, в нашем случае это БП КОРП, также в модуле менеджера обмена найти правило при конвертации данных XDTO, используемое при получении.

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

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

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

9

  1. Создать элемент в справочнике Конвертации в КД3.
  2. В режиме конфигуратора сохранить формат 1.6 из пакета XDTO EnterpriseData_1_6_20 во внешний файл с расширением «xsd».

Затем загрузить схему обработкой «Загрузка структуры формата» из раздела «Формат данных» в КД3.

Если все сделано правильно, то в КД3 должно появиться, по крайней мере, две конвертации, одна для КА, вторая для БП.

10

Двойным щелчком по конфигурации открываются настройки правил обмена с заполненными правилами для её объектов.

Откроем настройки комплексной автоматизации, вкладка «Правила конвертации объектов», в списке можно поискать по слову «номенклатура» в колонке «Идентификатор правила». Нас интересует отправка, откроем найденное правило двойным щелчком.

11

В правиле перейдем на вкладку «При отправке».

12

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

Если предполагается изменение конфигурации, то код можно дописать прямо здесь в обработчике, затем выгрузить новый вариант модуля МенеджерОбменаЧерезУниверсальныйФормат и обновить его в конфигураторе. Перед обновлением для безопасности лучше сравнить старую версию и новую версию.

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

Код для добавления в расширение будет следующим:

Процедура ВесНоменклатуры_Выгрузка(ДанныеИБ, ДанныеXDTO, КомпонентыОбмена, СтекВыгрузки)

Если ЗначениеЗаполнено(ДанныеИБ.ВесИспользовать) Тогда

Если ДанныеИБ.ВесИспользовать И ЗначениеЗаполнено(ДанныеИБ.ВесЧислитель) Тогда


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


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

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


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


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


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

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

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

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

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


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

1.3. Загрузка правил синхронизации через универсальный формат из файлов

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


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

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

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

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

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

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

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

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


Выполняемые действия

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

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

Шаг 1. Выгрузка структуры информационных баз УП и БП.

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

Для каждой информационной базы (УП и БП) необходимо выполнить следующие действия:

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

Шаг 2. Экспорт xml-схемы формата обмена

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

Необходимо выполнить следующие действия:

  1. Открыть одну из информационных баз (либо УП либо БП) в режиме “Конфигуратор”.
  2. В дереве метаданных найти XDTO пакеты с именами ExchangeMessage иEnterpriseData_1_0_beta.
  3. Установить курсор на пакет XDTO, нажать правую кнопку мыши и в контекстном меню выбрать пункт Экспорт XML-схемы. Указать путь и имя файла для экспорта. Выполнить это действие для каждого из двух пакетов, сохранив XML-схемы в два разных файла.

Шаг 3. Загрузка структуры информационных баз в конфигурацию КД 3.0

Загрузка выполняется в конфигурацию КД 3.0 в режиме “Предприятие”. Перечисленные ниже действия следует выполнить для каждой из конфигураций, для которых настраиваются правила конвертации (УП и БП).

  1. Перейти в раздел Конфигурации, и выбрать команду Загрузка структуры конфигурации.
  2. Указать путь к файлу со структурой информационной базы (см. Этап 1, Шаг 1).
  3. Указать способ загрузки & в новую версию конфигурации.
  4. Нажать кнопку Выполнить загрузку, дождаться окончания загрузки.

Шаг 4. Загрузка структуры формата обмена в конфигурацию КД 3.0

Загрузка выполняется в конфигурацию КД 3.0 в режиме “Предприятие”.

  1. Перейти в раздел Формат данных, и выбрать команду Загрузка структуры формата.
  2. Указать файлы со структурой формата (см. Этап 1, Шаг 2). Необходимо указать сразу оба файла, используя множественный выбор.
  3. Проверить имя основного пакета XDTO – должен совпадать с пространством имен пакета XDTO EnterpriseData_1_0_beta (см. в конфигураторе УП или БП).
  4. Указать способ загрузки & в новую версию формата.
  5. Нажать кнопку Выполнить загрузку, дождаться окончания загрузки.

Этап 2. Создание конвертаций

Для решения описанной задачи необходимо создать две конвертации:

  • УП (для выгрузки данных из УП в формат обмена)
  • БП (для загрузки данных из формата обмена в БП)

Создание конвертаций производится в разделе Конвертации, команда Конвертации. Для новой конвертации необходимо указать наименование, конфигурацию и формат обмена. Например, конвертация для конфигурации УП:

  • Наименование & “УП2.0.7”.
  • Конфигурация & “УправлениеПредприятием”.
  • Поддерживаемые версии формата & одна строка, в которой выбрана единственная позиция справочника Версии формата.

Далее для каждой из двух конвертаций требуется настроить правила:

  • правила обработки данных,
  • правила конвертации объектов,
  • правила конвертации предопределенных данных.

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

Этап 3. Создание правил конвертации объектов

Шаг 1. Правило конвертации для выгрузки контрагентов из УП

  1. Открыть настройку правил обмена для конвертации УП.
  2. Перейти на закладку Правила конвертации объектов.
  3. Создать новое правило конвертации и заполнить данные на закладке Основные сведения:
    1. Идентификатор правила: “Справочник_Контрагенты_Отправка”,
    2. Объект конфигурации: “СправочникСсылка.Контрагенты”,
    3. Объект формата: “Справочник.Контрагенты”,
    4. Область применения: Для отправки.
    1. Воспользоваться сервисом автоматического сопоставления свойств
      1. Нажать кнопку Настройка ПКС
      2. В открывшейся форме нажать Автосопоставление. Сопоставятся свойства “ИНН”, “КПП”, “Наименование”, “НаименованиеПолное”, “ДополнительнаяИнформация”, “ЮридическоеФизическоеЛицо”
      3. Сохранить результат автоматического сопоставления & нажать кнопкуСоздать правила конвертации свойств и закрыть форму настройки правил конвертации свойств

      Шаг 2. Правило конвертации для загрузки контрагентов в БП

      1. Открыть настройку правил обмена для конвертации БП.
      2. Перейти на закладку Правила конвертации объектов.
      3. Создать новое правило конвертации и заполнить данные на закладке Основные сведения:
        1. Идентификатор правила: “Справочник_Контрагенты_Получение”,
        2. Объект конфигурации: “СправочникСсылка.Контрагенты”,
        3. Объект формата: “Справочник.Контрагенты”,
        4. Область применения: Для получения.
        1. Воспользоваться сервисом автоматического сопоставления свойств:
          1. Нажать кнопку Настройка ПКС
          2. В открывшейся форме нажать Автосопоставление. Сопоставятся свойства “ИНН”, “КПП”, “Наименование”, “НаименованиеПолное”, “ДополнительнаяИнформация”, “ЮридическоеФизическоеЛицо”.
          3. Сохранить результат автоматического сопоставления & нажать кнопкуСоздать правила конвертации свойств и закрыть форму настройки правил конвертации свойств.

          Этап 4. Создание правил конвертации предопределенных данных

          Порядок действий одинаков для обоих конвертаций.

          1. Открыть настройку правил обмена для конвертации (УП или БП)
          2. Перейти на закладку Правила конвертации предопределенных данных
          3. Создать новое правило конвертации и заполнить его свойства:
            1. Идентификатор правила: “Перечисление_ЮридическоеФизическоеЛицо”
            2. Объект конфигурации: “ПеречислениеСсылка.ЮридическоеФизическоеЛицо”
            3. Объект формата: “ЮридическоеФизическоеЛицо”
            4. Область применения: для отправки и получения
            5. В табличном поле заполнить соответствия значений перечисления конфигурации и формата: “ФизическоеЛицо” & “ФизическоеЛицо” и “ЮридическоеЛицо” & “ЮридическоеЛицо”
            6. Нажать кнопку Записать и закрыть
            1. Перейти на закладку Правила конвертации объектов
            2. Найти правило конвертации справочника Контрагенты, открыть форму правила
            3. Перейти на закладку Правила конвертации свойств и найти правило для свойства “ЮридическоеФизическоеЛицо”
            4. Открыть форму правила конвертации свойства и указать в нем правило конвертации объекта & “Перечисление_ЮридическоеФизическоеЛицо”.
            5. Сохранить внесенные изменения

            Этап 5. Создание правил обработки данных

            Порядок действий одинаков для обоих конвертаций.

            1. Открыть настройку правил обмена для конвертации (УП или БП)
            2. Перейти на закладку Правила конвертации объектов
            3. Найти правило конвертации справочника Контрагенты, открыть форму правила
            4. Нажать кнопку Создать на основании & Правило обработки данных
            5. В созданном правиле обработки данных проверить заполнившиеся автоматически свойства:
              1. Идентификатор правила & указать такой же как для правила обработки данных (“Справочник_Контрагенты_Отправка” либо “Справочник_Контрагенты_Получение”)
              2. Область применения & такая же как для правила обработки данных
              3. Объект выборки:
                1. для конвертации УП & “СправочникСсылка.Контрагенты”
                2. для конвертации БП & “Справочник.Контрагенты”

                Этап 6. Получение модулей менеджера обмена данными

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

                Порядок действий одинаков для обеих конвертаций:

                1. Открыть информационную базу УП или БП в режиме “Конфигуратор”. Найти в дереве метаданных общий модуль МенеджерОбменаЧерезУниверсальныйФормат и открыть его для редактирования. Модуль должен быть пустым.
                2. Открыть информационную базу КД 3.0 в режиме “Предприятие”.
                3. Перейти в раздел Конвертации и выбрать команду Выгрузка модуля.
                4. В открывшейся форме указать соответствующую конвертацию и нажать кнопку Выгрузить. Модуль будет скопирован в буфер обмена.
                5. Перейти в конфигуратор информационной базы УП или БП и вставить содержимое буфера обмена в общий модуль МенеджерОбменаЧерезУниверсальныйФормат.
                6. Сохранить конфигурацию.

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

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

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