Автоматизация · 11 мин
Как создать CSV-файл в 1С: способы выгрузки и настройка
Как создать CSV-файл в 1С: выгрузка через обработки, типовые механизмы и код на встроенном языке. Разделители, кодировка, типичные ошибки и проверка результата.
CSV — простой текстовый формат, в котором значения разделены запятыми, точками с запятой или табуляцией. Именно его чаще всего требуют банки, маркетплейсы, сайты и сторонние учётные системы при обмене данными с 1С. Задача «создать CSV-файл» возникает при выгрузке номенклатуры, прайсов, контрагентов, остатков и проводок.
В 1С есть несколько путей решения: типовые механизмы выгрузки, универсальные обработки, сохранение табличного документа и программная запись файла встроенным языком. Выбор зависит от того, разовая это операция или регулярный обмен, и есть ли доступ к конфигуратору.
Ниже разобраны все рабочие способы — от простого сохранения отчёта до написания собственной процедуры выгрузки, а также настройка разделителя, кодировки и проверка результата перед передачей файла контрагенту.
Когда какой способ выгрузки выбрать
Разовая выгрузка «здесь и сейчас» не требует программирования: почти любой отчёт в 1С можно сохранить в текстовый формат с разделителями. Этого достаточно, чтобы передать прайс менеджеру или список контрагентов бухгалтеру на аутсорсинге.
Регулярный обмен — ежедневная выгрузка остатков на сайт, передача продаж в CRM, выгрузка выписок — разумнее автоматизировать. Здесь применяют либо готовые обработки (например, типовую «Выгрузку и загрузку данных XML» не путать с CSV), либо собственную процедуру, которую можно поставить в регламентное задание.
Как выбрать способ
Способ 1: сохранение табличного документа в CSV
Самый доступный метод, работающий без доработок. Сформируйте нужный отчёт или список (например, «Остатки товаров на складах»), затем откройте меню «Файл → Сохранить как» (или «Сохранить копию» в интерфейсе Такси). В списке типов файла выберите «Текстовый документ с разделителями (*.csv)» либо «Табличный документ» с последующим преобразованием — набор форматов зависит от версии платформы.
Перед сохранением приведите таблицу к «плоскому» виду: уберите группировки, итоги, шапки с объединёнными ячейками. CSV — это строго строки и колонки; объединённые ячейки и многоуровневые заголовки при сохранении превратятся в мусор из лишних разделителей.
После сохранения откройте файл в Excel или текстовом редакторе и проверьте: каждая строка таблицы — одна строка файла, колонки разделены одним символом-разделителем, числа не содержат разрывов и непечатаемых символов.
- 1Сформируйте отчёт или список с нужными данными
- 2Сверните группировки и отключите лишние итоги
- 3Откройте «Файл → Сохранить как»
- 4Выберите тип файла «Текстовый документ с разделителями (*.csv)»
- 5Укажите папку и имя файла, сохраните
- 6Откройте файл и проверьте структуру строк и разделитель
Способ 2: программная выгрузка встроенным языком
Когда нужен контроль над каждой строкой — порядок колонок, формат чисел и дат, кавычки вокруг текстовых полей — файл формируют кодом. Базовый механизм: объект «ТекстовыйДокумент», в который построчно добавляются данные, собранные через запрос или выборку.
Типовая логика процедуры: выполнить запрос к данным, пройти по выборке циклом, для каждой строки собрать значения полей в одну строку через разделитель и добавить её в текстовый документ. В конце — метод Записать() с указанием пути и кодировки.
Запрос = Новый Запрос("ВЫБРАТЬ Номенклатура.Код, Номенклатура.Наименование ИЗ Справочник.Номенклатура КАК Номенклатура");
Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку("Код;Наименование");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Текст.ДобавитьСтроку(Выборка.Код + ";" + Выборка.Наименование);
КонецЦикла;
Текст.Записать("C:\Обмен\nomenklatura.csv", КодировкаТекста.UTF8);Обратите внимание на детали, которые в примере решают 90% проблем: разделитель «;» вместо запятой (русская локаль Excel ожидает именно точку с запятой), явное указание кодировки UTF-8 при записи и строка заголовков первой строкой — многие системы-получатели требуют её наличия.
Если текстовые поля могут содержать сам разделитель или переводы строк, такие значения нужно заключать в двойные кавычки, а внутренние кавычки удваивать — это требование стандарта CSV. Пропуск этого шага — главная причина «разъезжающихся» колонок у получателя.
Настройка разделителя, кодировки и форматов данных
Три параметра определяют, откроется ли файл корректно у получателя: разделитель, кодировка и формат значений. Ошибка в любом из них делает файл формально существующим, но фактически непригодным.
| Параметр | Рекомендуемое значение | Когда выбрать другое |
|---|---|---|
| Разделитель | Точка с запятой (;) | Запятая — если получатель строго требует RFC 4180 или работает в английской локали |
| Кодировка | UTF-8 | Windows-1251 — для старых систем, не понимающих Unicode |
| Десятичный разделитель чисел | Точка | Запятая — только если это явно указано в требованиях получателя |
| Формат даты | ГГГГ-ММ-ДД | ДД.ММ.ГГГГ — если принимающая система российская и этого требует |
Числа и даты при программной выгрузке форматируйте явно через функцию Формат() — иначе платформа выведет их по региональным настройкам сервера, и на другом компьютере результат может отличаться. Пробелы-разделители разрядов в числах (неразрывные пробелы) — частая скрытая причина того, что получатель видит текст вместо числа.
Выгрузка на клиенте и на сервере: где сохраняется файл
Тонкий момент, о котором забывают: в клиент-серверной базе код, выполняемый на сервере, пишет файл в файловую систему сервера, а не на компьютер пользователя. Путь «C:\Обмен\...» в серверной процедуре указывает на диск сервера, и пользователь файл там не найдёт.
Для выгрузки «пользователю на рабочий стол» файл сначала формируют на сервере во временном хранилище, затем передают на клиент и сохраняют через диалог выбора файла. В файловой базе на одном компьютере этой проблемы нет — путь доступен и серверу, и клиенту.
Также учитывайте права: у учётной записи, под которой работает сервер 1С, должны быть права на запись в целевую папку. Отсутствие прав проявляется как ошибка записи файла без внятного объяснения причины.
Проверка файла перед передачей
Прежде чем отправлять файл получателю, откройте его в простом текстовом редакторе (Блокнот, Notepad++), а не только в Excel. Excel «догадывается» и скрывает проблемы: редактор покажет файл как есть — реальные разделители, кавычки, пустые строки в конце.
Контрольные точки: количество строк совпадает с количеством записей в источнике плюс строка заголовка; в каждой строке одинаковое число разделителей; кириллица читается; числа без пробелов-разделителей; даты в ожидаемом формате. Для больших файлов достаточно проверить первые, последние и несколько случайных строк.
Как проверить результат
Строки ровные, разделитель одинаковый, кириллица читается
Кракозябры, «пляшущее» число колонок, лишние пустые строки
Данные разложены по колонкам, числа — числами
Всё в одной колонке (неверный разделитель) или даты превратились в текст
Совпадает с числом записей в отчёте-источнике
Строк меньше (обрезана выборка) или больше (дубли, итоговые строки)
Импорт проходит без ошибок сопоставления полей
Ошибки формата, пропущенные значения, сдвиг колонок
Типичные ошибки и их последствия
Часто задаваемые вопросы
Чем CSV отличается от Excel-файла при выгрузке из 1С?
CSV — это чистый текст без форматирования, формул и нескольких листов: только строки и значения через разделитель. Excel-файл (xlsx) хранит оформление, типы ячеек и структуру книги. Для обмена между системами обычно требуют именно CSV — он читается любой программой, но не переносит ничего, кроме самих данных.
Можно ли создать CSV без доступа к конфигуратору?
Да. Сохранение табличного документа через «Файл → Сохранить как» доступно любому пользователю. Внешние обработки (файлы .epf) тоже не требуют изменения конфигурации — их открывают через «Файл → Открыть», если у пользователя есть право на запуск внешних обработок.
Почему получатель требует разделитель-запятую, а у меня в Excel всё слипается?
Строгий стандарт CSV предполагает запятую, а русская локаль Windows по умолчанию использует точку с запятой как разделитель списков. Это не противоречие: файл с запятыми корректен, просто Excel в русской локали не разбивает его автоматически. Открывайте такой файл через «Данные → Из текста/CSV» с указанием разделителя вручную.
Как автоматизировать ежедневную выгрузку CSV?
Оформите процедуру формирования и записи файла как серверную и добавьте её в регламентные задания (раздел «Администрирование → Обслуживание → Регламентные операции» в типовых конфигурациях). Задайте расписание и путь к папке обмена на сервере. Проверьте, что у сервера есть права записи в эту папку, а у задания — ответственный пользователь с нужными правами.
Что делать, если файл очень большой и выгрузка тормозит?
Выбирайте данные порциями: в запросе используйте отборы по периоду или пакетную выборку, а файл записывайте построчно в цикле, не накапливая весь текст в памяти. Также уберите из выгрузки лишние поля — часто половина колонок получателю не нужна, а объём файла и время записи сокращаются заметно.
Нужно ли экранировать кавычки в текстовых полях?
Да, если поле заключено в кавычки и само содержит кавычки — по стандарту CSV внутренние кавычки удваиваются: значение ООО «Ромашка» записывается как "ООО ""Ромашка""". Если пропустить удвоение, принимающая программа оборвёт значение на первой внутренней кавычке и сдвинет остальные колонки строки.
Что важно запомнить
Разовую выгрузку делайте сохранением табличного документа в CSV, регулярную — программной записью через ТекстовыйДокумент. Ключевые параметры: разделитель «;» для русской локали, кодировка UTF-8, явное форматирование чисел и дат, кавычки вокруг текста с разделителями. Перед передачей проверяйте файл в текстовом редакторе, а в клиент-серверной базе помните, что серверный код пишет файл на сервер.