Top.Mail.Ru
Заказать консультацию
специалиста 1С
Отправить заявку

ИнфоСофт использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. Вы можете запретить обработку сookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования cookies.
Оставаясь на сайте, вы соглашаетесь с политикой использования cookies.

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

Останин Егор Посмотреть все статьи >> Разработчик 1С партнерской сети "ИнфоСофт".
24.06.2025
3159
Время прочтения - 7 мин.
Заказать консультацию

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

При написании правил обмена на КД2 разработчик использует 3 типа правил:

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

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

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

Для передачи данных между ПВД, ПКО и ПКС очень полезным инструментом являются параметры. В КД2 для передачи параметров существуют 3 переменные:

  1. Параметры – структура, которая используется при выгрузке или при загрузке

  2. ИсходящиеДанные, ВходящиеДанные - используется при выгрузке

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

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

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

1.png

Рис.1

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

2.png

Рис.2

Теперь при выгрузке используя обработку «Универсальный обмен данными в формате XML» на вкладке «Параметры выгрузки» (Рис.3) можно указать конкретную номенклатуру, точнее ее наименование (например, «Витамин С»), и будет выгружен один объект.

3.png

Рис.3

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

4.png

Рис.4

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

5.png

Рис.5

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

6.png

Рис.6

Подпишитесь на дайджест!
Подпишитесь на дайджест, и получайте ежемесячно подборку полезных статей.

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

7.png

Рис.7

8.png

Рис.8 (продолжение кода с рис.7)

Стоит рассмотреть работу следующего параметра «ИсходящиеДанные» или «ВходящиеДанные». По сути это одна и та же переменная, которая меняет наименование при переходе от одного обработчика к другому. Для понимания, в какой последовательности передается переменная и с каким наименованием, нужно обратиться к схеме на Рис.9.

9.jpg

Рис.9

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

Возвращаясь к примеру с номенклатурой нужно немного доработать его. Стоит допустить, что в задаче появилась необходимость, кроме выгрузки номенклатуры, выгрузить ее цену. Для этого в обработчике ПВД «Перед обработкой» нужно сделать левое соединение с регистром сведений «Цены номенклатуры» (Рис.10).

10.png

Рис.10

Чтобы подготовить передачу цены из источника в преемник, необходимо создать ПКС и установить значение из переменной «ВходящиеДанные» (Рис.11)

11.png

Рис.11

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

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

12.png

Рис.12

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


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Рассказать друзьям
Вам может быть интересно: