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