К статье
Практический материал

Справочники и Данные · 10 мин

Как перенести данные из регистра сведений в 1С

Перенос данных из регистра сведений 1С: выгрузка через запрос, обработку и XML, типовые средства конвертации, проверка результата и типичные ошибки.

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

Универсального кнопочного решения в типовых конфигурациях нет, поэтому на практике применяют несколько подходов: типовую обработку «Выгрузка и загрузка данных XML», конвертацию данных, запросы с записью через набор записей и обмен через табличный документ. Выбор зависит от объёма, совпадения структур источника и приёмника и наличия у вас прав разработчика.

Определите тип регистра сведений перед переносом

От режима записи регистра зависит вся технология переноса. Откройте конфигуратор, найдите регистр в ветке «Регистры сведений» и посмотрите свойства «Периодичность» и «Режим записи».

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

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

Режим записи «Независимый»Простой перенос

Записи можно копировать напрямую через запрос или обработку

Режим «Подчинён регистратору»Сложный перенос

Нужно переносить документы-регистраторы или создавать их заново

Периодический регистрВажна история

Проверьте, что поле «Период» переносится без сдвигов дат

Структуры различаютсяНужен маппинг

Потребуется сопоставление измерений и ресурсов вручную

Перенос между идентичными конфигурациями через выгрузку XML

Если база-источник и база-приёмник построены на одной конфигурации одной версии (например, перенос из рабочей базы в копию или между филиалами), самый безопасный путь — типовая обработка «Выгрузка и загрузка данных XML». Она входит в диск ИТС и часто встроена в типовые конфигурации в разделе администрирования.

Порядок действий: откройте обработку в базе-источнике, на закладке выгрузки отметьте нужный регистр сведений в дереве объектов, укажите файл выгрузки и выполните выгрузку. Затем откройте ту же обработку в базе-приёмнике и загрузите файл. Обработка переносит ссылочные объекты (измерения регистра — номенклатуру, контрагентов) вместе с записями, сохраняя уникальные идентификаторы, поэтому связи не ломаются.

Порядок действий при выгрузке XML
  1. 1
    Сделайте резервную копию базы-приёмника
  2. 2
    Откройте обработку «Выгрузка и загрузка данных XML» в источнике
  3. 3
    Отметьте нужный регистр сведений и связанные объекты
  4. 4
    Выгрузите данные в файл
  5. 5
    Откройте ту же обработку в приёмнике и загрузите файл
  6. 6
    Сверьте количество записей в источнике и приёмнике

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

Перенос между разными конфигурациями через конвертацию данных

Когда структуры регистров в источнике и приёмнике различаются — например, переход с 1С:УПП на 1С:ERP или с самописной конфигурации на типовую — применяют конфигурацию «Конвертация данных». В ней настраивают правила конвертации объектов: какое измерение источника в какое измерение приёмника попадает, как преобразуются значения.

Для регистра сведений создают правило конвертации набора записей. Если регистр независимый, записи выгружаются как самостоятельные объекты; если подчинён регистратору — конвертируются вместе с документом-регистратором. Поиск ссылочных измерений в приёмнике обычно настраивают по коду, наименованию или уникальному идентификатору.

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

Перенос программно: запрос и набор записей

Если вы умеете работать в конфигураторе, самый гибкий способ — собственная обработка. Для независимого регистра сведений логика такая: запросом выбрать все записи регистра в источнике, подключиться к базе-приёмнику (через COM-соединение, веб-сервис или в рамках одной базы — напрямую) и для каждой строки создать запись через менеджер записи.

Типовой фрагмент кода для переноса внутри одной базы из одного регистра в другой выглядит так:

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрСведений.РегистрИсточник";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Менеджер = РегистрыСведений.РегистрПриемник.СоздатьМенеджерЗаписи();

ЗаполнитьЗначенияСвойств(Менеджер, Выборка);

Менеджер.Записать();

КонецЦикла;

Для больших объёмов эффективнее писать не по одной записи, а набором записей с отбором, либо порциями, чтобы не держать в памяти весь регистр. При переносе между базами через COM-соединение учитывайте, что ссылочные значения (измерения типа «СправочникСсылка») нужно сопоставлять по идентификатору или ключевым полям — напрямую передать ссылку из одной базы в другую нельзя.

Перенос через табличный документ и внешние файлы

Когда нет доступа к конфигуратору, а объём данных умеренный, записи регистра можно выгрузить в таблицу и загрузить через файл. Откройте регистр в пользовательском режиме, выведите список, настройте нужные колонки и сохраните табличный документ в формате MXL, Excel или скопируйте в буфер обмена.

Для загрузки в приёмник используют типовые обработки загрузки данных из табличного документа (во многих конфигурациях на БСП есть «Загрузка данных из файла» в разделе «Администрирование» или в карточке справочника). Обработка сопоставляет колонки файла с измерениями и ресурсами регистра и ищет ссылочные значения по наименованию или коду.

Способ подходит для независимых регистров с простыми измерениями — штрихкодов, соответствий значений. Для периодических регистров с длинной историей и регистров, подчинённых регистратору, он не подходит.

Сравнение вариантов переноса

Выгрузка/загрузка XML

Идентичные конфигурации; сохраняет ссылки и GUID; не работает при различии структур

Конвертация данных

Разные конфигурации и большие объёмы; требует навыков настройки правил

Своя обработка с запросом

Максимальная гибкость и контроль; нужны права разработчика и тестирование

Загрузка из табличного документа

Небольшие объёмы без доступа к конфигуратору; риск ошибок сопоставления колонок

Проверка результата и типичные ошибки

После переноса сверьте количество записей в источнике и приёмнике — проще всего универсальным отчётом или консолью запросов. Для периодических регистров дополнительно проверьте срез последних на актуальную дату: значения должны совпадать. Для регистров с ссылочными измерениями выборочно откройте несколько записей и убедитесь, что измерения указывают на правильные элементы справочников, а не на «битые» ссылки.

Контрольные точки

Как проверить результат

Количество записей
Норма

Совпадает с источником или отличается на известное число отфильтрованных

Тревожный признак

Записей меньше без объяснимой причины

Срез последних (для периодического регистра)
Норма

Значения на дату совпадают с источником

Тревожный признак

Устаревшие или пустые значения

Ссылочные измерения
Норма

Открываются реальные элементы справочников

Тревожный признак

«Объект не найден» или дубли элементов

Отчёты, использующие регистр
Норма

Формируются с ожидаемыми цифрами

Тревожный признак

Пустые строки или ошибки компоновки

Типичные ошибки
01
Перенос без резервной копии — при ошибке откатить изменения невозможно
02
Игнорирование подчинённости регистратору — попытка записать такой регистр напрямую завершается ошибкой
03
Поиск ссылок по наименованию — при совпадающих наименованиях появляются записи с неверными измерениями
04
Потеря поля «Период» при загрузке из файла — вся история сваливается на одну дату
05
Перенос в рабочее время в многопользовательской базе — часть записей создаётся пользователями параллельно, и сверка расходится

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

Итог

Что важно запомнить

Сначала определите тип регистра: независимый переносится напрямую, подчинённый регистратору — только вместе с документами. Для одинаковых конфигураций используйте выгрузку XML, для разных — конвертацию данных или собственную обработку. Всегда работайте через копию базы и сверяйте количество записей и срез последних после загрузки.

Частые вопросы

Можно ли перенести регистр сведений, подчинённый регистратору, без документов?

Нет. Каждая запись такого регистра обязана ссылаться на документ-регистратор. Варианты: перенести сами документы вместе с движениями или создать в приёмнике служебный документ (например, «Ввод начальных остатков», если конфигурация его поддерживает) и записать движения им.

Как перенести только часть записей регистра?

В обработке выгрузки XML отборы по записям регистра обычно не настраиваются, поэтому проще использовать собственную обработку с запросом: добавьте в текст запроса условие ГДЕ по нужным измерениям или периоду и запишите только отобранные строки.

Почему после загрузки из Excel появились дубли справочников?

Обработка загрузки искала элементы по наименованию, не нашла совпадения (например, из-за лишних пробелов или другого регистра букв) и создала новые элементы. Перед загрузкой настройте поиск по коду или уникальному идентификатору, а после — удалите дубли штатной обработкой поиска и удаления дублей.

Что делать, если структуры регистров в источнике и приёмнике различаются?

Составьте таблицу соответствия: какое измерение или ресурс источника в какое поле приёмника переносится, какие поля не переносятся, какие заполняются значениями по умолчанию. Затем реализуйте этот маппинг в конвертации данных или в собственной обработке — автоматически разные структуры не сопоставляются.

Нужно ли переносить служебные поля, например «Активность»?

При программном переносе через ЗаполнитьЗначенияСвойств поле «Активность» обычно заполняется автоматически значением «Истина». Если вы копируете записи вручную или через файл, проверьте, что записи активны: неактивные записи периодического регистра не участвуют в срезах, и отчёты их не увидят.