Перенос данных между двумя одинаковыми конфигурациями «1С:Бухгалтерия предприятия 3.0» — задача, которая на первый взгляд кажется простой. Однако за этой простотой скрываются технические нюансы, связанные с уникальными идентификаторами (UUID), ссылочной целостностью и структурой самих регистров. В этой статье мы подробно разберем, как перенести регистр сведений, не создав при этом дублей и не нарушив работу базы-приемника.
Для абсолютно идентичных конфигураций (одинаковый релиз, одинаковый набор объектов) самым эффективным инструментом является обработка ВыгрузкаЗагрузкаДанныхXML83.epf. Этот инструмент входит в состав конфигурации «Конвертация данных 2.0», но может использоваться автономно. Разберем алгоритм работы с ним по шагам.
Шаг 1: Подготовка в базе-источнике
ВыгрузкаЗагрузкаДанныхXML83.epf в режиме 1С:Предприятие.РегистрСведений.Шаг 2: Загрузка в базе-приемнике
Важный нюанс: Этот метод работает через сопоставление по UUID (уникальному идентификатору). Если базы не являются копиями друг друга, поиск объектов будет идти строго по этому внутреннему ключу. Если в базе-приемнике уже есть объект с таким же UUID, он будет перезаписан. Если нет — создан новый. Помните: сопоставление по ИНН или Наименованию эта обработка не делает!
Если нам нужно перенести только записи независимого регистра без «хвостов» в виде связанных объектов, или если мы хотим сопоставить данные по определенным полям (например, по коду), воспользуемся обработкой ЗагрузкаДанныхИзТабличногоДокумента.epf. Рассмотрим, как это сделать быстро и без лишних сложностей.
Действия в базе-источнике:
РегистрСведений в интерфейсе.Действия в базе-приемнике:
В современных версиях БП 3.0 существует встроенный аналог — обработка «Загрузка данных из файла». Найти ее можно в разделе «Администрирование» — «Обслуживание» или через поиск. Проанализируем процесс загрузки:
РегистрСведений.Номенклатура выберем поиск по Наименованию или Артикулу).Проанализируем ситуацию, когда регистр сведений не является независимым, а подчинен регистратору (документу). В этом случае перенос записей регистра «в чистом виде» невозможен. Записи такого регистра жестко привязаны к документу, который их создал.
Если мы попытаемся выгрузить только записи такого регистра через XML, в базе-приемнике они могут просто не появиться или «отвалиться» при первой же попытке перепроведения документов. Выясним причину: записи в таких регистрах живут только до тех пор, пока существует документ-регистратор. Правильный подход здесь — переносить сами документы (например, УстановкаЦенНоменклатуры), а записи регистра сформируются автоматически при их проведении в целевой базе.
Рассмотрим предостережение, которое часто дают опытные специалисты: категорически не рекомендуется выгружать объекты через XML, если базы были созданы путем простого копирования друг друга.
Почему это опасно? В клонированных базах у всех объектов (организаций, контрагентов, валют) абсолютно одинаковые UUID. Если в базе-источнике вы изменили какой-то реквизит в справочнике Организации, а затем решили перенести записи регистра, связанные с этой организацией, обработка XML может затереть важные данные в базе-приемнике без вашего ведома. Чтобы избежать этого, в настройках обработки XML всегда снимайте галку «Загружать при необходимости», если вы не уверены в чистоте данных.
В некоторых случаях, когда объем данных огромен, проще написать короткий скрипт для переноса через COM-соединение или JSON. Посмотрим на логику работы с набором записей регистра сведений в коде 1С:
// Пример получения набора записей независимого регистра
НаборЗаписей = РегистрыСведений.НашРегистр.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(ДатаНачала, ДатаКонца);
НаборЗаписей.Прочитать();
// В цикле можно сериализовать данные в JSON или передать через COM
Для Каждого Запись Из НаборЗаписей Цикл
// Логика передачи данных
КонецЦикла;
Использование JSON в платформе 8.3 позволяет создавать очень компактные файлы обмена, которые обрабатываются значительно быстрее классического XML. Это особенно актуально, если вы переносите миллионы записей логов или цен.
Мы разобрали основные способы переноса регистров сведений в «Бухгалтерии предприятия 3.0». Выбор метода зависит от ваших целей:
Надеемся, этот детальный разбор поможет вам провести перенос данных чисто и без ошибок!