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

Справочники и Данные · 9 мин

Как создать CSV-файл из 1С

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

CSV — простой текстовый формат, в котором значения разделены запятыми, точкой с запятой или табуляцией. Из 1С его используют для обмена с сайтами, банками, Excel, маркетплейсами и другими учётными системами. Создать CSV из 1С можно тремя способами: сохранить табличный документ, воспользоваться типовой обработкой выгрузки или написать выгрузку кодом на встроенном языке.

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

Что такое CSV и какие разделители использует 1С

CSV (Comma-Separated Values) — текстовый файл, где каждая строка соответствует записи, а значения внутри строки отделены разделителем. В русскоязычной среде чаще всего разделителем служит точка с запятой, потому что запятая используется как десятичный разделитель в числах. Западные системы и многие API ожидают именно запятую.

Перед выгрузкой уточните требования принимающей системы: какой разделитель нужен, какая кодировка (обычно UTF-8 или Windows-1251), нужна ли строка заголовков и как оформлять даты и числа. Несовпадение хотя бы одного параметра — самая частая причина того, что файл «не открывается» или «криво грузится» на другой стороне.

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

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

Далее выделите табличный документ и выберите «Файл → Сохранить как» (или «Сохранить копию»). В диалоге сохранения укажите тип файла CSV. В управляемых формах путь может отличаться: иногда это кнопка «Ещё → Сохранить» над таблицей. После сохранения откройте файл в «Блокноте» и проверьте разделитель и кодировку.

Порядок действий
  1. 1
    Сформируйте в 1С таблицу с нужными данными: отчёт, список справочника или результат запроса.
  2. 2
    Выберите «Файл → Сохранить как» и укажите тип файла CSV.
  3. 3
    Откройте полученный файл в текстовом редакторе и проверьте разделитель и кодировку.
  4. 4
    При необходимости скорректируйте настройки сохранения или пересохраните файл в нужной кодировке.

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

Способ 2. Типовые обработки выгрузки

Во многих типовых конфигурациях есть встроенные механизмы выгрузки: «Выгрузка данных» в разделе администрирования, обмены с банками и сайтами, универсальные обработки загрузки/выгрузки табличных данных. Они позволяют задать отбор по периоду, организации, виду документов и составу полей.

Типовая обработка удобна, когда нужна регулярная выгрузка с одинаковой структурой: настройки сохраняются, и в следующий раз достаточно открыть обработку и нажать «Выгрузить». Найдите в своей конфигурации раздел «Администрирование» или «Сервис» и проверьте наличие обработок обмена данными.

Способ 3. Программная выгрузка кодом

Когда структура файла жёстко задана внешней системой, пишут выгрузку на встроенном языке 1С. Логика типичная: выполнить запрос к данным, пройти по результату и записать каждую строку в текстовый файл через объект «ТекстовыйДокумент» или «ЗаписьТекста» с указанием кодировки.

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

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

Кодировка и формат чисел: где чаще всего ошибаются

Кодировка определяет, как будут читаться русские буквы. UTF-8 — современный стандарт, его ожидают сайты и API. Windows-1251 иногда требуется старым программам и некоторым банковским клиентам. Если принимающая сторона не указала кодировку, начинайте с UTF-8.

Числа в 1С при выводе могут получить разделитель разрядов (неразрывный пробел) и запятую как десятичный разделитель. Для машинной обработки это неприемлемо: используйте функцию Формат() с явным шаблоном, чтобы получить «1234.56» без пробелов. Даты приводите к формату, который ждёт принимающая система, — обычно ГГГГ-ММ-ДД.

Типичные ошибки
01
Выгрузка в кодировке по умолчанию: на принимающей стороне русский текст превращается в нечитаемые символы. Задавайте кодировку явно.
02
Числа с пробелами-разделителями разрядов: принимающая система не распознаёт значение как число. Используйте Формат() с явным шаблоном.
03
Значения с разделителем внутри текста без кавычек: колонки смещаются, строка разваливается. Экранируйте такие значения.
04
Лишние итоговые строки и шапки отчёта в файле: принимающая система загружает их как данные. Убирайте их до сохранения.

Проверка результата перед передачей файла

Откройте созданный файл в «Блокноте» или Notepad++: видны ли заголовки, одинаковое ли количество разделителей в строках, корректно ли отображаются русские буквы. Затем откройте файл в Excel или LibreOffice Calc — данные должны разложиться по колонкам без смещений.

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

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

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

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

Равно числу записей выборки плюс заголовок

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

Строк меньше или больше — есть потери или дубли

Колонки при открытии в Excel
Норма

Каждое значение в своей ячейке

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

Данные слиплись в одну колонку или смещены

Кириллица
Норма

Текст читается в UTF-8 и в целевой системе

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

Кракозябры — неверная кодировка

Числа и даты
Норма

Без пробелов, десятичный разделитель соответствует требованиям

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

Пробелы-разделители, даты в произвольном виде

Как выбрать подходящий способ

Для разовой задачи «быстро отдать таблицу» достаточно сохранения табличного документа. Для регулярного обмена с фиксированным составом полей удобнее типовая обработка или собственная внешняя обработка с сохранёнными настройками. Для интеграции с API и строгими требованиями к формату — только программная выгрузка с явным контролем разделителя, кодировки и форматов.

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

Как выбрать действие

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

Частые вопросы

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

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

Почему Excel открывает CSV в одну колонку?

Excel определяет разделитель по региональным настройкам Windows. Если в файле запятая, а в системе разделителем списков назначена точка с запятой, всё попадёт в одну колонку. Решение: выгружайте с точкой с запятой или импортируйте файл через «Данные → Из текстового/CSV-файла» с явным указанием разделителя.

Какая кодировка нужна для загрузки на сайт?

Большинство сайтов и API ожидают UTF-8. При программной выгрузке указывайте её явно в конструкторе записи текста. Если после загрузки русские буквы отображаются неверно — проверьте, не сохранён ли файл в Windows-1251.

Можно ли выгружать CSV автоматически по расписанию?

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

Что делать, если в данных встречается разделитель?

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

Итог

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

Разовую таблицу выгружайте сохранением табличного документа, регулярные обмены — обработкой, строгие форматы — кодом. Всегда явно задавайте разделитель, кодировку UTF-8 и формат чисел, а перед передачей проверяйте файл по количеству строк и колонкам.