Экспорт списка, отчёта или справочника 1С в CSV-файл с нужным разделителем и кодировкой

· 10 мин

Содержание

Выгрузить из 1С в формате CSV можно тремя путями. Быстрый: откройте список или отчёт, выведите его в табличный документ (Еще → Вывести список…), сохраните в .xlsx и уже в Excel или LibreOffice пересохраните в CSV. Точный: небольшая обработка, которая пишет файл через ЗаписьТекста с вашим разделителем и кодировкой. Автоматический: та же обработка по расписанию.

Первый способ подходит для разовой выгрузки на 50–5000 строк. Второй — когда файл забирает другая программа (сайт, маркетплейс, BI) и ей важен каждый символ. Третий — когда выгрузка нужна каждый день. Всё ниже относится к платформе 8.3 с интерфейсом «Такси» и не зависит от конфигурации: команда вывода списка — платформенная, она есть и в Бухгалтерии 3.0, и в ЗУП 3.1, и в УТ 11.

Что подготовить перед экспортом в CSV

CSV — это обычный текст: одна строка файла — одна строка таблицы, поля разделены символом. Никакого оформления, формул и объединённых ячеек в нём нет. Поэтому до выгрузки решите четыре вопроса.

  • 📋 Источник. Список справочника или журнал документов — если нужны поля «шапки». Отчёт — если нужны суммы, обороты, остатки или строки табличных частей.
  • 🔣 Разделитель. Русский Excel ждёт точку с запятой ;. Большинство сервисов и скриптов — запятую ,. Иногда просят табуляцию.
  • 🔤 Кодировка. UTF-8 (с BOM или без) или Windows-1251. Ошибка здесь даёт «кракозябры» вместо кириллицы.
  • 🔢 Формат чисел и дат. Десятичная запятая или точка, нужны ли пробелы между разрядами, дата 31.12.2025 или 2025-12-31.

Спросите эти четыре параметра у того, кто будет принимать файл. Это сэкономит пару итераций «не открывается — переделайте».

Сначала отфильтруйте данные в самой 1С: отбор по периоду, организации, группе номенклатуры. Чистить CSV на 20 000 строк руками намного дольше.

Выгрузка списка через «Еще → Вывести список»

Это стандартный способ, который работает в любой форме списка: справочник, журнал документов, регистр.

Шаги

  1. Откройте нужный список, например Справочники → Товары и услуги → Номенклатура в Бухгалтерии 3.0.
  2. Настройте отбор и сортировку. Если нужны не все строки, выделите нужные мышью с Ctrl или Shift.
  3. Нажмите Еще → Вывести список….
  4. В окне отметьте колонки, которые попадут в файл. Здесь доступны только колонки, которые есть в списке. Не хватает поля — сначала добавьте его через Еще → Изменить форму….
  5. При необходимости включите флажок вывода только выделенных строк.
  6. В поле «Выводить в» оставьте «Табличный документ» и нажмите ОК.
  7. Откроется таблица. Нажмите Ctrl+S или откройте главное меню окна (кнопка с тремя полосками в заголовке) и выберите Файл → Сохранить как….
  8. Выберите тип «Лист Excel 2007-…» (.xlsx) и сохраните.

Дальше файл переводится в CSV в табличном редакторе — об этом раздел ниже.

Почему не сразу CSV

В окне сохранения табличного документа 1С нет отдельного типа «CSV». Есть .mxl, .xls, .xlsx, .ods, .pdf, .html, .docx и текстовый формат .txt. Текстовый вариант — ближайший к CSV: колонки в нём разделены табуляцией. Если получателю подходит табуляция, достаточно сохранить .txt и переименовать в .csv. Если нужна запятая или точка с запятой — идите через Excel или LibreOffice.

Вариант «Выводить в: Текстовый документ» в окне вывода списка даёт текст без гарантии нужного разделителя и формата чисел. Для обмена с другими программами он ненадёжен — проверяйте результат на 5–10 строках, прежде чем отдавать файл.

Отчёт, справочник, документы: что откуда выгружать

Список даёт только то, что видно в колонках. Для остального нужен отчёт.

Что нужно в CSVОткуда братьКак вывести
Реквизиты справочника (код, наименование, артикул, ИНН)Форма списка справочникаЕще → Вывести список…
Шапки документов (дата, номер, контрагент, сумма)Журнал или список документовЕще → Вывести список…
Строки табличных частей (товары в накладных)Универсальный отчёт или отчёт по продажам/закупкамСформировать → сохранить
Остатки и обороты по счетамОСВ, анализ счёта, карточка счётаСформировать → сохранить
Произвольная выборка с условиямиСвоя обработка или консоль запросовКод на ЗаписьТекста

Выгрузка отчёта

  1. Сформируйте отчёт с нужными отборами и группировками.
  2. Для CSV уберите лишнее оформление в настройках отчёта: итоги по группам, многоуровневые заголовки, пустые строки. В «плоской» таблице каждая строка — одна запись, иначе после конвертации придётся вычищать итоговые строки.
  3. Нажмите кнопку сохранения на панели отчёта (значок дискеты) или Ctrl+S, выберите .xlsx.

В Бухгалтерии 3.0 для строк документов удобен Отчеты → Стандартные отчеты → Универсальный отчет: в нём можно выбрать тип «Документ», конкретный вид документа и его табличную часть. Получится таблица «документ — товар — количество — сумма», которую легко превратить в CSV.

Настройка разделителя и кодировки при сохранении в CSV

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

ПрограммаРазделительКодировкаКогда выбирать
Excel, тип «CSV (разделители — запятые)»Берётся из региональных настроек Windows, в русской локали ;Windows-1251Файл откроют в русском Excel или 1С
Excel, тип «CSV UTF-8»Тоже из региональных настроекUTF-8 с BOMСервису нужна UTF-8, кириллица в данных
LibreOffice Calc, «Текст CSV»Любой, задаётся вручнуюЛюбая, задаётся вручнуюНужен точный формат: запятая, кавычки, UTF-8 без BOM

Через LibreOffice Calc (самый управляемый вариант)

  1. Откройте сохранённый .xlsx.
  2. Файл → Сохранить как…, тип «Текст CSV (.csv)».
  3. Поставьте флажок «Изменить настройки фильтра» и нажмите «Сохранить».
  4. В окне параметров выберите кодировку (например, «Юникод (UTF-8)»), разделитель полей (,, ; или табуляция) и символ кавычек ".
  5. Включите заключение всех текстовых ячеек в кавычки, если в наименованиях встречаются запятые.

Через Excel

  1. Откройте .xlsx, проверьте, что в книге один лист без объединённых ячеек над таблицей.
  2. Файл → Сохранить как, выберите «CSV UTF-8» или «CSV (разделители — запятые)».
  3. На предупреждение о том, что сохранится только текущий лист, ответьте «Да».

Excel сам меняет разделитель на ; в русской Windows, хоть в названии типа и написано «запятые». Нужна именно запятая — меняйте «Разделитель элементов списка» в региональных параметрах Windows или берите LibreOffice.

Не открывайте готовый CSV в Excel и не сохраняйте его повторно перед отправкой. Excel превращает артикулы вида 00012 в 12, длинные штрихкоды — в 4,6E+12, а строки вида 1-2 — в даты. Если нужно посмотреть файл, откройте его в «Блокноте» или Notepad++.

Свой файл без посредников: обработка на ЗаписьТекста

Когда CSV забирает программа, а не человек, ручная конвертация мешает: каждый раз риск ошибиться в типе файла. Надёжнее собрать файл кодом. Это можно сделать во внешней обработке (.epf) или в расширении конфигурации — типовую конфигурацию снимать с поддержки не придётся.

Пример выгружает номенклатуру Бухгалтерии 3.0 с разделителем ; в UTF-8:

&НаСервереБезКонтекста
Функция ПолеCSV(Значение)

	Если ТипЗнч(Значение) = Тип("Число") Тогда
		Текст = Формат(Значение, "ЧРД=.; ЧГ=0; ЧН=0");
	ИначеЕсли ТипЗнч(Значение) = Тип("Дата") Тогда
		Текст = Формат(Значение, "ДФ=dd.MM.yyyy");
	Иначе
		Текст = Строка(Значение);
	КонецЕсли;

	Если СтрНайти(Текст, ";") > 0
		Или СтрНайти(Текст, """") > 0
		Или СтрНайти(Текст, Символы.ПС) > 0 Тогда
		Текст = """" + СтрЗаменить(Текст, """", """""") + """";
	КонецЕсли;

	Возврат Текст;

КонецФункции

&НаСервереБезКонтекста
Процедура ВыгрузитьНоменклатуру(ИмяФайла)

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Н.Код КАК Код,
	|	Н.Наименование КАК Наименование,
	|	Н.Артикул КАК Артикул
	|ИЗ
	|	Справочник.Номенклатура КАК Н
	|ГДЕ
	|	НЕ Н.ЭтоГруппа
	|	И НЕ Н.ПометкаУдаления
	|УПОРЯДОЧИТЬ ПО
	|	Н.Наименование";

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

	Запись = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
	Запись.ЗаписатьСтроку("Код;Наименование;Артикул");

	Пока Выборка.Следующий() Цикл
		Поля = Новый Массив;
		Поля.Добавить(ПолеCSV(Выборка.Код));
		Поля.Добавить(ПолеCSV(Выборка.Наименование));
		Поля.Добавить(ПолеCSV(Выборка.Артикул));
		Запись.ЗаписатьСтроку(СтрСоединить(Поля, ";"));
	КонецЦикла;

	Запись.Закрыть();

КонецПроцедуры

Что здесь решено и почему:

  • 🔢 Формат(…, "ЧРД=.; ЧГ=0") — десятичная точка и без пробелов между разрядами. Простое Строка(1234.5) даст 1 234,5 с неразрывным пробелом, и принимающая программа такое число не прочитает. Нужна запятая — поставьте ЧРД=,.
  • 📅 ДФ=dd.MM.yyyy задаёт дату явно, без времени 0:00:00.
  • ✂️ Поле с разделителем, кавычкой или переносом строки заключается в кавычки, а внутренние кавычки удваиваются. Наименование ООО "Ромашка"; склад 2 не развалит строку на лишние колонки.
  • 🔤 КодировкаТекста.UTF8 пишет файл с BOM — русский Excel откроет его правильно. Нужна Windows-1251 — используйте КодировкаТекста.ANSI или строку "windows-1251" вторым параметром.

СтрСоединить появилась в платформе 8.3.6, в актуальных релизах она есть всегда.

Где окажется файл

Процедура выполняется на сервере. В файловой базе это ваш компьютер, в клиент-серверной — сервер 1С. Для ручного запуска в клиент-серверной базе путь вроде C:\Выгрузка\nom.csv создаст файл на сервере, а не у пользователя. Либо укажите сетевую папку, доступную службе сервера 1С, либо передайте файл на клиент через временное хранилище (ПоместитьВоВременноеХранилище и ПолучитьФайл).

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

Выгрузка в CSV по расписанию

Если файл нужен каждый день к 7:00, есть два рабочих варианта.

Регламентное задание в расширении

Процедуру выгрузки оформляют в общем модуле расширения и привязывают к регламентному заданию с расписанием. Расписание и включение задания настраиваются в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.

  • 🖥️ В клиент-серверной базе задание выполняет сервер 1С, даже когда никто не работает . Папка назначения должна быть доступна учётной записи, под которой запущена служба сервера.
  • 📁 В файловой базе регламентные задания выполняются, только пока открыт хотя бы один сеанс (или база опубликована на веб-сервере). Для ночной выгрузки этот вариант ненадёжен.

Планировщик Windows и пакетный запуск

Для файловой базы проще запускать 1С с параметрами командной строки по расписанию Планировщика заданий Windows. Обработка с выгрузкой в модуле формы при открытии делает экспорт и завершает работу.

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /F "D:\Bases\Buh" /N "Выгрузка" /P "пароль" /Execute "D:\Scripts\export_csv.epf" /DisableStartupDialogs /DisableStartupMessages

Вместо 8.3.xx.xxxx подставьте номер установленной платформы. Для серверной базы вместо /F "путь" указывают /S "сервер\имя_базы".

  • 👤 Заведите отдельного пользователя «Выгрузка» с правами только на чтение нужных данных. Пароль в .bat лежит открытым текстом — ограничьте доступ к файлу.
  • 🔑 Каждый запуск занимает лицензию на время работы. Если в 7:00 все лицензии заняты, выгрузка не стартует. Ставьте расписание на время, когда пользователей нет.
  • 📝 Пусть обработка пишет в отдельный лог дату, число строк и ошибку, если она была. Так вы узнаете о сбое не от получателя файла.
Диагностика: выберите симптом

Частые вопросы про экспорт из 1С в CSV

Можно ли выгрузить CSV из 1С без Excel?
Да. Сохраните табличный документ как .txt — колонки будут разделены табуляцией. Для другого разделителя подойдёт бесплатный LibreOffice или своя обработка на ЗаписьТекста.
Сколько строк выдержит выгрузка через «Вывести список»?
Жёсткого лимита нет, но на 100 000 строк и больше формирование табличного документа занимает минуты и много памяти клиента. Большие объёмы выгружайте обработкой: она пишет файл построчно.
Чем UTF-8 с BOM отличается от UTF-8 без BOM?
BOM — три служебных байта в начале файла, по ним Excel понимает, что это UTF-8. Часть скриптов и сервисов эти байты не ждёт и считает их частью первого заголовка. Если первая колонка «не находится», попробуйте файл без BOM.
Как выгрузить CSV для загрузки в другую базу 1С?
Для переноса между базами 1С CSV — не лучший выбор: теряются ссылки и типы. Для этого есть обмен данными или выгрузка в XML. CSV оправдан, когда принимающая сторона — не 1С.
Почему при выгрузке ОСВ в CSV получаются лишние строки?
В отчёте остались итоги по группам и шапка из нескольких строк. Выключите их в настройках отчёта или после конвертации удалите строки, где пусто в колонке счёта.