Экспорт списка, отчёта или справочника 1С в CSV-файл с нужным разделителем и кодировкой
Содержание
Выгрузить из 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 строк руками намного дольше.
Выгрузка списка через «Еще → Вывести список»
Это стандартный способ, который работает в любой форме списка: справочник, журнал документов, регистр.
Шаги
- Откройте нужный список, например
Справочники → Товары и услуги → Номенклатурав Бухгалтерии 3.0. - Настройте отбор и сортировку. Если нужны не все строки, выделите нужные мышью с
CtrlилиShift. - Нажмите
Еще → Вывести список…. - В окне отметьте колонки, которые попадут в файл. Здесь доступны только колонки, которые есть в списке. Не хватает поля — сначала добавьте его через
Еще → Изменить форму…. - При необходимости включите флажок вывода только выделенных строк.
- В поле «Выводить в» оставьте «Табличный документ» и нажмите ОК.
- Откроется таблица. Нажмите
Ctrl+Sили откройте главное меню окна (кнопка с тремя полосками в заголовке) и выберитеФайл → Сохранить как…. - Выберите тип «Лист Excel 2007-…» (
.xlsx) и сохраните.
Дальше файл переводится в CSV в табличном редакторе — об этом раздел ниже.
Почему не сразу CSV
В окне сохранения табличного документа 1С нет отдельного типа «CSV». Есть .mxl, .xls, .xlsx, .ods, .pdf, .html, .docx и текстовый формат .txt. Текстовый вариант — ближайший к CSV: колонки в нём разделены табуляцией. Если получателю подходит табуляция, достаточно сохранить .txt и переименовать в .csv. Если нужна запятая или точка с запятой — идите через Excel или LibreOffice.
Вариант «Выводить в: Текстовый документ» в окне вывода списка даёт текст без гарантии нужного разделителя и формата чисел. Для обмена с другими программами он ненадёжен — проверяйте результат на 5–10 строках, прежде чем отдавать файл.
Отчёт, справочник, документы: что откуда выгружать
Список даёт только то, что видно в колонках. Для остального нужен отчёт.
| Что нужно в CSV | Откуда брать | Как вывести |
|---|---|---|
| Реквизиты справочника (код, наименование, артикул, ИНН) | Форма списка справочника | Еще → Вывести список… |
| Шапки документов (дата, номер, контрагент, сумма) | Журнал или список документов | Еще → Вывести список… |
| Строки табличных частей (товары в накладных) | Универсальный отчёт или отчёт по продажам/закупкам | Сформировать → сохранить |
| Остатки и обороты по счетам | ОСВ, анализ счёта, карточка счёта | Сформировать → сохранить |
| Произвольная выборка с условиями | Своя обработка или консоль запросов | Код на ЗаписьТекста |
Выгрузка отчёта
- Сформируйте отчёт с нужными отборами и группировками.
- Для CSV уберите лишнее оформление в настройках отчёта: итоги по группам, многоуровневые заголовки, пустые строки. В «плоской» таблице каждая строка — одна запись, иначе после конвертации придётся вычищать итоговые строки.
- Нажмите кнопку сохранения на панели отчёта (значок дискеты) или
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 (самый управляемый вариант)
- Откройте сохранённый
.xlsx. Файл → Сохранить как…, тип «Текст CSV (.csv)».- Поставьте флажок «Изменить настройки фильтра» и нажмите «Сохранить».
- В окне параметров выберите кодировку (например, «Юникод (UTF-8)»), разделитель полей (
,,;или табуляция) и символ кавычек". - Включите заключение всех текстовых ячеек в кавычки, если в наименованиях встречаются запятые.
Через Excel
- Откройте
.xlsx, проверьте, что в книге один лист без объединённых ячеек над таблицей. Файл → Сохранить как, выберите «CSV UTF-8» или «CSV (разделители — запятые)».- На предупреждение о том, что сохранится только текущий лист, ответьте «Да».
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 все лицензии заняты, выгрузка не стартует. Ставьте расписание на время, когда пользователей нет.
- 📝 Пусть обработка пишет в отдельный лог дату, число строк и ошибку, если она была. Так вы узнаете о сбое не от получателя файла.
;, а в файле запятые (или наоборот). Пересохраните с нужным разделителем или откройте файл через импорт данных с явным выбором разделителя.ПолеCSV.ЧГ=0, ЧРД=. или ЧРД=,.Частые вопросы про экспорт из 1С в CSV
Можно ли выгрузить CSV из 1С без Excel?
.txt — колонки будут разделены табуляцией. Для другого разделителя подойдёт бесплатный LibreOffice или своя обработка на ЗаписьТекста.