Как перенести документы и метаданные из Бухгалтерии предприятия 2.0 в 3.0?

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

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

Перенос метаданных: особенности копирования объектов

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

  1. Откройте одновременно два конфигуратора: базу-источник (БП 2.0) и базу-приемник (БП 3.0).
  2. В дереве конфигурации источника выделите нужный объект (например, документ ЛокальныйУчетЗатрат).
  3. Используйте сочетание клавиш CTRL+C, затем перейдите в конфигуратор приемника и нажмите CTRL+V.

Однако здесь нас подстерегают технические сложности. Выясним причину, по которой простого копирования будет недостаточно. В БП 2.0 используются «обычные формы», в то время как БП 3.0 работает исключительно на «управляемых формах» в интерфейсе «Такси». При копировании объекта формы перенесутся, но они будут неработоспособны в управляемом приложении. Вам придется создавать управляемые формы с нуля, заново отрисовывая интерфейс и переписывая логику взаимодействия с пользователем.

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

Куда лучше вносить изменения: в расширение или в основную конфигурацию?

Рассмотрим важный архитектурный вопрос: где размещать перенесенные объекты? В современных версиях платформы 8.3 у нас есть два пути: правка основной конфигурации или использование расширений.

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

Вариант 2: Расширение конфигурации. Если вы добавляете новые, независимые документы, крайне рекомендуется использовать механизм расширений. Это позволит:

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

Перенос данных с помощью «1С:Конвертация данных 2.1»

Когда структура документов в БП 3.0 уже готова, наступает этап переноса самих данных (записей из таблиц). Самым надежным и гибким инструментом здесь является конфигурация «Конвертация данных 2.1» (КД 2.1). Разберем алгоритм работы с ней:

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

Посмотрим на пример настройки кода в КД 2.1. Часто при переносе документов требуется программная обработка. Например, в событии ПередЗагрузкой можно прописать логику поиска существующих объектов, чтобы не плодить дубли:


// Пример в КД 2.1: поиск по номеру и дате
Если Не ЗначениеЗаполнено(Объект.Номер) Тогда
    Отказаться = Истина;
КонецЕсли;

Альтернативные методы: COM-соединение и XML

Если вам нужно перенести данные разово и вы не хотите тратить время на изучение КД 2.1, рассмотрим метод COM-соединения. Мы можем написать внешнюю обработку в базе 3.0, которая подключится к базе 2.0 и прочитает данные напрямую. Проанализируем пример кода для такого подключения:


// Подключение к базе 8.2 через COM
Connector = Новый COMОбъект("V82.ComConnector");
ПутьКБазе = "File=""C:\Bases\BP20"";Usr=""Админ"";";
Connection = Connector.Connect(ПутьКБазе);

// Запрос к документам в старой базе
Запрос = Connection.NewObject("Query");
Запрос.Text = "ВЫБРАТЬ Ссылка, Номер, Дата ИЗ Документ.РеализацияТоваровУслуг";
Выборка = Запрос.Execute().Choose();

Пока Выборка.Next() Цикл
    // Создаем документ в новой базе 8.3
    НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    НовыйДок.Дата = Выборка.Дата;
    // ... заполнение остальных реквизитов ...
    НовыйДок.Записать();
КонецЦикла;

Этот способ хорош своей прямолинейностью, но он требует ручного написания кода для каждого реквизита и каждой табличной части. Для массового переноса множества видов документов он менее эффективен, чем КД 2.1.

Также упомянем обработку «Выгрузка и загрузка данных XML». Она полезна только в том случае, если структуры объектов абсолютно идентичны (имена реквизитов, их типы и типы ссылочных данных). При переходе с 2.0 на 3.0 это встречается крайне редко из-за масштабных изменений в типовых решениях 1С.

Критически важный нюанс: проведение документов

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

Рекомендуемая стратегия: переносить только сами документы (данные заголовка и табличных частей) в состоянии «не проведен», а затем запускать массовое перепроведение документов уже в целевой базе БП 3.0. Это позволит системе сформировать движения по актуальным алгоритмам редакции 3.0, учитывая все новые регистры и правила учета.

Подведем итог: для переноса структуры используем Ctrl+C / Ctrl+V с последующей ручной адаптацией форм и типов, размещая новые объекты по возможности в расширениях. Для переноса самих данных оптимальным выбором остается Конвертация данных 2.1, обеспечивающая гибкость и контроль процесса.

← На главную