Конвертация данных ИТС

  • автор:

1. Вступление.

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

2. Что понадобится: конфигурация 1С: Конвертация данных 2.* и обработки из пакета. Для Примера задач возьмем конфигурации 1С: Управление торговлей 11 и 1С: БП 3.*.

Итак, для разработки правил выгрузки данных в 1С потребуется конфигурация 1С: Конвертация объектов 2, а также обработки, входящие в пакет.

Например, у нас уже развернута база конвертации и запущена.


Разработку правил обмена будем писать между конфигурацией 1С: Управление торговлей 11 и 1С: Бухгалтерия предприятия 3 (правила обмена УТ / БУХ).

3. Нам понадобятся Обработки для выгрузки структуры метаданных и обмена.

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


Собственно, в распакованном каталоге конфигураций для конфигураций на управляемых формах нас интересует обработка MD83Exp.epf. Если выгрузку нужно сделать из конфигураций на обычных формах, тогда используется обработка MD82Exp.epf. Это если, например, нужно получить структуру из таких конфигураций, как 1С: УТ 10, 1С: Управление производственным предприятием 1.3, 1С: Комплексная автоматизация 1.1, 1С: Зуп 2.5 и так далее.
Далее уже для выгрузки-загрузки данных в 1С с помощью наших правил понадобится обработка «Универсальный обмен данными в формате XML» V8Exchan83.epf для конфигураций на управляемых формах таких как 1С: Управление торговлей 11.*, 1С БП 3, 1С: ERP 2.* и подобных. И соответственно V8Exchan83.epf — для конфигураций на обычных формах.

4. Выгрузка структуры метаданных конфигурации 1С: Управление торговлей 11.3 и 1С: Бухгалтерия предприятия 3.0.*

Начнем с выгрузки структуры метаданных из конфигурации 1С: Бухгалтерия предприятия 3.
Откроем обработку MD83Exp.epf


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

5. Загрузка структур метаданных конфигураций в базу конвертации.

Теперь необходимо загрузить конфигурацию в базу конвертаций. К данному пункту можно прийти и из списка конфигураций, и из списка конвертаций. Сделаем просто загрузку из рабочего стола:


В диалоговом окне загружаем структуру БП:

И аналогично — структуру Управления торговлей.

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

6. Создание правил конвертации в 1С на конкретном примере задачи.

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

В этом диалоговом окне ничего выполнять не будем, просто нажмем — «Закрыть».
Создадим правила для выгрузки не один документ в один, а один вид в другой, например, документ РеализацииТоваровУслуг из УТ 11 с необходимыми справочниками в документ ПоступлениеТоваровУслуг в БП 3.
Итак, создаем новое ПКО (правило конвертации объектов в 1С)
Выбираем источник РеализацияТоваровУслуг и приемник ПоступлениеТоваровУслуг и нажимаем ОК.
При этом появится диалоговое окно, где опять отказываемся от автоматического создания ПКС (Правил конвертации свойств). Далее выберем только необходимые.
А вот на предложение создать ПВД (правил выгрузки данных) отвечаем «Да».
Создаются ПВД, которые и будут отражаться в обработке универсального обмена XML для выбора:

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

Теперь начнем сопоставление необходимых свойств (реквизитов) объекта. Для этого жмем «СинхронизацияСвойств» (метка «1» на скрине). Убираем рекурсивное создание правил («2»). Снимаем все отмеченные реквизиты («3»). И выберем самостоятельно, что нам нужно.
Для примера выбираем необходимое:
Обращаю внимание на то, что мы сделаем ПКС контрагента в организацию, а организацию в контрагента, и еще сопоставим некоторые реквизиты, которые не совпадают по имени, например, «Валюта» и «Валюта документа».
Далее жмем ОК и получаем подобное:
Где видим, что еще нет правил конвертации.
Начнем по реквизитам проходить и описывать. Сначала настраиваем поиск документа так, как писал ранее, делаем выгрузку и поиск документа на начало даты, и сделаем подмену нумерации. Первые три символа будем подменять на свой префикс «УТБ». А так как в БП и УТ нумерация по 11 символов, делаем составной номер: наш префикс и 8 символов от источника. Пример на скрине ниже.
Выгрузку документов делаем всегда не проведенные и без движения. Предполагаем, что документы будут в приемнике проводиться после проверки пользователем.
Для этого ПКС установив, как не проведен, 0 или 1, используем как булево.
На примере валюты создаем для ПКС правило конвертации объекта. При этом считаем, что в обеих базах валюты имеются, и они должны синхронизироваться по коду. Поэтому в ПКО валют не будем создавать все ПКС, а только добавим Код для поиска. Т.е. от предложения создать ПКС для объекта – отказываемся.
В ПКО документа для ПКС подставилось созданное Правило конвертации. А само правило по умолчанию предлагается по уникальному идентификатору. Исправляем, делаем поиск по коду и устанавливаем свойство, чтобы не создавать новый объект.
В итоге получаем вариант:

Далее по аналогии создаем для остальных реквизитов ПКО и ПКС. Причем поиск организации по контрагенту и наоборот устанавливаем по ИНН. Примерно так это выглядит с минимальными реквизитами (можно добавлять при необходимости).
Для ПКО Договоры контрагентов делаем поиск по ПКС Контрагент, наименование и владелец.
Посмотрим, как указать в ПКС нужное значение в типе перечисления. Например, реквизит «ВидОперации». Тут можно использовать различные условия и подставлять значения. Например, нам нужно, чтобы «вид операции» выгружался всегда «Товары», в этом случае достаточно в «лоб» написать нужное значение строкой.
Ниже показано, как установить без сложностей и в большинстве случаев ПКС для КратностьВзаиморасчетов, КурсВзаиморасчетов, Счета учета.
Для ПКО Номенклатура оставим поиск по внутреннему уникальному идентификатору. Но обращу внимание на то, как можно переопределить свою группу. Например, мы согласны, что будет выгружаться новая номенклатура из конфигурации 1С: Управление торговлей 11, но нужно, чтобы номенклатура собиралась в определенной группе «НашаГруппа».
Для реализации данной задачи создаем ещё одно ПКО. Назовем его «НоменклатураРодитель», которое укажем в ПКС родителя в правиле конвертации.
Устанавливаем два поиска: по наименованию, где наименование жестко указываем нашей группы, и обязательное свойство признака «ЭтоГруппа» в истина.
Поскольку мы приняли решение, что у нас вся номенклатура падает в нашу группу, то нет необходимости при выгрузке выгружать группы из УТ 11. Для этого в ПКО Номенклатура в обработчике событий «ПередВыгрузкой» поставим фильтр, что не нужно выгружать группы «Отказ = Источник.ЭтоГруппа;».
В ПВД (правила выгрузки данных) РеализацииТоваровУслуг, добавим фильтр, чтобы не выгружались помеченные на удаление документы. Для этого в ПВД в обработчиках событий «ПередВыгрузкой» пропишем фильтр «Отказ = Объект.ПометкаУдаления;».
Сохраним разработанные правила в файл.

7. Подводим итоги: Выгрузка и загрузка данных с помощью разработанных правил обмена данными.

Открываем в 1С:Управление торговлей 11 обработку «Универсальный обмен данными в формате XML» V8Exchan83.epf.
Выгрузка прошла, теперь этой же обработкой делаем загрузку в 1С: Бухгалтерия предприятия 3.

Загрузка прошла. Проверяем, что как загрузилось. Итак, документ загружен, как мы и добивались — у нас Организация загружена в контрагента, а контрагент в организацию. Счета учета все загружены и установлены. Номер документа у нас получился с нашим префиксом и на начало дня. Все реквизиты, которые прописали, заполнены.
Проверяем загрузку номенклатуры. Видим, что всё получилось так, как мы и планировали.

У нас создались и заполнились реквизиты так, как мы это задумывали. В конвертации имеется множество тонкостей и каких-то простых, но нужных вещей, которые помогают точно написать конвертацию. А это позволяет минимизировать ошибки, не испортить существующие данные и избавиться от лишнего мусора. Это один из самых простых примеров. Можно так же делать конвертации одного объекта во многие или же наоборот многие — в один.
Сейчас есть конвертация данных 3, она решает другие задачи. Поэтому конвертация 2, так же нужна. Всем удачи в изучении и освоении.
Конечно, если Вы программист и это — основная ваша работа, Вы можете сами попробовать написать конвертацию. Но если нет, то стоит ценить Ваше время в своей сфере деятельности, а данную задачу попросить выполнить профессионалов.

Сергей ОМЕЛЬЧУК

Правила очистки данных оглавление Правила конвертации объектов

Учебник по 1С Конвертации данных (редакция 2) Подробное знакомство с правилами обмена

Автор учебника: Фирма «1С»

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

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

Закладка «Дополнительно»:

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

Закладка «Параметры»:

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

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

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

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

Недостаточно просто указать параметры, надо чтобы алгоритм выполнения выгрузки «понимал», в каком случаем выгружать элемент, а в каком нет. Для подобных (и многих других) случаев используется механизм обработчиков. Суть его заключается в том, что в ключевых точках выполнения всех базовых алгоритмов выгрузки и загрузки данных обрабатывается код, написанный разработчиком при создании правил обмена. Естественно, что использование такого тонкого инструмента требует осторожности и продуманности. Мы рекомендуем перед написанием собственных обработчиков внимательно ознакомится со справкой к конфигурации «Конвертация данных 2.0», где описаны все доступные в обработчиках переменные и способы их использования, а также перечислены виды обработчиков и особенности их вызова в алгоритмах обмена данными.

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

Что же делает наш обработчик? При написании программного кода мы использовали переменные алгоритмов выгрузки данных. Структура Параметры служит для обращения к параметру ВыгружатьУслуги, который задается в форме обработки обмена данными. Переменная объект предоставляет доступ к выгружаемому объекту. А переменная Отказ позволяет контролировать отказ от выгрузки текущего объекта. Обработчик исполняется непосредственно перед началом выгрузки объекта, что и дает возможность отменить выгрузку объекта.

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

ТОЛЬКО ДЛЯ ОБМЕНА V8 — V8 И ОБРАБОТКИ ВЫГРУЗКИ И ЗАГРУЗКИ НЕ НИЖЕ 2.0.18.1

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

Процедура ПередатьОдинПараметрВПриемник(Имя, ИсходноеЗначениеПараметра, ПравилоКонвертации = «») Экспорт

На закладке Параметры выгрузки появился параметр, изменяя значения которого услуги либо выгружаются, либо не выгружаются.

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

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

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Правила очистки данных оглавление Правила конвертации объектов

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *