Найти в Дзене
1с разное

1С: Конвертация Данных 2.1

Всем привет! Не скажу, что активно программирую переносы документов и справочников. Было дело в 2011-2012 годах - активно программировал, с тех пор сохранилась работа https://infostart.ru/1c/tools/103008/. Сейчас решил задачу, пишу статью - делаю зарубку на память. 1. Есть некоторые особенности в разработке правил обмена на базе Конвертации Данных 2.1: например, если имя правила не задано, то будет подобрано и использовано правило обмена согласно типу Источника. Если Владелец характеристики из рисунка выше будет иметь тип СправочникСсылка.Номенклатура, и будет задано единственное правило переноса (конвертации/обмена) справочника Номенклатура, то такие правила будут работать корректно. Как только вы добавите новое правило, например, зададите правило для создания одной конкретной услуги в базе -приемнике (см. рис. ниже) - у вас сразу "посыпется" обмен. Скажем так, при переносе Владельца характеристики будет подставляться именно эта услуга. Чтобы избежать ошибок, нужно для правила перено

Всем привет!

Не скажу, что активно программирую переносы документов и справочников. Было дело в 2011-2012 годах - активно программировал, с тех пор сохранилась работа https://infostart.ru/1c/tools/103008/.

Сейчас решил задачу, пишу статью - делаю зарубку на память.

1. Есть некоторые особенности в разработке правил обмена на базе Конвертации Данных 2.1: например, если имя правила не задано, то будет подобрано и использовано правило обмена согласно типу Источника.

Если Владелец характеристики из рисунка выше будет иметь тип СправочникСсылка.Номенклатура, и будет задано единственное правило переноса (конвертации/обмена) справочника Номенклатура, то такие правила будут работать корректно.

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

-2

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

ВыгрузитьПоПравилу() - функция это или процедура - об этом ниже.
-3

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

2. Рассмотрим другой пример - имеется правило переноса Счет-Фактуры Выданной, имеющей реквизит Документ-основание смешанного типа.

-4

Также известно, что документ "Реализация товаров" в зависимости от вида договора - с комиссионером или на продажу - должен выгружаться в разные документы. Для вида "С комиссионером" - в документ "Передача товаров хранителю (комиссионеру)". Для вида "На продажу" - в документ "Реализация товаров и услуг".

-5

В таком случае правильно будет прописать правило выгрузки реквизита Документ-Основание таким образом - указав в явном виде ИмяПКО.

-6

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

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

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

-8

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

4. На ИТС есть раздел, посвященный Конвертации Данных 2.1 - https://its.1c.ru/db/metod8dev#browse:13:-1:3199:3210:3219

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

5. Отладка правил обмена базируется на универсальной обработке "Универсальный обмен данными в формате XML".

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

-9

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

Если у вас не встроена или встроена старая версия, можете обновить ее самостоятельно.

-10

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

6. В конфигурации Конвертация данных 2.1 имеется Сервисная функция "Сравнение правил обмена" - в окне разработки правил обмена есть меню Сервис. Для отображения сравнений надо сначала поставить галочки в Настройках, затем нажать Обновить.

-11

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

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

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

8. Вам пригодится старая добрая консоль запросов - я использую типовую. Например, для поиска пустых правил ПКО для ПКС, чтобы в явном виде прописать имя правила ПКО для ПКС. В данном примере надо искать пустые ПКО для смешанных типов Источника. Для примитивных типов Источника ПКО задавать не обязательно.

-12

На этом все. Всем добра!

С пользой для клиентов, Рустем

Подписывайтесь, дарите донаты !