Справочники и Данные · 13 мин
Как выгрузить регистры сведений из 1С
Практические способы выгрузки регистров сведений из 1С: через список, консоль запросов, обработку выгрузки в XML и код. Проверка результата и типичные ошибки.
Регистры сведений в 1С хранят данные, которые нельзя выгрузить «одной кнопкой» вместе с документами: курсы валют, цены номенклатуры, штрихкоды, контактную информацию, настройки обмена. Поэтому задача выгрузки регистра сведений возникает при миграции между базами, подготовке данных для анализа в Excel, передаче информации во внешние системы или резервном копировании критичных настроек.
Универсального «лучшего» способа нет: выбор зависит от объёма данных, наличия прав администратора, конфигурации (типовая или самописная) и того, куда пойдут данные дальше — в другую базу 1С, в табличный редактор или в стороннюю систему. Ниже разобраны четыре рабочих метода с пошаговыми действиями, ограничениями и проверкой результата.
Что проверить перед выгрузкой
До начала работы убедитесь, что у вас есть права на чтение нужного регистра. В типовых конфигурациях рядовые пользователи часто видят документы, но не имеют доступа к регистрам напрямую — тогда список регистра просто не откроется. Проверить доступ можно через «Все функции» (в режиме тонкого клиента: меню → Сервис → Все функции, если пункт доступен) или попросив администратора временно выдать роль.
Оцените объём регистра. Регистр с несколькими тысячами записей выгружается любым способом, а регистр с миллионами записей (например, история цен за много лет) через интерфейс списка может «подвесить» клиентское приложение. Для больших объёмов сразу планируйте выгрузку запросом с отбором по периоду или измерениям.
Определите целевой формат. Если данные нужны человеку для анализа — подойдут Excel или CSV. Если регистр переезжает в другую базу 1С с идентичной конфигурацией — нужен XML с сохранением ссылок. Если данные уходят во внешнюю систему — чаще всего требуются CSV, JSON или XML согласованной структуры, и ссылочные значения придётся заменять на наименования или коды.
Можно выгружать через интерфейс без доработок
Запросить роль у администратора или выгружать запросом
Использовать отбор по периоду и выгрузку порциями
Выбирать формат XML с сохранением ссылочной целостности
Способ 1. Выгрузка через список регистра в табличный документ
Самый быстрый метод для регистров небольшого объёма. Откройте список регистра сведений: в типовых конфигурациях он находится в разделе, соответствующем предметной области (например, курсы валют — в разделе «НСИ и администрирование»), либо через «Все функции» → «Регистры сведений» → нужный регистр.
Установите отбор, если нужна не вся таблица: через кнопку «Ещё» → «Настроить список» добавьте условия по периоду, организации, номенклатуре и другим измерениям. Затем выведите список в табличный документ: «Ещё» → «Вывести список». В появившемся диалоге отметьте нужные колонки и подтвердите вывод.
Полученный табличный документ сохраните через Файл → Сохранить как, выбрав формат — лист Excel (.xlsx), табличный документ (.mxl) или текстовый файл. Проверьте, что количество строк в файле совпадает с количеством записей в списке после отбора.
- 1Откройте список регистра сведений через меню раздела или «Все функции»
- 2Установите отбор через «Ещё» → «Настроить список», если нужна часть данных
- 3Выполните «Ещё» → «Вывести список» и отметьте нужные колонки
- 4Сохраните табличный документ в нужном формате через Файл → Сохранить как
- 5Сверьте количество строк в файле с количеством записей в списке
Ограничение метода: он выгружает только видимые колонки и только те записи, которые клиент смог отобразить. При очень больших списках платформа может вывести данные не полностью или работать медленно. Кроме того, ссылочные поля выгружаются как представления (наименования), а не как ссылки — для обратной загрузки в 1С такой файл не подходит.
Способ 2. Выгрузка через консоль запросов
Консоль запросов — внешняя обработка, которую администраторы и разработчики открывают через Файл → Открыть в режиме предприятия. Она позволяет выполнить произвольный запрос к регистру и сохранить результат. Это оптимальный путь, когда нужен сложный отбор, соединение с другими таблицами или вычисляемые поля.
Текст запроса для периодического регистра сведений выглядит так: выбираются измерения, ресурсы и поле Период из таблицы вида РегистрСведений.ИмяРегистра, при необходимости добавляется виртуальная таблица среза последних или условие ГДЕ. Результат выполнения выводится в таблицу, которую можно сохранить в Excel или скопировать в буфер обмена.
ВЫБРАТЬ
Курсы.Период,
Курсы.Валюта,
Курс
ИЗ
РегистрСведений.КурсыВалют КАК Курсы
ГДЕ
Курсы.Период >= &НачалоПериодаУчтите, что консоль запросов — это внешний инструмент, и её использование требует права на открытие внешних обработок. В некоторых организациях это право заблокировано политиками безопасности, тогда потребуется участие администратора.
Способ 3. Перенос между базами через обработку «Выгрузка и загрузка данных XML»
Когда регистр нужно перенести из одной базы 1С в другую с идентичной конфигурацией (например, из рабочей в тестовую или при консолидации филиалов), стандартным инструментом служит обработка «Выгрузка и загрузка данных XML». Она входит в состав типовых конфигураций или доступна отдельно, и работает в обе стороны: выгружает данные в XML-файл и загружает их обратно с сохранением ссылок.
Порядок работы: откройте обработку, на вкладке выгрузки отметьте флажком нужный регистр сведений в дереве объектов метаданных, при необходимости настройте отбор по записям, укажите имя файла и выполните выгрузку. В базе-приёмнике откройте ту же обработку на вкладке загрузки, выберите файл и выполните загрузку.
Важное ограничение: конфигурации источника и приёмника должны совпадать по составу полей регистра. Если в одной базе регистр доработан (добавлены реквизиты или измерения), загрузка может завершиться ошибкой или потерей данных. Перед переносом сверьте версии конфигураций обеих баз.
Способ 4. Программная выгрузка в CSV, JSON или XML
Для регулярных выгрузок, интеграций и нестандартных форматов используется код на встроенном языке. Типовой подход: выполнить запрос к регистру, обойти выборку и записать данные в текстовый файл (CSV), сериализовать в JSON через объект ЗаписьJSON или в XML через ЗаписьXML.
Для CSV данные записываются построчно через объект ТекстовыйДокумент с разделителем — точкой с запятой или запятой. Для JSON удобно собирать массив структур и сериализовать его штатными средствами платформы. Ссылочные значения при выгрузке во внешние системы обычно заменяют на коды, наименования или GUID — в зависимости от того, как принимающая система идентифицирует объекты.
Запрос = Новый Запрос("ВЫБРАТЬ Период, Валюта.Код КАК КодВалюты, Курс ИЗ РегистрСведений.КурсыВалют");
Выборка = Запрос.Выполнить().Выбрать();
Текст = Новый ТекстовыйДокумент;
Пока Выборка.Следующий() Цикл
Текст.ДобавитьСтроку(СтрШаблон("%1;%2;%3", Формат(Выборка.Период, "ДЛФ=D"), Выборка.КодВалюты, Формат(Выборка.Курс, "ЧРД=.")));
КонецЦикла;
Текст.Записать("C:\Exchange\kursy.csv", КодировкаТекста.UTF8);Программный способ требует аккуратности с кодировкой (для кириллицы используйте UTF-8), с форматом дат и с разделителем дробной части чисел — несовпадение форматов — самая частая причина того, что файл корректно создаётся, но принимающая система читает его с ошибками.
Сравнение способов и выбор под задачу
Четыре метода закрывают разные сценарии, и выбирать стоит по цели выгрузки, а не по привычке. Ниже — сопоставление ключевых характеристик.
| Способ | Когда подходит | Ограничения | Сохранение ссылок |
|---|---|---|---|
| Список → табличный документ | Разовая выгрузка для анализа | Медленно на больших объёмах | Нет, только представления |
| Консоль запросов | Гибкие отборы и соединения | Нужно право на внешние обработки | Нет |
| Выгрузка/загрузка XML | Перенос между базами 1С | Требуется идентичность конфигураций | Да |
| Программная выгрузка | Регулярные задачи, интеграции | Нужны навыки разработки | По выбору (коды, GUID) |
Как выбрать действие
Проверка результата и типичные ошибки
После выгрузки обязательно сверьте полноту данных. Минимальная проверка — количество записей: сравните число строк в файле с количеством записей в регистре после применённого отбора. Для периодических регистров дополнительно проверьте граничные даты: первая и последняя даты в файле должны соответствовать ожидаемому диапазону.
При загрузке в базу-приёмник проверьте несколько записей выборочно: откройте в обеих базах одну и ту же запись (по ключевым измерениям) и сравните значения ресурсов. Также убедитесь, что ссылочные поля в приёмнике указывают на существующие элементы справочников, а не на «битые» ссылки вида «Объект не найден».
Как проверить результат
Совпадает с числом записей в отобранном списке
Строк меньше — сработало ограничение вывода или обрыв выгрузки
Текст читается при открытии в Excel или редакторе
Кракозябры — неверная кодировка, пересохраните в UTF-8
Поля содержат реальные элементы справочников
Значения «Объект не найден» — в приёмнике нет связанных данных
Первая и последняя даты соответствуют отбору
Период срезан — проверьте условия отбора и часовой пояс
Особенности периодических регистров и регистров с режимом «Подчинение регистратору»
Периодические регистры сведений хранят историю изменений, и при выгрузке нужно решить, что именно требуется: вся история, срез последних значений на дату или срез первых. В запросе для этого используются виртуальные таблицы СрезПоследних и СрезПервых с параметром-датой. Выгрузка полной таблицы вместо среза — частая причина того, что принимающая сторона получает в разы больше строк, чем ожидала.
Регистры сведений, подчинённые регистратору, записываются документами, и выгружать их отдельно от документов имеет смысл только для анализа. При переносе между базами такие записи обычно переносятся вместе с документами-регистраторами: если выгрузить регистр без документов, в приёмнике появятся записи, ссылающиеся на несуществующие регистраторы.
FAQ: частые вопросы о выгрузке регистров сведений
Можно ли выгрузить регистр сведений без прав администратора?
Да, если у вашей роли есть право чтения конкретного регистра. Достаточно открыть список регистра и вывести его в табличный документ. Если регистр недоступен, потребуется администратор: он либо выдаст роль, либо выполнит выгрузку сам через запрос или обработку.
Как выгрузить регистр сведений в Excel без потери форматов чисел и дат?
Используйте вывод списка в табличный документ и сохранение в формате .xlsx — этот формат сохраняет типы данных. При сохранении в CSV даты и числа превращаются в текст, и формат придётся восстанавливать вручную в Excel.
Почему после загрузки XML в другую базу появились «битые ссылки»?
Регистр ссылается на элементы справочников, которых нет в базе-приёмнике. Перед загрузкой регистра перенесите связанные справочники или включите их в ту же выгрузку — обработка «Выгрузка и загрузка данных XML» позволяет отметить несколько объектов сразу.
Как выгрузить только актуальные значения периодического регистра?
Используйте запрос к виртуальной таблице СрезПоследних с указанием даты среза. В списке регистра аналогичный результат даёт установка отбора по последней дате, но запрос надёжнее и работает быстрее на больших объёмах.
Что делать, если регистр содержит миллионы записей?
Не выгружайте его целиком через интерфейс. Разбейте выгрузку на порции по периоду или по значениям измерений с помощью запроса, либо используйте программную выгрузку с потоковой записью в файл. Для переноса между базами рассмотрите также типовые механизмы конвертации данных.
Можно ли автоматизировать регулярную выгрузку регистра в файл?
Да, через регламентное задание с процедурой программной выгрузки: запрос к регистру, формирование CSV/JSON и запись файла в сетевой каталог. В файловой базе регламентные задания выполняются при запущенном сеансе, в клиент-серверной — планировщиком на сервере.
Что важно запомнить
Для разовой выгрузки в Excel достаточно списка регистра и вывода в табличный документ. Перенос между базами 1С выполняйте обработкой «Выгрузка и загрузка данных XML» и только после проверки на копии. Сложные отборы делайте запросом, регулярные выгрузки автоматизируйте кодом. Всегда сверяйте количество записей и проверяйте ссылочные поля после загрузки.