Перенос данных между двумя базами с одинаковой конфигурацией — задача, которая часто кажется более сложной, чем она есть на самом деле. Особенно если пытаться решить её «в лоб» через создание правил в Конвертации данных 3.1. Разберем, почему стандартный путь через КД 3 может быть избыточным для этой задачи, и какие инструменты позволят выполнить перенос гораздо быстрее и качественнее.
Рассмотрим ситуацию: нам нужно перенести документ Приобретение товаров и услуг со всеми его зависимостями (Контрагенты, Договоры, Номенклатура, Склады и т.д.) из одной базы УТ 11 в другую точно такую же. В старой доброй Конвертации данных 2.0 существовала функция «Синхронизация свойств» с галочкой «Рекурсивно создавать правила конвертации». Это позволяло в пару кликов «вытянуть» все нужные типы данных.
В Конвертации данных 3.1 логика изменилась кардинально. Она базируется на использовании формата Enterprise Data и XDTO-пакетов. Прямого переноса «объект в объект» здесь нет — данные сначала конвертируются в промежуточный формат, а затем загружаются в приемник. Попытка вручную настроить все ПКО (Правила конвертации объектов) и ПОД (Правила обработки данных) для разового переноса между идентичными базами приведет к огромным трудозатратам. Мы потратим дни на то, что можно сделать за минуты.
Для переноса данных между абсолютно идентичными конфигурациями (одинаковый релиз и структура метаданных) существует «золотой стандарт» — обработка ВыгрузкаЗагрузкаДанныхXML83.epf. Проанализируем её преимущества:
xml с правилами конвертации.Где найти эту обработку? Рассмотрим основные источники:
...\1cv8\tmplts\1c\Conversion\3_1_X_X\Instruction\).Разберем по шагам, как правильно пользоваться этой утилитой:
Приобретение товаров и услуг).Если конфигурации типовые (например, УТ 11, ERP 2.5, КА 2), мы можем воспользоваться механизмом синхронизации, встроенным в саму систему. Это решение подходит, если перенос планируется делать регулярно.
Проанализируем этот путь:
В современных конфигурациях реализован обмен через Универсальный формат (Enterprise Data). Вместо написания правил в КД 3, мы можем настроить «Синхронизацию данных» через «Другую конфигурацию».
EnterpriseData (например, 1.15).Одной из главных проблем при переносе является возникновение дублей. Разберем, как с этим бороться. Стандартная обработка ВыгрузкаЗагрузкаДанныхXML83 ищет объекты только по УИД (уникальному идентификатору). Если в новой базе вы уже успели завести контрагента «Ромашка» вручную, а потом загрузили его из старой базы, у вас появится две «Ромашки» с разными УИД.
Если ситуация критична, можно прибегнуть к небольшой доработке обработки ВыгрузкаЗагрузкаДанныхXML83. Посмотрим на логику изменений, которую реализовал автор темы в сообщении 13:
Для реализации поиска по ИНН/КПП в момент загрузки, необходимо в модуле обработки найти процедуру загрузки объекта и добавить проверку существования по реквизитам. Пример упрощенной логики (псевдокод):
// При загрузке справочника Контрагенты
Если ТипОбъекта = "СправочникСсылка.Контрагенты" Тогда
НайденнаяСсылка = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН", ЗагруженныйИНН);
Если НЕ НайденнаяСсылка.Пустая() Тогда
Объект.УстановитьСсылкуНового(НайденнаяСсылка);
КонецЕсли;
КонецЕсли;
Важное предупреждение: такие доработки требуют высокой квалификации, так как нарушение логики установки ссылок может привести к повреждению базы данных. Для разовых задач лучше сначала синхронизировать справочники в двух базах по УИД (например, обработками «Поиск и замена дублей»), а уже потом выполнять массовый перенос документов.
Если вы всё же решили осваивать Конвертацию данных 3 для этой задачи (например, в учебных целях), запомните основные этапы:
ПриобретениеТоваровУслуг превращается в объект формата Документ.ПриобретениеТоваровУслуг.ПКО. Если их нет в типовой поставке, их придется создать.ПКО на закладке «Поля поиска». Здесь можно указать поиск по ИНН/КПП для контрагентов, что решит проблему дублей без правки кода обработок.Подведем итог: если ваша задача — разово перенести данные между одинаковыми базами, не тратьте время на изучение КД 3 для этой конкретной цели. Используйте ВыгрузкаЗагрузкаДанныхXML83 с включенной опцией «Выгружать с объектом ссылки». Это сэкономит вам часы работы и обеспечит корректность данных.