Как перенести документы реализации из одной базы 1С:УТ 10.3 в другую (копию) без сложных настроек Конвертации данных?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Проанализируем распространенную ситуацию: у нас есть рабочая база на конфигурации 1С:Управление торговлей 10.3 и ее копия. Для копии была выполнена свертка базы, но этот процесс занял пару дней. За это время в основной (рабочей) базе пользователи продолжали работать и создали ряд новых документов реализации. Возникает закономерный вопрос: как перенести эти «потерянные» за пару дней документы в свернутую копию, если конфигурация доработана, а использовать полноценную «Конвертацию данных» нет желания или времени? Рассмотрим подробнее несколько эффективных способов решения этой задачи.

Вариант 1: Использование обработки «Выгрузка и загрузка данных XML»

Эта обработка производит полную или частичную выгрузку данных информационной базы в файл формата XML.

Частая проблема, с которой сталкиваются разработчики (и автор оригинального вопроса): скачанная обработка просто не открывается или выдает ошибку. Выясним причину. Конфигурация УТ 10.3 построена на обычных формах. Скорее всего, вы пытаетесь использовать современную версию для управляемых форм (часто содержит в названии «83»).

Разберем по шагам, как сделать всё правильно:

  1. Найдите и скачайте версию обработки именно для обычных форм. Обычно файл называется ВыгрузкаЗагрузкаДанныхXML.epf или ВыгрузкаЗагрузкаДанныхXML82.epf. Ее можно найти на диске ИТС или в каталоге установки конфигурации «Конвертация данных 2».
  2. Откройте обработку в исходной (рабочей) базе.
  3. На вкладке выгрузки установите период (в нашем случае нужные 2 дня).
  4. В дереве метаданных снимите все галочки и отметьте только нужный вид документа: Документы.РеализацияТоваровУслуг.
  5. Выполните выгрузку в XML-файл.
  6. Откройте эту же обработку в базе-копии и на вкладке «Загрузка» укажите полученный файл.

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

Вариант 2: Прямое подключение через COM-соединение (OLE)

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

Для реализации этого метода напишем небольшую внешнюю обработку в базе-приемнике (копии), которая будет подключаться к источнику через V83.COMConnector.

Посмотрим на пример логики, которую необходимо реализовать:

  1. Устанавливаем COM-соединение с рабочей базой.
  2. Выполняем запрос через COM-объект, отбирая документы реализации за нужный период.
  3. Перебираем результат запроса. Для каждого документа создаем новый в текущей базе с помощью Документы.РеализацияТоваровУслуг.СоздатьДокумент().
  4. Переносим простые реквизиты (Сумма, Дата, Номер) прямым присваиванием.
  5. Для ссылочных типов (справочников) получаем GUID элемента из COM-объекта и ищем локальный элемент с помощью функции УникальныйИдентификатор().
  6. Заполняем табличные части в цикле и записываем документ.

Так как структура метаданных совпадает, сопоставление по GUID сработает идеально и потребует написания минимального количества кода.

Вариант 3: Использование штатных планов обмена (РИБ)

В конфигурацию 1С:УТ 10.3 уже встроены мощные механизмы обмена, которые можно использовать для разового переноса. Проанализируем этот подход.

Вам потребуется настроить стандартный план обмена, например, план обмена «Полный»:

  1. Создайте узел обмена в обеих базах (Настройте префиксы, если необходимо).
  2. Чтобы избежать выгрузки всей базы, воспользуйтесь стандартной обработкой РегистрацияИзмененийДляОбмена.epf.
  3. Откройте эту обработку в базе-источнике, выберите ваш новый узел и снимите регистрацию абсолютно со всех объектов.
  4. Затем найдите в дереве документ реализации и вручную зарегистрируйте для обмена только те документы, которые были созданы за 12 и 13 декабря.
  5. Выполните типовой сеанс выгрузки. Система сформирует файл сообщения обмена, содержащий только нужные документы.
  6. Загрузите этот файл в базу-копию.

Этот метод абсолютно безопасен, использует платформенные механизмы XML-сериализации и гарантирует целостность данных.

Вариант 4: Самописный обмен через файлы (JSON, ТХТ)

Иногда быстрее написать свой простой скрипт, чем настраивать стандартные узлы. Рассмотрим, как создать выгрузку нужных реквизитов в текстовый файл формата JSON.

В базе-источнике мы пишем обработку, которая формирует структуру и сериализует её в JSON. Обязательно нужно выгружать не только наименования справочников, но и их идентификаторы, чтобы загрузчик смог их найти.

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


{
    "Документы": [
        {
            "Дата": "2023-12-12T15:00:00",
            "Номер": "УТ-00015",
            "Контрагент_GUID": "e3b0c442-989b-464c-8650-123456789abc",
            "СуммаДокумента": 15000.00,
            "Товары": [
                {
                    "Номенклатура_GUID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                    "Количество": 10,
                    "Цена": 1500.00
                }
            ]
        }
    ]
}

В базе-приемнике пишем обработку загрузки, которая читает этот JSON, ищет справочники по переданным GUID и программно создает реализации.

Вариант 5: А стоит ли отказываться от Конвертации Данных 2?

Несмотря на то, что в исходной задаче стояло условие «не используя КД», участники обсуждения справедливо отмечают, что для полностью идентичных конфигураций создание правил в «Конвертации данных 2.1» занимает не более 15-20 минут.

Достаточно загрузить в КД 2 структуру метаданных УТ 10.3, нажать кнопку автоматического создания правил обмена и отключить все правила выгрузки данных (ПВД), оставив только ПВД для документа реализации с фильтром по периоду. В таком случае платформа сама сгенерирует весь необходимый код для корректного переноса документов и всех их зависимостей (контрагентов, договоров, номенклатуры).

Подведем итоги: если вам нужно перенести пару дней работы между одинаковыми базами УТ 10.3, самым быстрым и безопасным решением без программирования является использование стандартной обработки «Выгрузка и загрузка данных XML» правильной версии (для обычных форм). Если же требуется автоматизация, прямое OLE-соединение или использование штатной регистрации изменений по плану обмена станут отличной альтернативой.

← На главную