Справочники и Данные · 11 мин
CSV формат в 1С: что это и как с ним работать
Что такое CSV формат в 1С, чем он отличается от Excel, как выгрузить и загрузить данные, выбрать разделитель и кодировку, исправить типичные ошибки обмена.
CSV (Comma-Separated Values — «значения, разделённые запятыми») — это простой текстовый формат для хранения табличных данных. Каждая строка файла соответствует строке таблицы, а значения колонок отделяются друг от друга разделителем: чаще всего запятой или точкой с запятой. Файл открывается в любом текстовом редакторе, поэтому CSV давно стал универсальным способом обмена данными между программами, включая 1С.
В 1С формат CSV используют для загрузки номенклатуры, контрагентов, цен, остатков, банковских выписок и выгрузки данных для сторонних систем: сайтов, маркетплейсов, CRM, банковских клиентов. Типовые конфигурации содержат встроенные обработки загрузки и выгрузки, а для нестандартных задач формат легко обрабатывается программно.
Главное отличие CSV от файлов Excel (XLSX) — отсутствие форматирования, формул, нескольких листов и типов данных. В CSV всё хранится как текст, поэтому при обмене особое внимание нужно уделять трём вещам: разделителю, кодировке и кавычкам вокруг значений, содержащих разделитель. Ошибка в любом из этих параметров приводит к «съехавшим» колонкам или нечитаемым символам.
Как устроен CSV-файл
Структура файла предельно проста. Первая строка обычно содержит заголовки колонок, каждая следующая — одну запись. Значения отделяются разделителем, а если само значение содержит разделитель или перенос строки, оно заключается в двойные кавычки.
Артикул;Наименование;Цена
00123;Кабель ВВГ 3х2,5;185.50
00124;"Выключатель; одноклавишный";240.00
В примере выше разделитель — точка с запятой, а значение «Выключатель; одноклавишный» взято в кавычки, потому что само содержит точку с запятой. Именно такое экранирование чаще всего теряется при ручной правке файла, из-за чего строка распадается на лишние колонки.
Десятичный разделитель чисел тоже зависит от региональных настроек: в русской локали это запятая, в английской — точка. Если файл подготовлен в одной локали, а загружается в другой, число «185,50» может прочитаться как текст или развалиться на две колонки.
Где CSV применяется в 1С
На практике чаще всего с CSV сталкиваются в сценариях обмена с внешними системами. Типовые примеры: загрузка прайса поставщика в «1С:Управление торговлей», выгрузка каталога товаров на сайт или маркетплейс, импорт банковской выписки, перенос справочников между базами.
- Загрузка номенклатуры, штрихкодов и цен из файлов поставщиков.
- Выгрузка остатков и каталога для интернет-магазинов и торговых площадок.
- Импорт клиент-банковских выписок в форматах, основанных на CSV.
- Перенос данных из старых учётных систем, которые умеют выгружать только текст.
- Обмен с Excel и Google Таблицами через промежуточное сохранение в CSV.
В типовых конфигурациях ищите обработки «Загрузка данных из файла», «Универсальный обмен данными» или специализированные загрузчики в разделах «Покупки», «Склад», «Банк». Для «1С:Бухгалтерии» и «1С:Управление торговлей» есть также обработка «Загрузка данных из табличного документа», которая принимает CSV.
Как выгрузить данные из 1С в CSV
Самый простой способ без программирования — открыть нужный отчёт или список, вывести его в табличный документ и сохранить через меню «Файл → Сохранить как», выбрав тип «Текстовый документ» или «Текст с разделителями». В ряде конфигураций доступен прямой формат CSV при сохранении табличного документа.
- 1Сформируйте отчёт или список, который нужно выгрузить
- 2Откройте Файл → Сохранить копию / Сохранить как
- 3Выберите тип файла: текстовый формат с разделителями или CSV
- 4Укажите кодировку UTF-8, если файл пойдёт в стороннюю систему
- 5Откройте результат в блокноте и проверьте разделитель и читаемость символов
Если выгрузка нужна регулярно и по расписанию, разумнее написать небольшую процедуру на встроенном языке. Для записи используется объект ЗаписьТекста: строки формируются вручную через конкатенацию значений с разделителем, а значения, содержащие разделитель, оборачиваются в кавычки.
Запись = Новый ЗаписьТекста(ПутьКФайлу, КодировкаТекста.UTF8);
Строка = Артикул + ";" + Наименование + ";" + Формат(Цена, "ЧРД=.");
Запись.ЗаписатьСтроку(Строка);
Запись.Закрыть();
При программной выгрузке принудительно задавайте формат чисел через функцию Формат() с указанием десятичного разделителя. Иначе формат будет зависеть от региональных настроек сервера, и на другом компьютере числа могут записаться иначе.
Как загрузить CSV в 1С
Для разовой загрузки используйте типовую обработку: в большинстве конфигураций она позволяет указать файл, сопоставить колонки файла с полями справочника или табличной части и выполнить загрузку с контролем дублей. Перед загрузкой в рабочую базу всегда пробуйте файл на копии.
Программная загрузка строится на объекте ЧтениеТекста или ЧтениеДанных: файл читается построчно, каждая строка разбивается функцией СтрРазделить() по разделителю, значения приводятся к нужным типам (число, дата, ссылка на справочник).
Проверка перед загрузкой
Откройте файл в «Блокноте» или Notepad++ и убедитесь: символы кириллицы читаемы, количество разделителей в каждой строке одинаковое, заголовки соответствуют ожидаемым колонкам. Удобная проверка — открыть файл в Excel через «Данные → Из текста/CSV»: мастер сразу покажет, как распределятся колонки при выбранном разделителе.
Кодировка, разделитель и другие подводные камни
Кодировка — источник большинства проблем с кириллицей. Современный стандарт — UTF-8, но Excel в русской Windows по умолчанию сохраняет CSV в ANSI (Windows-1251). Если сторонняя система ждёт UTF-8, а файл записан в 1251, русские буквы превратятся в «кракозябры». При сохранении из Excel выбирайте вариант «CSV UTF-8 (с разделителями-запятыми)».
Особая ловушка — ведущие нули в артикулах, штрихкодах и ИНН. Excel при открытии CSV трактует такие значения как числа и отрезает нули. Чтобы избежать этого, открывайте CSV через мастер импорта текста и явно задавайте таким колонкам текстовый формат, либо не открывайте файл в Excel вовсе, а правьте в текстовом редакторе.
Когда CSV не подходит: альтернативы
CSV хорош для простых плоских таблиц, но у него есть ограничения: нет типов данных, нет нескольких листов, нет структуры вложенных объектов. Если нужно передать иерархию (заказ с табличной частью, товар с характеристиками), лучше подходят XML или JSON. Для обмена между базами 1С предпочтителен формат EnterpriseData или универсальный обмен через XML.
Сравнение вариантов
Простые плоские таблицы: прайсы, справочники, остатки. Минимальный объём, читается везде, но нет типов данных и вложенности
Когда файл готовит человек в Excel и нужны форматирование и несколько листов. Тяжелее, требует Excel или COM-объект при программной обработке
Иерархические данные, документы с табличными частями, обмен с API. Строгая структура, но сложнее ручная правка
Штатный обмен между базами 1С и с сайтами. Не требует ручного сопоставления форматов, но привязан к экосистеме 1С
Как выбрать действие
Как проверить результат обмена
После выгрузки или загрузки сверяйте контрольные суммы: количество строк в файле против количества загруженных записей, суммы по числовым колонкам, несколько случайных значений вручную. Для загрузки номенклатуры дополнительно проверьте отсутствие дублей по артикулу и наименованию.
Как проверить результат
Число записей в базе совпадает с числом строк файла минус заголовок
Записей меньше или больше — часть строк не прочиталась или задвоилась
Наименования читаемы, без знаков вопроса и кракозябр
Нечитаемые символы — несовпадение кодировок
Суммы совпадают с источником, десятичный разделитель корректен
Цены в 100 раз больше/меньше или стали текстом
Ведущие нули на месте
Нули обрезаны — файл проходил через Excel без текстового формата
Что важно запомнить
CSV — простой текстовый формат таблиц, удобный для обмена 1С с внешними системами. Успех обмена определяется тремя параметрами: кодировкой (обычно UTF-8), разделителем и корректным экранированием значений. Проверяйте файл до загрузки и тестируйте на копии базы.
Частые вопросы
Чем открыть CSV-файл из 1С, чтобы ничего не испортить?
Для просмотра используйте «Блокнот», Notepad++ или аналогичный текстовый редактор — они не меняют данные. Excel открывайте только через «Данные → Из текста/CSV» с явным указанием кодировки и текстового формата для колонок с кодами, иначе ведущие нули и даты могут быть искажены уже при просмотре.
Какой разделитель выбрать: запятую или точку с запятой?
Ориентируйтесь на принимающую сторону. Для русского Excel удобнее точка с запятой — файл откроется сразу с разбивкой по колонкам. Для API, сайтов и зарубежных систем чаще требуется запятая. Главное — чтобы разделитель совпадал с настройкой загружающей обработки.
Почему после загрузки цены стали в 100 раз больше?
Почти всегда причина в десятичном разделителе: в файле точка, а обработка ожидает запятую (или наоборот), и дробная часть «приклеивается» к целой. Проверьте формат чисел в файле и настройку преобразования в обработке, затем загрузите файл заново.
Можно ли загрузить CSV в 1С без программирования?
Да. В типовых конфигурациях есть обработки «Загрузка данных из файла» и «Загрузка данных из табличного документа», которые позволяют сопоставить колонки полям справочника через интерфейс. Программирование требуется только для нестандартных форматов, регулярных загрузок по расписанию или сложной логики поиска дублей.
Что делать, если в данных встречается сам разделитель?
Такие значения должны быть заключены в двойные кавычки — это стандартное правило CSV. Если файл формируется программно, добавьте проверку: значение, содержащее разделитель, кавычку или перенос строки, оборачивается в кавычки, а внутренние кавычки удваиваются.
Подходит ли CSV для обмена между двумя базами 1С?
Технически да, для простых справочников это рабочий вариант. Но для регулярного обмена удобнее штатные механизмы: EnterpriseData, универсальный обмен данными в формате XML или планы обмена — они сами контролируют ссылки, дубли и структуру объектов, чего CSV не обеспечивает.