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

Автоматизация · 11 мин

Как создать CSV-файл в 1С: способы выгрузки и настройка

Как создать CSV-файл в 1С: выгрузка через обработки, типовые механизмы и код на встроенном языке. Разделители, кодировка, типичные ошибки и проверка результата.

CSV — простой текстовый формат, в котором значения разделены запятыми, точками с запятой или табуляцией. Именно его чаще всего требуют банки, маркетплейсы, сайты и сторонние учётные системы при обмене данными с 1С. Задача «создать CSV-файл» возникает при выгрузке номенклатуры, прайсов, контрагентов, остатков и проводок.

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

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

Когда какой способ выгрузки выбрать

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

Регулярный обмен — ежедневная выгрузка остатков на сайт, передача продаж в CRM, выгрузка выписок — разумнее автоматизировать. Здесь применяют либо готовые обработки (например, типовую «Выгрузку и загрузку данных XML» не путать с CSV), либо собственную процедуру, которую можно поставить в регламентное задание.

Маршрут решения

Как выбрать способ

Нужно один раз передать список или отчётСохраните табличный документ через «Файл → Сохранить как» в формате CSV
Выгрузка повторяется регулярно по одному шаблонуНапишите или закажите обработку с программной записью файла
Файл должен формироваться автоматически по расписаниюОформите выгрузку как регламентное задание в серверной базе
Нет прав на изменение конфигурацииИспользуйте внешнюю обработку — она не требует изменения конфигурации

Способ 1: сохранение табличного документа в CSV

Самый доступный метод, работающий без доработок. Сформируйте нужный отчёт или список (например, «Остатки товаров на складах»), затем откройте меню «Файл → Сохранить как» (или «Сохранить копию» в интерфейсе Такси). В списке типов файла выберите «Текстовый документ с разделителями (*.csv)» либо «Табличный документ» с последующим преобразованием — набор форматов зависит от версии платформы.

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

После сохранения откройте файл в Excel или текстовом редакторе и проверьте: каждая строка таблицы — одна строка файла, колонки разделены одним символом-разделителем, числа не содержат разрывов и непечатаемых символов.

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

Способ 2: программная выгрузка встроенным языком

Когда нужен контроль над каждой строкой — порядок колонок, формат чисел и дат, кавычки вокруг текстовых полей — файл формируют кодом. Базовый механизм: объект «ТекстовыйДокумент», в который построчно добавляются данные, собранные через запрос или выборку.

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

bsl
Запрос = Новый Запрос("ВЫБРАТЬ Номенклатура.Код, Номенклатура.Наименование ИЗ Справочник.Номенклатура КАК Номенклатура");
Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку("Код;Наименование");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Текст.ДобавитьСтроку(Выборка.Код + ";" + Выборка.Наименование);
КонецЦикла;
Текст.Записать("C:\Обмен\nomenklatura.csv", КодировкаТекста.UTF8);

Обратите внимание на детали, которые в примере решают 90% проблем: разделитель «;» вместо запятой (русская локаль Excel ожидает именно точку с запятой), явное указание кодировки UTF-8 при записи и строка заголовков первой строкой — многие системы-получатели требуют её наличия.

Если текстовые поля могут содержать сам разделитель или переводы строк, такие значения нужно заключать в двойные кавычки, а внутренние кавычки удваивать — это требование стандарта CSV. Пропуск этого шага — главная причина «разъезжающихся» колонок у получателя.

Настройка разделителя, кодировки и форматов данных

Три параметра определяют, откроется ли файл корректно у получателя: разделитель, кодировка и формат значений. Ошибка в любом из них делает файл формально существующим, но фактически непригодным.

ПараметрРекомендуемое значениеКогда выбрать другое
РазделительТочка с запятой (;)Запятая — если получатель строго требует RFC 4180 или работает в английской локали
КодировкаUTF-8Windows-1251 — для старых систем, не понимающих Unicode
Десятичный разделитель чиселТочкаЗапятая — только если это явно указано в требованиях получателя
Формат датыГГГГ-ММ-ДДДД.ММ.ГГГГ — если принимающая система российская и этого требует

Числа и даты при программной выгрузке форматируйте явно через функцию Формат() — иначе платформа выведет их по региональным настройкам сервера, и на другом компьютере результат может отличаться. Пробелы-разделители разрядов в числах (неразрывные пробелы) — частая скрытая причина того, что получатель видит текст вместо числа.

Выгрузка на клиенте и на сервере: где сохраняется файл

Тонкий момент, о котором забывают: в клиент-серверной базе код, выполняемый на сервере, пишет файл в файловую систему сервера, а не на компьютер пользователя. Путь «C:\Обмен\...» в серверной процедуре указывает на диск сервера, и пользователь файл там не найдёт.

Для выгрузки «пользователю на рабочий стол» файл сначала формируют на сервере во временном хранилище, затем передают на клиент и сохраняют через диалог выбора файла. В файловой базе на одном компьютере этой проблемы нет — путь доступен и серверу, и клиенту.

Также учитывайте права: у учётной записи, под которой работает сервер 1С, должны быть права на запись в целевую папку. Отсутствие прав проявляется как ошибка записи файла без внятного объяснения причины.

Проверка файла перед передачей

Прежде чем отправлять файл получателю, откройте его в простом текстовом редакторе (Блокнот, Notepad++), а не только в Excel. Excel «догадывается» и скрывает проблемы: редактор покажет файл как есть — реальные разделители, кавычки, пустые строки в конце.

Контрольные точки: количество строк совпадает с количеством записей в источнике плюс строка заголовка; в каждой строке одинаковое число разделителей; кириллица читается; числа без пробелов-разделителей; даты в ожидаемом формате. Для больших файлов достаточно проверить первые, последние и несколько случайных строк.

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

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

Открытие в текстовом редакторе
Норма

Строки ровные, разделитель одинаковый, кириллица читается

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

Кракозябры, «пляшущее» число колонок, лишние пустые строки

Открытие в Excel
Норма

Данные разложены по колонкам, числа — числами

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

Всё в одной колонке (неверный разделитель) или даты превратились в текст

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

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

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

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

Загрузка в систему-получатель
Норма

Импорт проходит без ошибок сопоставления полей

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

Ошибки формата, пропущенные значения, сдвиг колонок

Типичные ошибки и их последствия

Типичные ошибки
01
Разделитель-запятая при русской локали Excel — весь файл открывается одной колонкой; используйте точку с запятой или настройте импорт
02
Кодировка не указана при записи — получатель видит нечитаемые символы вместо кириллицы; всегда передавайте КодировкаТекста в метод Записать()
03
Итоговые и группировочные строки попадают в файл — у получателя появляются лишние записи и неверные суммы; выгружайте только детальные строки
04
Текст с разделителем внутри без кавычек — строки «разъезжаются», колонки сдвигаются; заключайте такие поля в двойные кавычки
05
Путь к файлу на сервере в клиент-серверной базе — пользователь не находит файл у себя; передавайте данные на клиент через временное хранилище
06
Неразрывные пробелы в числах — получатель трактует суммы как текст; форматируйте числа функцией Формат() с отключением группировки разрядов

Часто задаваемые вопросы

Чем CSV отличается от Excel-файла при выгрузке из 1С?

CSV — это чистый текст без форматирования, формул и нескольких листов: только строки и значения через разделитель. Excel-файл (xlsx) хранит оформление, типы ячеек и структуру книги. Для обмена между системами обычно требуют именно CSV — он читается любой программой, но не переносит ничего, кроме самих данных.

Можно ли создать CSV без доступа к конфигуратору?

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

Почему получатель требует разделитель-запятую, а у меня в Excel всё слипается?

Строгий стандарт CSV предполагает запятую, а русская локаль Windows по умолчанию использует точку с запятой как разделитель списков. Это не противоречие: файл с запятыми корректен, просто Excel в русской локали не разбивает его автоматически. Открывайте такой файл через «Данные → Из текста/CSV» с указанием разделителя вручную.

Как автоматизировать ежедневную выгрузку CSV?

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

Что делать, если файл очень большой и выгрузка тормозит?

Выбирайте данные порциями: в запросе используйте отборы по периоду или пакетную выборку, а файл записывайте построчно в цикле, не накапливая весь текст в памяти. Также уберите из выгрузки лишние поля — часто половина колонок получателю не нужна, а объём файла и время записи сокращаются заметно.

Нужно ли экранировать кавычки в текстовых полях?

Да, если поле заключено в кавычки и само содержит кавычки — по стандарту CSV внутренние кавычки удваиваются: значение ООО «Ромашка» записывается как "ООО ""Ромашка""". Если пропустить удвоение, принимающая программа оборвёт значение на первой внутренней кавычке и сдвинет остальные колонки строки.

Итог

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

Разовую выгрузку делайте сохранением табличного документа в CSV, регулярную — программной записью через ТекстовыйДокумент. Ключевые параметры: разделитель «;» для русской локали, кодировка UTF-8, явное форматирование чисел и дат, кавычки вокруг текста с разделителями. Перед передачей проверяйте файл в текстовом редакторе, а в клиент-серверной базе помните, что серверный код пишет файл на сервер.