Как правильно перенести регистр сведений между идентичными конфигурациями 1С:Бухгалтерия предприятия 3.0?

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

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

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

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

Шаг 1: Подготовка в базе-источнике

  1. Запустим обработку ВыгрузкаЗагрузкаДанныхXML83.epf в режиме 1С:Предприятие.
  2. На вкладке «Выгрузка» найдем в списке объектов наш РегистрСведений.
  3. Посмотрим на настройки выгрузки. Очень важно обратить внимание на флаг «Выгружать объекты по ссылкам только при необходимости». Если его оставить включенным, программа потянет за собой все связанные справочники (например, Номенклатуру, Контрагентов, Валюты).
  4. Укажем имя файла на диске, куда будут сохранены данные, и нажмем кнопку «Выгрузить данные».

Шаг 2: Загрузка в базе-приемнике

  1. Откроем ту же обработку в целевой базе.
  2. Перейдем на вкладку «Загрузка».
  3. Выберем ранее созданный файл и нажмем «Загрузить данные».

Важный нюанс: Этот метод работает через сопоставление по UUID (уникальному идентификатору). Если базы не являются копиями друг друга, поиск объектов будет идти строго по этому внутреннему ключу. Если в базе-приемнике уже есть объект с таким же UUID, он будет перезаписан. Если нет — создан новый. Помните: сопоставление по ИНН или Наименованию эта обработка не делает!

Метод 2. Перенос через табличный документ (Excel)

Если нам нужно перенести только записи независимого регистра без «хвостов» в виде связанных объектов, или если мы хотим сопоставить данные по определенным полям (например, по коду), воспользуемся обработкой ЗагрузкаДанныхИзТабличногоДокумента.epf. Рассмотрим, как это сделать быстро и без лишних сложностей.

Действия в базе-источнике:

  1. Откроем нужный РегистрСведений в интерфейсе.
  2. Используем стандартную команду «Еще» — «Вывести список».
  3. В появившемся окне выберем все колонки, которые нам необходимы (измерения, ресурсы, реквизиты).
  4. Полученную таблицу сохраним в формате Excel (.xlsx).

Действия в базе-приемнике:

В современных версиях БП 3.0 существует встроенный аналог — обработка «Загрузка данных из файла». Найти ее можно в разделе «Администрирование» — «Обслуживание» или через поиск. Проанализируем процесс загрузки:

  1. Выберем режим загрузки в РегистрСведений.
  2. Скопируем данные из нашего файла Excel и вставим их в таблицу обработки.
  3. Настроим сопоставление колонок. Программа предложит выбрать, по каким полям искать объекты (например, для справочника Номенклатура выберем поиск по Наименованию или Артикулу).
  4. Нажмем «Загрузить».

Метод 3. Нюансы регистров, подчиненных регистратору

Проанализируем ситуацию, когда регистр сведений не является независимым, а подчинен регистратору (документу). В этом случае перенос записей регистра «в чистом виде» невозможен. Записи такого регистра жестко привязаны к документу, который их создал.

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

Анализ рисков: «Клонированные» базы и дублирование

Рассмотрим предостережение, которое часто дают опытные специалисты: категорически не рекомендуется выгружать объекты через XML, если базы были созданы путем простого копирования друг друга.

Почему это опасно? В клонированных базах у всех объектов (организаций, контрагентов, валют) абсолютно одинаковые UUID. Если в базе-источнике вы изменили какой-то реквизит в справочнике Организации, а затем решили перенести записи регистра, связанные с этой организацией, обработка XML может затереть важные данные в базе-приемнике без вашего ведома. Чтобы избежать этого, в настройках обработки XML всегда снимайте галку «Загружать при необходимости», если вы не уверены в чистоте данных.

Программный метод (для продвинутых пользователей)

В некоторых случаях, когда объем данных огромен, проще написать короткий скрипт для переноса через COM-соединение или JSON. Посмотрим на логику работы с набором записей регистра сведений в коде 1С:


// Пример получения набора записей независимого регистра
НаборЗаписей = РегистрыСведений.НашРегистр.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(ДатаНачала, ДатаКонца);
НаборЗаписей.Прочитать();

// В цикле можно сериализовать данные в JSON или передать через COM
Для Каждого Запись Из НаборЗаписей Цикл
    // Логика передачи данных
КонецЦикла;

Использование JSON в платформе 8.3 позволяет создавать очень компактные файлы обмена, которые обрабатываются значительно быстрее классического XML. Это особенно актуально, если вы переносите миллионы записей логов или цен.

Заключение

Мы разобрали основные способы переноса регистров сведений в «Бухгалтерии предприятия 3.0». Выбор метода зависит от ваших целей:

Надеемся, этот детальный разбор поможет вам провести перенос данных чисто и без ошибок!

← На главную