Справочники и Данные · 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С таблицу с нужными данными: отчёт, список справочника или результат запроса.
- 2Выберите «Файл → Сохранить как» и укажите тип файла CSV.
- 3Откройте полученный файл в текстовом редакторе и проверьте разделитель и кодировку.
- 4При необходимости скорректируйте настройки сохранения или пересохраните файл в нужной кодировке.
Ограничение способа: сохраняется то, что видно на экране, включая итоговые строки, шапки и объединённые ячейки. Перед передачей файла сторонней системе лишние строки придётся удалить вручную или исключить их настройкой отчёта.
Способ 2. Типовые обработки выгрузки
Во многих типовых конфигурациях есть встроенные механизмы выгрузки: «Выгрузка данных» в разделе администрирования, обмены с банками и сайтами, универсальные обработки загрузки/выгрузки табличных данных. Они позволяют задать отбор по периоду, организации, виду документов и составу полей.
Типовая обработка удобна, когда нужна регулярная выгрузка с одинаковой структурой: настройки сохраняются, и в следующий раз достаточно открыть обработку и нажать «Выгрузить». Найдите в своей конфигурации раздел «Администрирование» или «Сервис» и проверьте наличие обработок обмена данными.
Способ 3. Программная выгрузка кодом
Когда структура файла жёстко задана внешней системой, пишут выгрузку на встроенном языке 1С. Логика типичная: выполнить запрос к данным, пройти по результату и записать каждую строку в текстовый файл через объект «ТекстовыйДокумент» или «ЗаписьТекста» с указанием кодировки.
Запись = Новый ЗаписьТекста("C:\Обмен\nomenklatura.csv", КодировкаТекста.UTF8);
Запись.ЗаписатьСтроку("Код;Наименование;Цена");
Пока Выборка.Следующий() Цикл
Строка = Выборка.Код + ";" + Выборка.Наименование + ";" + Формат(Выборка.Цена, "ЧРД=.");
Запись.ЗаписатьСтроку(Строка);
КонецЦикла;
Запись.Закрыть();В коде контролируйте три вещи: разделитель (здесь — точка с запятой), формат чисел (десятичный разделитель без пробелов-разделителей разрядов) и экранирование значений, содержащих разделитель или кавычки. Если в наименовании товара встречается точка с запятой, значение нужно заключить в кавычки, иначе структура строки «поедет».
Кодировка и формат чисел: где чаще всего ошибаются
Кодировка определяет, как будут читаться русские буквы. UTF-8 — современный стандарт, его ожидают сайты и API. Windows-1251 иногда требуется старым программам и некоторым банковским клиентам. Если принимающая сторона не указала кодировку, начинайте с UTF-8.
Числа в 1С при выводе могут получить разделитель разрядов (неразрывный пробел) и запятую как десятичный разделитель. Для машинной обработки это неприемлемо: используйте функцию Формат() с явным шаблоном, чтобы получить «1234.56» без пробелов. Даты приводите к формату, который ждёт принимающая система, — обычно ГГГГ-ММ-ДД.
Проверка результата перед передачей файла
Откройте созданный файл в «Блокноте» или Notepad++: видны ли заголовки, одинаковое ли количество разделителей в строках, корректно ли отображаются русские буквы. Затем откройте файл в Excel или LibreOffice Calc — данные должны разложиться по колонкам без смещений.
Дополнительная проверка — контрольные суммы: количество строк в файле должно совпадать с количеством записей в выборке (плюс строка заголовков, если она есть), а итоговая сумма по числовой колонке — с итогом в 1С. Расхождение означает потерю или дублирование записей.
Как проверить результат
Равно числу записей выборки плюс заголовок
Строк меньше или больше — есть потери или дубли
Каждое значение в своей ячейке
Данные слиплись в одну колонку или смещены
Текст читается в UTF-8 и в целевой системе
Кракозябры — неверная кодировка
Без пробелов, десятичный разделитель соответствует требованиям
Пробелы-разделители, даты в произвольном виде
Как выбрать подходящий способ
Для разовой задачи «быстро отдать таблицу» достаточно сохранения табличного документа. Для регулярного обмена с фиксированным составом полей удобнее типовая обработка или собственная внешняя обработка с сохранёнными настройками. Для интеграции с API и строгими требованиями к формату — только программная выгрузка с явным контролем разделителя, кодировки и форматов.
Как выбрать действие
Частые вопросы
Чем CSV отличается от XLSX при выгрузке из 1С?
CSV — чистый текст без форматирования, формул и нескольких листов, его легко читают любые системы и скрипты. XLSX сохраняет оформление и структуру книги, но требует больше ресурсов и хуже подходит для машинного обмена. Для интеграций выбирайте CSV, для передачи «человеку посмотреть» — XLSX.
Почему Excel открывает CSV в одну колонку?
Excel определяет разделитель по региональным настройкам Windows. Если в файле запятая, а в системе разделителем списков назначена точка с запятой, всё попадёт в одну колонку. Решение: выгружайте с точкой с запятой или импортируйте файл через «Данные → Из текстового/CSV-файла» с явным указанием разделителя.
Какая кодировка нужна для загрузки на сайт?
Большинство сайтов и API ожидают UTF-8. При программной выгрузке указывайте её явно в конструкторе записи текста. Если после загрузки русские буквы отображаются неверно — проверьте, не сохранён ли файл в Windows-1251.
Можно ли выгружать CSV автоматически по расписанию?
Да. Оформите процедуру выгрузки как регламентное задание: 1С будет формировать файл в указанный каталог по расписанию без участия пользователя. Предусмотрите запись журнала ошибок, чтобы заметить сбой до того, как принимающая сторона сообщит об отсутствии данных.
Что делать, если в данных встречается разделитель?
Заключите такое значение в двойные кавычки — это стандартное правило CSV. Если внутри значения есть сами кавычки, их удваивают. При ручной сборке строк в коде проверяйте каждое текстовое поле на наличие разделителя перед записью.
Что важно запомнить
Разовую таблицу выгружайте сохранением табличного документа, регулярные обмены — обработкой, строгие форматы — кодом. Всегда явно задавайте разделитель, кодировку UTF-8 и формат чисел, а перед передачей проверяйте файл по количеству строк и колонкам.