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

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

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

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

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

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

Что проверить перед выгрузкой

До начала работы убедитесь, что у вас есть права на чтение нужного регистра. В типовых конфигурациях рядовые пользователи часто видят документы, но не имеют доступа к регистрам напрямую — тогда список регистра просто не откроется. Проверить доступ можно через «Все функции» (в режиме тонкого клиента: меню → Сервис → Все функции, если пункт доступен) или попросив администратора временно выдать роль.

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

Определите целевой формат. Если данные нужны человеку для анализа — подойдут Excel или CSV. Если регистр переезжает в другую базу 1С с идентичной конфигурацией — нужен XML с сохранением ссылок. Если данные уходят во внешнюю систему — чаще всего требуются CSV, JSON или XML согласованной структуры, и ссылочные значения придётся заменять на наименования или коды.

Регистр открывается в спискеЕсть права на чтение

Можно выгружать через интерфейс без доработок

Пункт регистра недоступенНет прав или регистр скрыт

Запросить роль у администратора или выгружать запросом

Записей больше нескольких сотен тысячБольшой объём

Использовать отбор по периоду и выгрузку порциями

Нужны ссылки на справочникиПеренос в другую базу 1С

Выбирать формат XML с сохранением ссылочной целостности

Способ 1. Выгрузка через список регистра в табличный документ

Самый быстрый метод для регистров небольшого объёма. Откройте список регистра сведений: в типовых конфигурациях он находится в разделе, соответствующем предметной области (например, курсы валют — в разделе «НСИ и администрирование»), либо через «Все функции» → «Регистры сведений» → нужный регистр.

Установите отбор, если нужна не вся таблица: через кнопку «Ещё» → «Настроить список» добавьте условия по периоду, организации, номенклатуре и другим измерениям. Затем выведите список в табличный документ: «Ещё» → «Вывести список». В появившемся диалоге отметьте нужные колонки и подтвердите вывод.

Полученный табличный документ сохраните через Файл → Сохранить как, выбрав формат — лист Excel (.xlsx), табличный документ (.mxl) или текстовый файл. Проверьте, что количество строк в файле совпадает с количеством записей в списке после отбора.

Порядок действий для выгрузки через список
  1. 1
    Откройте список регистра сведений через меню раздела или «Все функции»
  2. 2
    Установите отбор через «Ещё» → «Настроить список», если нужна часть данных
  3. 3
    Выполните «Ещё» → «Вывести список» и отметьте нужные колонки
  4. 4
    Сохраните табличный документ в нужном формате через Файл → Сохранить как
  5. 5
    Сверьте количество строк в файле с количеством записей в списке

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

Способ 2. Выгрузка через консоль запросов

Консоль запросов — внешняя обработка, которую администраторы и разработчики открывают через Файл → Открыть в режиме предприятия. Она позволяет выполнить произвольный запрос к регистру и сохранить результат. Это оптимальный путь, когда нужен сложный отбор, соединение с другими таблицами или вычисляемые поля.

Текст запроса для периодического регистра сведений выглядит так: выбираются измерения, ресурсы и поле Период из таблицы вида РегистрСведений.ИмяРегистра, при необходимости добавляется виртуальная таблица среза последних или условие ГДЕ. Результат выполнения выводится в таблицу, которую можно сохранить в Excel или скопировать в буфер обмена.

bsl
ВЫБРАТЬ
	Курсы.Период,
	Курсы.Валюта,
	Курс
ИЗ
	РегистрСведений.КурсыВалют КАК Курсы
ГДЕ
	Курсы.Период >= &НачалоПериода

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

Способ 3. Перенос между базами через обработку «Выгрузка и загрузка данных XML»

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

Порядок работы: откройте обработку, на вкладке выгрузки отметьте флажком нужный регистр сведений в дереве объектов метаданных, при необходимости настройте отбор по записям, укажите имя файла и выполните выгрузку. В базе-приёмнике откройте ту же обработку на вкладке загрузки, выберите файл и выполните загрузку.

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

Способ 4. Программная выгрузка в CSV, JSON или XML

Для регулярных выгрузок, интеграций и нестандартных форматов используется код на встроенном языке. Типовой подход: выполнить запрос к регистру, обойти выборку и записать данные в текстовый файл (CSV), сериализовать в JSON через объект ЗаписьJSON или в XML через ЗаписьXML.

Для CSV данные записываются построчно через объект ТекстовыйДокумент с разделителем — точкой с запятой или запятой. Для JSON удобно собирать массив структур и сериализовать его штатными средствами платформы. Ссылочные значения при выгрузке во внешние системы обычно заменяют на коды, наименования или GUID — в зависимости от того, как принимающая система идентифицирует объекты.

bsl
Запрос = Новый Запрос("ВЫБРАТЬ Период, Валюта.Код КАК КодВалюты, Курс ИЗ РегистрСведений.КурсыВалют");
Выборка = Запрос.Выполнить().Выбрать();
Текст = Новый ТекстовыйДокумент;
Пока Выборка.Следующий() Цикл
	Текст.ДобавитьСтроку(СтрШаблон("%1;%2;%3", Формат(Выборка.Период, "ДЛФ=D"), Выборка.КодВалюты, Формат(Выборка.Курс, "ЧРД=.")));
КонецЦикла;
Текст.Записать("C:\Exchange\kursy.csv", КодировкаТекста.UTF8);

Программный способ требует аккуратности с кодировкой (для кириллицы используйте UTF-8), с форматом дат и с разделителем дробной части чисел — несовпадение форматов — самая частая причина того, что файл корректно создаётся, но принимающая система читает его с ошибками.

Сравнение способов и выбор под задачу

Четыре метода закрывают разные сценарии, и выбирать стоит по цели выгрузки, а не по привычке. Ниже — сопоставление ключевых характеристик.

СпособКогда подходитОграниченияСохранение ссылок
Список → табличный документРазовая выгрузка для анализаМедленно на больших объёмахНет, только представления
Консоль запросовГибкие отборы и соединенияНужно право на внешние обработкиНет
Выгрузка/загрузка XMLПеренос между базами 1СТребуется идентичность конфигурацийДа
Программная выгрузкаРегулярные задачи, интеграцииНужны навыки разработкиПо выбору (коды, GUID)
Маршрут решения

Как выбрать действие

Нужно быстро отдать данные аналитику в ExcelВыгрузите список через «Вывести список» и сохраните в xlsx
Регистр переезжает в другую базу 1С с той же конфигурациейИспользуйте обработку «Выгрузка и загрузка данных XML»
Нужна часть записей по сложному условиюВыполните запрос в консоли запросов с отбором и сохраните результат
Выгрузка должна выполняться регулярно по расписаниюНапишите регламентное задание с программной выгрузкой в CSV или JSON

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

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

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

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

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

Количество строк в файле
Норма

Совпадает с числом записей в отобранном списке

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

Строк меньше — сработало ограничение вывода или обрыв выгрузки

Кириллица в CSV/текстовом файле
Норма

Текст читается при открытии в Excel или редакторе

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

Кракозябры — неверная кодировка, пересохраните в UTF-8

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

Поля содержат реальные элементы справочников

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

Значения «Объект не найден» — в приёмнике нет связанных данных

Даты в периодическом регистре
Норма

Первая и последняя даты соответствуют отбору

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

Период срезан — проверьте условия отбора и часовой пояс

Типичные ошибки
01
Выгрузка всего регистра без отбора при большом объёме — клиент зависает, файл оказывается неполным; решение: отбор по периоду и выгрузка порциями
02
Загрузка XML в рабочую базу без копии — существующие записи перезаписываются по ключам без возможности отката
03
Сохранение CSV в кодировке по умолчанию — кириллица превращается в нечитаемые символы в принимающей системе
04
Перенос регистра между базами с разными версиями конфигурации — часть полей теряется или загрузка падает с ошибкой
05
Выгрузка ссылок как наименований при подготовке к обратной загрузке — наименования не уникальны, сопоставление ломается

Особенности периодических регистров и регистров с режимом «Подчинение регистратору»

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

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

FAQ: частые вопросы о выгрузке регистров сведений

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

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

Как выгрузить регистр сведений в Excel без потери форматов чисел и дат?

Используйте вывод списка в табличный документ и сохранение в формате .xlsx — этот формат сохраняет типы данных. При сохранении в CSV даты и числа превращаются в текст, и формат придётся восстанавливать вручную в Excel.

Почему после загрузки XML в другую базу появились «битые ссылки»?

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

Как выгрузить только актуальные значения периодического регистра?

Используйте запрос к виртуальной таблице СрезПоследних с указанием даты среза. В списке регистра аналогичный результат даёт установка отбора по последней дате, но запрос надёжнее и работает быстрее на больших объёмах.

Что делать, если регистр содержит миллионы записей?

Не выгружайте его целиком через интерфейс. Разбейте выгрузку на порции по периоду или по значениям измерений с помощью запроса, либо используйте программную выгрузку с потоковой записью в файл. Для переноса между базами рассмотрите также типовые механизмы конвертации данных.

Можно ли автоматизировать регулярную выгрузку регистра в файл?

Да, через регламентное задание с процедурой программной выгрузки: запрос к регистру, формирование CSV/JSON и запись файла в сетевой каталог. В файловой базе регламентные задания выполняются при запущенном сеансе, в клиент-серверной — планировщиком на сервере.

Итог

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

Для разовой выгрузки в Excel достаточно списка регистра и вывода в табличный документ. Перенос между базами 1С выполняйте обработкой «Выгрузка и загрузка данных XML» и только после проверки на копии. Сложные отборы делайте запросом, регулярные выгрузки автоматизируйте кодом. Всегда сверяйте количество записей и проверяйте ссылочные поля после загрузки.