Что такое конвертация данных 1С (статья написана исключительно для новичков)

Обмен - Обмен через XML

О том, что "Конвертация данных" - мощный инструмент и прочую терминологию, вы прочтёте в любом источнике. Я хочу поделиться кратким пояснением как пользоваться данной конфигурацией. Речь пойдет о версии 2.1.

Итак, у вас имеется две системы с совершенно различной конфигурацией.

Как правило между такими системами настраиваются планы обмена, которые выгружают/загружают данные по правилам обмена. Эти самые правила обмена удобно написать в конфигурации "Конвертация данных". Так же, эта конфигурация пригодится для выгрузки/загрузки данных обработкой "Универсальный обмен данными XML", имеющейся в любой типовой конфигурации. (Если в вашей системе вы не видите данную обработку встроенной, скачайте её и воспользуйтесь как внешней).

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

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

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

Стандартная выборка (стрелка 2) содержит в себе все реквизиты объекта, включая табличные части.

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

С левой стороны имеются обработчики: "Перед обработкой", "Перед выгрузкой", "После выгрузки", "После обработки" (стрелка 4). В каждом из этих обработчиков при вызове "Информации по обработчикам" (стрелка 5) можно получить сведения о выполняемых в нём действиях и его параметрах (в каждом обработчике они немного различаются).

Например, обработчик "Перед обработкой":

В Информации по тексту ниже указан вот такой пример:

Если Объект.ЭтоГруппа() = 0 Тогда
 Отказ = 1;
КонецЕсли;

Можно написать своё условие: например, если реквизит "Флаг" установлен в Истину, тогда такой объект нужно выгрузить по другому ПКО:

Если Объект.Флаг Тогда
  ИмяПКО = "ИмяПравилаКонвертацииТакогоОбъекта";
КонецЕсли;

В случае, если при выгрузке вы пользуетесь произвольным алгоритмом, вам необходимо инициировать параметр ВыборкаДанных (стрелка 6 на втором рисунке).

ПКО

Теперь перейдем к нашему ПКО (стрелка 7), состоящему из правил конвертации свойств (ПКС):

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

ПВД нужны для выгрузки зарегистрированных объектов, участвующих в обмене, или для выгрузки необходимых вам объектов обработкой "Универсальный обмен данными XML".

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

 

Если вы не выгружаете все элементы справочника с помощью ПВД, то в ПКО вы указываете правила поиска объекта:

Признак (Стрелка 10) не задан, следовательно, в случае, если объект не найден, он будет создан по правилам конвертации свойств данного объекта, в данном случае - элемент справочника "Организации".

 

Дополнения:

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

Не забывайте пользоваться информацией по обработчикам (стрелка 12).

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

 

По ссылкам ниже вы можете почерпнуть дополнительную информацию:

//infostart.ru/public/597573/

//infostart.ru/public/413178/

 

Создание с нуля (кратко)

У нас есть конфигурация источник и конфигурация приемник (они могут быть идентичными).

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

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

Далее выгруженную структуру (структуры) загружаем в конвертацию.

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

При появлении картинки ниже, жмите или "Закрыть" или "Создать новое правило обмена данными".

 

 

Загрузка имеющихся правил (кратко)

В случае, если правила есть и их требуется исправить, загружаем правила в КД.

Если структура конфигурации была загружена только правилами, то в ней может не быть многих объектов.

Чтобы объекты добавить, вам нужно выгрузить структуру метаданных (описано в пункте "Создание с нуля" немного выше).

И далее загрузить эту структуру в имеющуюся конфигурацию.

 

 

 

См. также

Комментарии
1. Кирилл Медведев (AdriGoth) 08.08.17 08:44 Сейчас в теме
подчеркнул много интересного) но много где и туман после прочтения статьи) некоторые вещи непонятны) видимо надо ознакомиться с Быстрым освоением КД в самой конфигурации и перечитать вашу статью)
2. Oxana Coffeeholic (perepetulichka) 403 08.08.17 11:09 Сейчас в теме
(1) Кирилл, старалась вспомнить с чем у самой возникали трудности, но работаю с конфигурацией довольно давно и многие вещи уже кажутся очевидными.
Напишите мне в личку все вопросы, я расширю статью :)
3. Роман Уничкин (unichkin) 573 09.08.17 02:01 Сейчас в теме
30. red 80 (red80) 17.10.17 16:24 Сейчас в теме
(3) Самый лаконичный комментарий.
4. Алексей Иванов (IvanovAV) 42 09.08.17 03:30 Сейчас в теме
Конвертация данных - это инструмент создания переноса для ленивых. Умея пользоваться этим инструментом можно быстренько набросать правила и перекинуть из одной базы 1С в другую базу, не обязательно в 1С. Но для реально сложных и постоянных обменов я бы его не рекомендовал. У меня были случаи когда вреда от использования КД было намного больше, чем если бы, долго но качественно, написал свою выгрузку-загрузку через dbf или txt с разделителями.
1) Например обработками из состава КД не контролируется дата запрета редактирования, и можно легко завалить базу в закрытом периоде. Когда данные потащатся по ссылкам.
Найдут эту ошибку через несколько недель, когда будет поздно откатывать из архива. Потом трудозатратное восстановление затертых данных.
2) Отладиться и поймать ошибку в коде, можно, но нужно обладать опытом и сноровкой.
3) Обработки универсального обмена громоздки с плохо читаемым кодом.
4) Файл обмена громоздкий, т.к. содержит текст правил обмена. Структура файла не очень понятна простому смертному. Например Нпп - это номер по порядку и т.д.
5) В случае изменения структуры хотя бы одного реквизита приемника или источника, весь обмен перестает работать, пока заного не перегрузишь конфигурации. Это сильно напрягает, когда конфигурация громоздкая, и постоянно ведется ее доработка или обновления. Например если изменили тип реквизита "строка 100 символов" на "строка неограниченной длины", будет ошибка несоответстия типов, хотя это никак не влияет на обмен.
6) Свой самописный обмен, проще отлаживать, понятная логика и структура файла, надежнее в использовании, файл меньше размером, не нужно гонять правила в файле. Но разрабатывать дольше по времени.

Каждый выбирает свое.
uri1978; okulus; +2 1 Ответить
5. Игорь Фелькер (Brawler) 328 09.08.17 08:03 Сейчас в теме
(4)
1. для этого предусмотрены события вызываемые перед загрузкой объектов в целевую БД, вот там та и нужно проверять закрыт период или нет
2. ну есть сложности, однако если правила не автоматически создаются, то ошибки легко находятся, так как все своими золотыми ручками делалось
3. а где легко?
4. ну так пишите правила, которые не будут тянуть за собой все данные из базы, а только те что действительно нужны. файл на выходе не предназначен для конечного юзера, да как и для программиста, это уже из разряда хакерства туда лезть ну или с точки зрения прогера контроль результата
5. ну к слову сказать, в некоторых ситуациях выгружать конфигурацию свежую не имеет смысла, так как к реквизитам объектов можно обращаться не только, если они явно есть в структуре конфигурации, у вас же под рукой язык программирования с поздним связыванием, к реквизиту можно из кода событий обращаться
6. сталкивался я с вручную написанными обменами, ничего хорошего, люди могут еще более странным образом так на извращаться, что мама не горюй
sys1c; red80; jif; DarkAn; Новиков; MenZurKa; perepetulichka; sergelemon; mythos; +9 Ответить
6. Дмитрий Юрьевич (MenZurKa) 09.08.17 12:16 Сейчас в теме
(4) Не соглашусь, КД - унифицированный механизм создания правил обмена. Фразы типа "Лучше я сам напишу своими методами" - ошибочна в большинстве случаев (ошибки переноса объектов, недостаток данных, применимость в узкой среде "моя конфа-моя конфа" ...).
1) Игнорирование/Контроль даты запрета редактирования можно учесть в правилах
2) Отладка - механизм обычной притирки специалиста к работе с конфой
3) Обработки универсального обмена вообще не должны заботить
4) Громоздкость файла обмена - архивируй, в большинстве случаев рукописные варианты (особенно dbf) тяжелее размерами и сложнее в логике.
5) Ну, тут не учтешь и в рукописном обмене
6) "Свой самописный обмен, проще отлаживать, понятная логика и структура файла" - вообще, простите, дурь. Свой самописный обмен это свои написанные правила обмена, а унификация средст разработки дает возможность другим читать и править легче, так как (о Боже, сколько рукописок я видел) каждый пишет как топор ляжет, то дальнейшее сопровождение другим человеком облегчается.

Я не имею права судить Ваши проф качества, но комментарий больше походит на "Я так привык, а другие делают не правильно!"

Извините.
7. Алексей Иванов (IvanovAV) 42 09.08.17 12:52 Сейчас в теме
(6) Раз 20 писал правила на КД разной сложности, и несколько сотен раз свои механизмы обмена, это личной опыт, использования этого инструмента.
Про контроль даты запрета, понятно, что после того как на грабли наступишь, будешь уже втыкать проверки во все возможные обработчики. ТС написал статью для новичков, моя задача их предупредить о всех подводных камнях.
Ни слова не писал, что я так привык а другие делают не правильно, старался объективно написать все приемущества и недостатки данного инструмента, с которыми столкнутся новички.
Свой обмен - это ни какие не правила, нет там вообще правил, забудьте про термины навязываемые фирмой 1С.
По личному опыту, написал свой обмен и забыл на долгие долгие годы.
А правила обмена, постоянно требуют вмешательства, практически после каждого обновления.
А во времена медленного интернета и дорогово траффика, когда обмен работает по расписанию с интервалом 15 минут, от них больше вреда было чем пользы. Самих данных с гулькин нос, зато правила тащим туда-сюда.
8. John Irwin (Irwin) 60 09.08.17 17:45 Сейчас в теме
(4)
6) Видел пару обменов самописных. Вот там неделю пришлось копаться только для того, чтобы выловить одну небольшую, но неприятную ошибку. А когда нашли, то еще неделю ломали голову, как ее исправить, т.к. структура обработки не позволяла исправить это быстро. В самописном обмене хорошо разбирается только тот, кто его писал. Другой будет копаться только по необходимости (хорошо, если необходимость возникает редко). Если в организацию придет новый человек, то потребуется больше времени на изучение каждой самописки, чем один раз изучить конвертацию.

Конвертация - это универсальный механизм. А за универсальность всегда приходится платить.
AZel84; red80; jif; user761890; ice-net; DarkAn; Новиков; kadild; IvanovAV; +9 Ответить
19. Алексей Новиков (Новиков) 289 11.08.17 10:23 Сейчас в теме
(4)
6) Свой самописный обмен, проще отлаживать, понятная логика и структура файла, надежнее в использовании, файл меньше размером, не нужно гонять правила в файле. Но разрабатывать дольше по времени.


Самый быстрый обмен - это прямая заливка на T-SQL из источника в приемник, без всяких промежуточных файлов и прочего. Но, чтобы напр., написать такой обмен, который бы как и КД тащил все по ссылке, предположим для какого-нибудь типового документа типа РТУ - вы потратите времени столько, сколько на разработку правил для всей конфигурации. Кроме того, в процессе оптимизации, вы придете к еще более сложному варианту когда хранимки хранятся на сервере, вьюшки имеют русские имена и их нужно актуализировать и еще много такой вот магии. Я этого говорю не на бла-бла-бла, а как чел, который ранее такие обмены и писал. Поверите ли на слово, но поддерживать такой обмен в актуальном состоянии и тем более баго-фиксить и трейсить - это задача не на, а в - В несколько раз сложнее чем на любой КД. Поэтому, в последствии, я все всем переписал на КД. Да медленнее, иногда значительно медленнее, но очень просто поддерживаемый и любые вопросы по нему, решаются относительно просто. Аналогичные вопросы на скулевом обмене решаются всегда на стороне скуля и надо обладать хорошими скилами не только в T-SQL как таковом, но и хорошем понимании "внутренней" кухни самой платформы. В итоге, я сейчас, с позиции именно практического опыта, не могу представить - когда я еще буду писать такие велосипедные обмены на скуле.
KSy; unichkin; Irwin; +3 Ответить
31. Латыпов (RinGo) 90 18.10.17 07:49 Сейчас в теме
(4)Согласен на все 100% с небольшой репликой: уверен, что в итоге "Свой самописный обмен, проще отлаживать, понятная логика и структура файла, надежнее в использовании, файл меньше размером, не нужно гонять правила в файле." компенсирует "Но разрабатывать дольше по времени."
9. Александр Васильев (user633533_encantado) 2 09.08.17 18:30 Сейчас в теме
Не актуально. Сейчас надо уже уметь пользоваться конвертацией 3.0.
red80; okulus; +2 1 Ответить
10. Оксана Д (Rain88) 11 09.08.17 19:15 Сейчас в теме
(9) Не соглашусь, достаточно много клиентов сидят на старых версиях конфигураций, для которых обмен через новый формат не подходит. Нужно уметь пользоваться как КД2, так и КД3. Что касается статьи, я бы дополнила ее описанием, что такое ПКО, ПКС, ПКГС и для чего они нужны.
14. Александр Васильев (user633533_encantado) 2 10.08.17 13:43 Сейчас в теме
(10) Я хотел сказать, что конвертацию 2.0 знает почти любой нормальный программист. А вот статьи по 3.0 были бы сейчас в тему.
11. Алексей Папанов (El_Loco) 96 10.08.17 10:50 Сейчас в теме
Коллеги, а объясните, пожалуйста, какую версию КД стоит сейчас изучать - вторую или третью?
Я несколько раз прибегал к помощи КД 2.1, когда что-то несложное надо было перебросить.
Хочу пройти какой-нибудь курс. А они там разделены по версиям КД.

И вообще вкратце - чем они отличаются КД 2.1 и 3?
12. John Irwin (Irwin) 60 10.08.17 13:03 Сейчас в теме
(11)
Конвертация данных, редакция 3.0 (далее КД3.0) - это инструмент для разработки обменов, предполагающих наличие посредника передачи данных между конфигурациями в виде универсального формата данных EnterpriseData. В этом качестве КД3.0 является одним из компонентов технологии обмена данными через формат EnterpriseData.

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

https://its.1c.ru/db/metod8dev#content:5846:hdoc

Все типовые стараются на 3.0 переписывать. Но 2.0 будет еще долго актуальна.
okulus; El_Loco; +2 Ответить
13. Эрнест Алиев (Ali1976) 1 10.08.17 13:33 Сейчас в теме
(12) Добавлю обойтись только 3.0 не получится, правила регистрации данных в 2.0 нужно делать.
26. gorakh I (gorakh) 17 17.10.17 09:41 Сейчас в теме
(12)КД 3.0 без наличия в конфигурации БСП >= 2.2 не работает.
15. Александр Васильев (user633533_encantado) 2 10.08.17 13:44 Сейчас в теме
(11) Сейчас нужно обе знать, чтобы оставаться "в тренде"
16. John Irwin (Irwin) 60 10.08.17 13:47 Сейчас в теме
(11) Начинайте лучше с КД 2.0. Она всегда пригодится.
DarkAn; El_Loco; +2 Ответить
17. Алексей Папанов (El_Loco) 96 10.08.17 21:51 Сейчас в теме
(16) Спасибо, Иван!
Вообще, "переносы" как область 1сника это отдельная история, которая может приносить доход.
если я Вас правильно понял, то для изучения КД 3.0 все равно рекомендуется понимание КД 2?

(14) ну если под словом "нормальный" мы берем чувака минимум с бумажкой 1С:Специалист, то да. тогда я ненормальный( краб, короче...
про тренды давайте оставим для городов-милионников. в нашем городе численностью >300тыс.чел. про тренды говорить смешно.
20. Александр Васильев (user633533_encantado) 2 11.08.17 10:37 Сейчас в теме
(17) Ну если вы хотите вырасти как специалист, то рекомендую все-таки постоянно учиться. Лично я постоянно часть своего бюджета трачу на повышение квалификации, чтобы не остаться на обочине.

И это окупается.
21. Алексей Папанов (El_Loco) 96 11.08.17 10:44 Сейчас в теме
(20) я полностью с Вами согласен. вот этот топик мне как раз подвернулся, когда я задался вопросами самообразования. и один из первостепенных пунктов это был "обмены,переносы".
сам интуитивно понимал, что КД 3 усвоится лучше, когда есть понимание КД 2. тем более, что пока это не взаимоисключающие вещи.
ну а когда мне тут кое-что объяснили, теперь стало понятнее. начну с КД 2.
22. Алексей Иванов (IvanovAV) 42 11.08.17 15:52 Сейчас в теме
(21) Курс Насипова и Гилева смотри. ИМХО это самый лучший курс по КД на
У меня затраты на этот курс окупились уже за первую неделю его просмотра.
Просто я смотрел курс не для общего развития, а под конкретный оплаченный заказчиком проект.
gorakh; KSy; user595120_rybolovlev_ms; +3 Ответить
25. Иван Филимонов (DarkAn) 373 17.10.17 09:26 Сейчас в теме
(21)
сам интуитивно понимал, что КД 3 усвоится лучше, когда есть понимание КД 2

Вот тут я полностью не согласен. Я проходил кук и оратор из (22) по Курс Насипова и Гилева смотри по КД 2 - действительно вещь!!!. Думал стоит или нет изучать 3.0 и как раз подвернулся сдвоеный курс 2.0 и 3.0 "кратко, быстро и доступно" - прошел в первом потоке и разочаровался. по 2.0 все связно и лаконично как в полном курсе, а вот 3.0 внес вообще полную кашу - там вообще все по другому и курс был сыроват - много осталось по части 3.0 негатива у многих - надеюсь поправили больше года уже прошло.

ИМХО: КД2 - попроще и попонятнее. Я перенос из Бух 7,7 на УПП1,3 делал сам, давно и без вводного курса.

КД2 связывает конфа - конфа.
КД3 связывает конфа - конфы (разные)
Ну это как я понял из вводного курса :))))

Кстати, картинка из (18) это подтверждает
18. Роман Уничкин (unichkin) 573 10.08.17 23:57 Сейчас в теме
Вот самое доступное объяснение которое я слышал про то - в чем же разница между КД 2.0 и 3.0, и где плюсы.
Есть три конфигурации A, B, C между которыми настроены обмен. Теперь внимание на скрин, и читаем:
- Для КД 2.0 будет существовать 6 наборов правил. Для 3.0 - описывается каждый раз не обмен двух баз с различными структурами, а одной базы с универсальным форматом EnterpriseData. Для каждой базы надо написать и выгрузку в этот формат и загрузку из этого формата. Вот тут боюсь соврать в силу неопытности работы с КД 3.0: с одной стороны это тоже 6 правил, с другой - это три правила, т.к. двусторонний обмен с ED рассматривается в контексте одной базы...
- Теперь предположим что конфигурация "B" была сильно изменена. Тогда - необходимо учитывать изменения для всех правил между A-B и B-C - для КД 2.0. Это 4 правила. А для КД 3.0 только два - те, что обменивается с универсальным форматом.
Прикрепленные файлы:
23. Moolex (moolex) 678 13.08.17 13:25 Сейчас в теме
Перенос объектов - и не нужны никакие дополнительные конфигурации, только источник и получатель, настраиваемые правила обмена и при выгрузке и при загрузке, обмен через интернет и Ctrl+C / Ctrl+V
24. Moolex (moolex) 678 13.08.17 13:27 Сейчас в теме
Перенос объектов - и самое важное - сравнение данных перед загрузкой, чтобы понимать что делаешь...:)
27. PerlAmutor IC (PerlAmutor) 7 17.10.17 11:03 Сейчас в теме
Не люблю планы обменов. Блокируют целиком таблицы, что тормозит работу пользователей, перезаписывают одни и те же элементы справочников снова и снова. Не умеют работать P2P через TCP/UDP, не имеют двоичных форматов данных.
28. John Irwin (Irwin) 60 17.10.17 11:11 Сейчас в теме
(27) На этом месте подробнее пожалуйста.
Блокируют целиком таблицы

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

Как так?
Не умеют работать P2P через TCP/UDP, не имеют двоичных форматов данных

При чем здесь план обмена?
29. PerlAmutor IC (PerlAmutor) 7 17.10.17 12:14 Сейчас в теме
(28)
Ну это далеко не всегда.

Может быть. Но у нас все висят, когда начинается обмен.
https://its.1c.ru/db/metod8dev#content:5841:hdoc:export

(28)
Как так?

Ну вот так вот. Это хорошо видно по ЖР, когда один и тот же банковский счет или номенклатура перезаписываются снова и снова изо дня в день.

(28)
При чем здесь план обмена?

Для того, чтобы пользоваться браузером Вы же не используете расшаренные папки, FTP сервер или почту, куда в XML формате бы выгружался сайт целиком, а потом браузер бы его парсил и грузил. Я на коленке за один вечер напишу протокол обмена файлами между двумя сетевыми приложениями (серверами). Почему этого до сих пор не сделали разработчики 1С - тайна покрытая мраком.
Оставьте свое сообщение