Формат CSV (Comma-Separated Values) стал стандартным решением для обмена структурированными данными между 1С:Предприятие и внешними системами — от Excel до веб-сервисов. Однако многие пользователи сталкиваются с проблемами при выгрузке: неправильные разделители, кодировки или потеря данных. Эта статья поможет разобраться, как избежать типичных ошибок при создании CSV из 1С и автоматизировать процесс для регулярных задач.

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

Что такое CSV и почему он нужен в 1С

Файлы CSV представляют собой текстовые документы, где каждая строка — это запись, а значения полей разделяются символами (обычно запятыми или точками с запятой). Главное преимущество формата — его универсальность. Например, вы можете:

  • 📊 Импортировать данные в Google Sheets или Excel без потери структуры
  • 🔄 Обмениваться информацией с интернет-магазинами и маркетплейсами
  • 🛠️ Автоматизировать загрузку справочников из внешних источников
  • 📈 Строить аналитические отчеты в специализированных BI-системах

В контексте 1С:Предприятие 8.3 CSV чаще всего используется для:

  1. Выгрузки номенклатуры для интернет-магазинов
  2. Экспорта остатков товаров на складах
  3. Передачи данных о заказах в логистические системы
  4. Обмена с бухгалтерскими программами других производителей
📊 Для каких целей вы чаще всего экспортируете данные из 1С?
Обмен с маркетплейсами
Аналитика в Excel
Интеграция с CRM
Другие задачи

Важно понимать, что CSV — это не просто "упрощенный Excel". У формата есть строгие правила:

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

Способы создания CSV из 1С: от простого к сложному

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

Метод Сложность Когда использовать Ограничения
Ручной экспорт через "Сохранить как" Разовые операции с небольшими объемами Нет контроля над разделителями и кодировкой
Типовые обработки ("Выгрузка данных") ⭐⭐ Регулярный экспорт стандартных объектов Ограниченный набор настроек формата
Собственные обработки на 1С ⭐⭐⭐ Сложные структуры данных, нестандартные форматы Требует знаний встроенного языка
Внешние компоненты (COM, HTTP-сервисы) ⭐⭐⭐⭐ Интеграция с внешними системами в реальном времени Дополнительные требования к инфраструктуре

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

💡

Перед началом экспорта всегда проверяйте, какой разделитель ожидает принимающая система. Например, Wildberries требует точку с запятой, а Ozon — табуляцию.

Пошаговая инструкция: ручной экспорт CSV

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

  1. Откройте нужный справочник или отчет (например, Справочники → Номенклатура)
  2. Выберите пункт меню Файл → Сохранить как...
  3. В поле "Тип файла" укажите Текстовые файлы (.txt, .csv)
  4. Задайте имя файла с расширением .csv (например, номенклатура_2026.csv)
  5. Нажмите "Сохранить" и выберите кодировку (рекомендуется UTF-8)

Этот метод подходит для разовых операций, но имеет серьезные ограничения:

  • 🚫 Нет возможности выбрать разделитель (всегда используется запятая)
  • 🚫 Не сохраняются заголовки столбцов
  • 🚫 Данные с переносами строк будут повреждены
  • 🚫 Нет контроля над экранированием специальных символов

Проверьте отсутствие запятых в данных|Убедитесь в корректности кодировки|Сохраните резервную копию|Проверьте результат в Excel-->

Для регулярного использования лучше настроить типовую обработку выгрузки.

Настройка типовой обработки "Выгрузка данных"

Большинство конфигураций 1С содержат стандартную обработку ВыгрузкаДанных.epf, которая позволяет гибко настраивать экспорт в CSV. Чтобы ее использовать:

  1. Откройте обработку через Файл → Открыть... (файл обычно находится в каталоге шаблонов)
  2. Выберите источник данных (справочник, документ, регистр)
  3. Укажите поля для выгрузки и их порядок
  4. Настройте параметры формата:
    • Разделитель полей (запятая, точка с запятой, табуляция)
    • Разделитель строк
    • Кодировку (UTF-8, Windows-1251)
    • Формат чисел и дат
  • Запустите выгрузку и сохраните файл
  • Преимущества этого метода:

    • ✅ Гибкая настройка структуры выходного файла
    • ✅ Возможность сохранять шаблоны настроек
    • ✅ Поддержка разных кодировок и разделителей
    • ✅ Автоматическое экранирование специальных символов
    Как найти обработку ВыгрузкаДанных.epf

    Обычно файл находится в подкаталоге ExtForms основного каталога 1С. Если его нет, можно скачать с сайта ИТС или из дистрибутива вашей конфигурации.

    Для конфигураций типа 1С:Управление торговлей или 1С:ERP есть специализированные обработки для выгрузки на маркетплейсы, которые уже содержат нужные настройки формата.

    Создание CSV через встроенный язык 1С

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

    Процедура ВыгрузитьВCSV(КаталогВыгрузки, ИмяФайла)
    

    // Создаем объект для работы с файлом

    ЗаписьТекста = Новый ЗаписьТекста(КаталогВыгрузки + ИмяФайла + ".csv", КодировкаТекста.UTF8);

    // Выбираем данные из справочника Номенклатура

    Выборка = Справочники.Номенклатура.Выбрать();

    // Записываем заголовки

    ЗаписьТекста.ЗаписатьСтроку("Код;Наименование;Артикул;Цена");

    // Проходим по всем элементам справочника

    Пока Выборка.Следующий() Цикл

    Цена = ?(Выборка.Цена = Неопределено, 0, Выборка.Цена);

    СтрокаДанных = СтрШаблон("%1;%2;%3;%4",

    Выборка.Код,

    ЭкранироватьCSV(Выборка.Наименование),

    ЭкранироватьCSV(Выборка.Артикул),

    Цена);

    ЗаписьТекста.ЗаписатьСтроку(СтрокаДанных);

    КонецЦикла;

    ЗаписьТекста.Закрыть();

    КонецПроцедуры

    Функция ЭкранироватьCSV(Значение)

    Если ТипЗнч(Значение) = Тип("Строка") Тогда

    // Удаляем непечатаемые символы

    Значение = СтрЗаменить(Значение, Символы.ПС, "");

    Значение = СтрЗаменить(Значение, Символы.ВК, "");

    // Экранируем кавычки

    Значение = СтрЗаменить(Значение, """", """""");

    // Заключаем в кавычки, если есть разделители

    Если Найти(Значение, ";") > 0 Или Найти(Значение, """") > 0 Тогда

    Значение = """" + Значение + """";

    КонецЕсли;

    ИначеЕсли ТипЗнч(Значение) = Тип("Дата") Тогда

    Значение = Формат(Значение, "ДФ=yyyy-MM-dd");

    ИначеЕсли ТипЗнч(Значение) = Тип("Число") Тогда

    Значение = Строка(Значение);

    Иначе

    Значение = "";

    КонецЕсли;

    Возврат Значение;

    КонецФункции

    Этот код решает несколько важных задач:

    • 🔹 Корректно обрабатывает специальные символы
    • 🔹 Преобразует даты в стандартный формат
    • 🔹 Экранирует поля, содержащие разделители
    • 🔹 Поддерживает разные типы данных
    💡

    Всегда экранируйте данные перед записью в CSV. Это предотвратит ошибки при открытии файла в Excel или загрузке в другие системы.

    Для работы с большими объемами данных (тысячи строк) лучше использовать ПотоковыйЗаписатель вместо ЗаписьТекста — это значительно ускорит процесс.

    Оптимизация CSV для разных систем

    Каждая внешняя система предъявляет свои требования к формату CSV. Рассмотрим особенности подготовки файлов для популярных сервисов:

    Сервис Требования к CSV Особенности
    Яндекс.Маркет UTF-8, разделитель ; Обязательные поля: offer id, price, currencyId
    Wildberries Windows-1251, разделитель ; Строгая структура: 43 обязательных столбца
    Ozon UTF-8, разделитель табуляция Требуется предварительная регистрация артикулов
    Google Merchant Center UTF-8, разделитель , Поддержка нескольких языков в одном файле

    Для Wildberries и Ozon часто требуется предварительная обработка данных:

    • 📦 Приведение артикулов к единому формату
    • 🏷️ Нормализация наименований (удаление лишних символов)
    • 💰 Конвертация цен в нужную валюту
    • 📏 Проверка ограничений по длине полей
    ⚠️ Внимание: Маркетплейсы часто меняют требования к формату выгружаемых данных. Перед каждой выгрузкой проверяйте актуальные технические требования в личном кабинете партнера.

    Для автоматизации подготовки данных под конкретный сервис можно создать специализированные обработки в 1С, которые будут:

    1. Фильтровать ненужные товары
    2. Дополнять недостающие поля
    3. Преобразуять данные в требуемый формат
    4. Проверять файл на соответствие требованиям

    Распространенные ошибки и их решение

    При работе с CSV из 1С пользователи часто сталкиваются с типичными проблемами. Рассмотрим самые распространенные и способы их устранения:

    Проблема Причина Решение
    Файл открывается как один столбец Неправильный разделитель или кодировка Указать правильный разделитель при открытии в Excel или изменить настройки выгрузки
    Русские буквы отображаются кракозябрами Неверная кодировка (обычно CP1251 вместо UTF-8) Пересохранить файл в UTF-8 или указать правильную кодировку при открытии
    Данные в ячейках "съезжают" В полях содержатся неэкранированные разделители Использовать функцию экранирования или заключать все поля в кавычки
    Числа отображаются как текст Лишние символы (пробелы, валюта) в числовых полях Очищать данные от нечисловых символов перед выгрузкой
    Даты воспринимаются как текст Нестандартный формат даты Преобразуйте даты в формат ГГГГ-ММ-ДД перед выгрузкой

    Особенно сложные ошибки возникают при работе с большими файлами:

    • 🐢 Медленная выгрузка (решение: использовать потоковую запись)
    • 💥 Падение 1С по памяти (решение: дробить выгрузку на части)
    • 🔄 Потеря данных при прерывании (решение: реализовать контрольные точки)
    • 📉 Несовпадение количества строк (решение: вести лог выгруженных записей)
    Как ускорить выгрузку больших файлов

    1. Отключите индексирование файла в антивирусе

    2. Используйте SSD вместо HDD

    3. Выгружайте данные порциями по 10-50 тыс. строк

    4. Закрывайте все ненужные программы перед выгрузкой

    Для диагностики проблем с CSV-файлами полезно использовать специализированные инструменты вроде CSVLint или Notepad++ с плагином CSV Lint.

    Автоматизация выгрузки CSV

    Если вам нужно регулярно выгружать данные в CSV, имеет смысл автоматизировать процесс. В 1С есть несколько способов это сделать:

    • 🕒 Регламентные задания — настройка автоматической выгрузки по расписанию
    • 🖥️ Внешние обработки — создание универсальных модулей для разных типов данных
    • 🌐 HTTP-сервисы — выгрузка по запросу от внешних систем
    • 📂 Обмен через файловую систему — автоматическое размещение файлов в сетевых папках

    Пример создания регламентного задания для автоматической выгрузки:

    1. Откройте Администрирование → Поддержка и обслуживание → Регламентные задания
    2. Создайте новое задание типа "Выполнение кода"
    3. Укажите код выгрузки (аналогичный примеру из предыдущего раздела)
    4. Настройте расписание выполнения
    5. Укажите параметры (путь сохранения, имя файла и т.д.)
    6. Сохраните и активируйте задание

    Для более сложных сценариев можно использовать Библиотеку стандартных подсистем (БСП), которая содержит готовые механизмы для:

    • Логирования операций выгрузки
    • Отправки файлов по email или FTP
    • Управления версиями выгруженных данных
    • Контроля целостности файлов
    ⚠️ Внимание: При настройке автоматической выгрузки учитывайте нагрузку на сервер 1С. Для больших баз данных рекомендуется выполнять выгрузку в нерабочее время.

    Для интеграции с внешними системами в реальном времени лучше использовать HTTP-сервисы или REST API, которые могут генерировать CSV по запросу.

    FAQ: Часто задаваемые вопросы о CSV в 1С
    Как изменить разделитель в стандартной выгрузке 1С?

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

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

    Это проблема с кодировкой. При сохранении файла выберите UTF-8. Если файл уже сохранен в неправильной кодировке, откройте его в Notepad++ и конвертируйте через меню Кодировки → Преобразовать в UTF-8 без BOM. В Excel при открытии файла выберите правильную кодировку в мастере импорта.

    Как выгрузить в CSV данные с иерархией (например, группы номенклатуры)?

    Для выгрузки иерархических данных нужно рекурсивно обходить все уровни справочника. Пример кода:

    Процедура ВыгрузитьИерархию(Элемент, Уровень = 0)
    

    Если НЕ Элемент.ЭтоГруппа Тогда

    // Выгрузка элемента справочника

    ВыгрузитьСтроку(Элемент);

    Иначе

    // Выгрузка группы

    Выборка = Элемент.Выбрать();

    Пока Выборка.Следующий() Цикл

    ВыгрузитьИерархию(Выборка, Уровень + 1);

    КонецЦикла;

    КонецЕсли;

    КонецПроцедуры

    В выходном файле можно добавлять поле с уровнем вложенности или использовать отступы в наименовании.

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

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

    1. Выполнит отчет в таблицу значений
    2. Развернет группировки в отдельные строки
    3. Выгрузит результат в CSV с сохранением структуры

    Для сложных отчетов с вложенными группировками может потребоваться ручная доработка структуры выходного файла.

    Как проверить большой CSV-файл на ошибки перед загрузкой на маркетплейс?

    Используйте специализированные инструменты:

    • CSVLint — проверка синтаксиса файла
    • Excel с условным форматированием для поиска пустых ячеек
    • Notepad++ с регулярными выражениями для поиска некорректных символов
    • Скрипты на Python с библиотекой pandas для комплексного анализа

    Для маркетплейсов типа Wildberries или Ozon есть официальные валидаторы файлов, которые показывают все ошибки перед загрузкой.