Как перенести документы реализации из 1С:Бухгалтерии 3.0 (8.3) в 1С:Бухгалтерию 2.0 (8.2)?

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

Рассмотрим проблему обратного переноса документов «Реализация товаров и услуг» из конфигурации «Бухгалтерия предприятия 3.0» (работающей на платформе 1С 8.3) в предыдущую редакцию «Бухгалтерия предприятия 2.0» (работающей на платформе 1С 8.2). Данная задача не имеет стандартного решения «из коробки», так как фирма «1С» поддерживает обновление метаданных только в прямом направлении — с версии 2.0 на 3.0. Все встроенные планы обмена рассчитаны на миграцию вперед.

Разберем три проверенных и наиболее эффективных способа решения этой задачи в зависимости от ваших навыков программирования и объема переносимых данных.

Способ 1. Двухэтапный перенос через Excel и стандартную обработку

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

Рассмотрим этот процесс по шагам:

  1. Выгрузка данных из БП 3.0: Перейдите в список документов «Реализация товаров и услуг» в базе-источнике БП 3.0. Настройте список или воспользуйтесь универсальным отчетом, чтобы вывести нужные документы. Выделите табличную часть документа или список документов, нажмите кнопку «Еще» (или воспользуйтесь контекстным меню) и выберите команду «Вывести список». Полученную таблицу сохраните на диск в формате .xlsx (Excel).
  2. Подготовка файла: Проверьте структуру файла Excel. Убедитесь, что ключевые колонки (такие как Номенклатура, Количество, Цена, Сумма, Контрагент, Договор) заполнены корректно. При необходимости удалите лишние строки.
  3. Загрузка данных в БП 2.0: Откройте базу-приемник БП 2.0. Для загрузки воспользуйтесь стандартной внешней обработкой от фирмы 1С — «Загрузка данных из табличного документа» (файл ЗагрузкаДанныхИзТабличногоДокумента.epf).
  4. Настройка сопоставления: В обработке выберите режим загрузки в табличную часть или режим создания новых документов. Настройте поля поиска для сопоставления объектов. Для справочника Контрагенты крайне важно установить поиск по ИНН и КПП, а для справочника Номенклатура — по артикулу или коду, чтобы избежать появления дубликатов в базе 8.2.

Способ 2. Использование конфигурации «1С:Конвертация данных 2.0»

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

Проанализируем порядок действий:

  1. Выгрузите структуры метаданных из обеих баз (из БП 3.0 и БП 2.0) с помощью обработки MD82Exp.epf.
  2. Загрузите полученные файлы описания метаданных в конфигурацию «1С:Конвертация данных 2.0».
  3. Создайте новые правила обмена, где источником укажите БП 3.0, а приемником — БП 2.0.
  4. Настройте Правила Конвертации Объектов (ПКО) для документа «Реализация товаров и услуг», а также для всех сопутствующих справочников (Контрагенты, ДоговорыКонтрагентов, Номенклатура, Склады).
  5. Сохраните созданные правила в XML-файл.
  6. Выполните выгрузку документов из БП 3.0 с помощью обработки «Универсальный обмен данными в формате XML», указав созданный файл правил. Загрузите полученный файл данных в БП 2.0 через ту же обработку на вкладке «Загрузка».

Способ 3. Перенос документов программным путем через COM-соединение

Если обе базы находятся в одной локальной сети, мы можем написать внешнюю обработку, которая напрямую подключится из одной базы к другой и перенесет документы. Напишем код для запуска из базы-приемника (БП 2.0), которая будет подключаться к БП 3.0 на платформе 8.3.

Посмотрим на пример реализации подключения и создания документов:


// Создаем COM-соединение с базой БП 3.0
Connector = Новый COMОбъект("V83.COMConnector");
ПараметрыПодключения = "File=""C:\Base\BP3""; Usr=""Администратор""; Pwd="""";";
Попытка
    Соединение = Connector.Connect(ПараметрыПодключения);
Исключение
    Предупреждение("Не удалось подключиться к базе БП 3.0: " + ОписаниеОшибки());
    Возврат;
КонецПопытки;

// Выбираем документы реализации из источника за период
ЗапросИсточник = Соединение.NewObject("Запрос");
ЗапросИсточник.Текст = 
    "ВЫБРАТЬ
    |	Реализация.Ссылка КАК Ссылка,
    |	Реализация.Дата КАК Дата,
    |	Реализация.Номер КАК Номер,
    |	Реализация.Контрагент.Наименование КАК КонтрагентНаименование,
    |	Реализация.ДоговорКонтрагента.Наименование КАК ДоговорНаименование
    |ИЗ
    |	Документ.РеализацияТоваровУслуг КАК Реализация
    |ГДЕ
    |	Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода";

ЗапросИсточник.SetParameter("НачалоПериода", НачалоПериода);
ЗапросИсточник.SetParameter("КонецПериода", КонецПериода);
РезультатЗапроса = ЗапросИсточник.Execute();
Выборка = РезультатЗапроса.Choose();

Пока Выборка.Next() Цикл
    // Создаем документ в текущей базе БП 2.0
    НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    НовыйДок.Дата = Выборка.Дата;
    НовыйДок.Комментарий = "Перенесено из БП 3.0 по COM. Исходный номер: " + Выборка.Номер;
    
    // Поиск контрагента в текущей базе по наименованию
    НайденныйКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(Выборка.КонтрагентНаименование);
    Если Не НайденныйКонтрагент.Пустая() Тогда
        НовыйДок.Контрагент = НайденныйКонтрагент;
        // Поиск договора контрагента
        НовыйДок.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(Выборка.ДоговорНаименование, Истина, , НовыйДок.Контрагент);
    КонецЕсли;
    
    // Аналогичным образом заполняем табличную часть "Товары", считывая строки из источника
    // ...
    
    НовыйДок.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;

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

← На главную