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

В этой статье мы разберём 5 проверенных способов открыть и загрузить CSV в 1С — от простейшего ручного импорта до автоматизированных решений с использованием обработок и скриптов. Особое внимание уделим типичным ошибкам (например, Недопустимый символ или Несоответствие типов данных) и способам их устранения. Если вы работаете с 1С:Бухгалтерия 8.3, 1С:Управление торговлей 11 или 1С:Зарплата и управление персоналом, здесь найдёте актуальные инструкции для вашей конфигурации.

Прежде чем приступить, проверьте:

  • 📁 Формат файла: должен быть именно .csv (не .xlsx или .txt).
  • 🔍 Кодировка: 1С корректно работает с UTF-8 и Windows-1251.
  • 📊 Структура данных: количество столбцов в CSV должно совпадать с полями в 1С.

📊 Как часто вы работаете с CSV в 1С?
Ежедневно
Несколько раз в неделю
Редко
Никогда

1. Ручной импорт CSV через «Загрузку данных из табличного документа»

Самый простой способ — использовать встроенный механизм загрузки из табличных документов. Он подходит для разовых операций и не требует навыков программирования. Рассмотрим пошагово, как это сделать в 1С:Бухгалтерия 8.3 (аналогично работает в большинстве типовых конфигураций).

Откройте нужный справочник (например, Номенклатура или Контрагенты) и выполните следующие действия:

  1. Перейдите в меню Файл → Открыть….
  2. Выберите ваш .csv-файл.
  3. В открывшемся окне укажите параметры:
    • 📋 Разделитель полей: обычно ; или , (зависит от экспорта).
    • 🔠 Кодировка: если символы отображаются кракозябрами, попробуйте Windows-1251.
    • 📑 Первая строка — заголовки: отметьте галочкой, если в CSV есть шапка с названиями столбцов.
  • Нажмите Далее и сопоставьте столбцы CSV с полями 1С.
  • Удалите пустые строки в конце файла

    Проверьте отсутствие спецсимволов (кавычки, апострофы)

    Сохраните файл в кодировке UTF-8 без BOM

    Убедитесь, что разделители одинаковые во всём файле

    -->

    ⚠️ Внимание: Если при загрузке появляется ошибка Недопустимый символ в позиции X, скорее всего, проблема в кодировке или некорректных символах (например, «» вместо ""). Используйте Notepad++ или Excel для предварительной очистки файла.

    Ошибка при импорте Возможная причина Решение
    Несоответствие типов данных В CSV текст, где 1С ожидает число Исправьте формат ячеек в Excel перед сохранением в CSV
    Поле не найдено Несовпадение названий столбцов Переименуйте заголовки в CSV или настройте сопоставление вручную
    Дубль по уникальному полю Повторяющиеся значения в ключевом поле (например, артикул) Удалите дубли в CSV или настройте обработку дублей в параметрах загрузки

    2. Автоматизированная загрузка через обработку «Универсальный обмен данными»

    Для регулярного импорта CSV (например, ежедневных прайсов от поставщиков) удобнее использовать обработку «Универсальный обмен данными». Она входит в стандартную поставку большинства конфигураций 1С и позволяет гибко настраивать правила загрузки.

    Как настроить:

    1. Откройте обработку через меню Файл → Открыть… (файл обычно называется UniversalDataExchange.epf).
    2. Выберите Загрузка данных и укажите путь к CSV.
    3. Настройте формат данных:
      • 📌 Тип разделителя: выберите Символ и укажите ; или ,.
      • 📌 Кодировка: UTF-8 или Windows-1251.
      • 📌 Первая строка — заголовок: включите, если есть шапка.
    4. Сопоставьте поля CSV с реквизитами 1С (например, НаименованиеНоменклатура.Наименование).
    5. Запустите загрузку и проверьте результат.
    6. Где найти обработку "Универсальный обмен данными"

      Обычно она расположена в каталоге установки 1С по пути:

      C:\Program Files (x86)\1cv8\8.3.{версия}\bin\ExtForms\UniversalDataExchange.epf

      Если файла нет, скачайте его с портала 1С:ИТС (раздел "Обработки для обмена данными").

      🔹 Преимущество метода: обработка сохраняет настройки сопоставления полей, что ускоряет повторную загрузку. Также она поддерживает логирование ошибок, что упрощает поиск проблемных строк.

      ⚠️ Внимание: Если в CSV есть формулы или вычисляемые поля (например, =СУММ(A1:B1)), сохраните файл из Excel как .csv с параметром Значения, иначе 1С не сможет их обработать.

      3. Импорт CSV через внешние обработки (например, «Загрузка из Excel»)

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

      • 📊 Загрузка из Excel (от 1С-Битрикс) — поддерживает .xlsx и .csv, гибкие настройки сопоставления.
      • 🔄 EasyLoad — плагин для массовой загрузки данных с предварительным просмотром.
      • 🛠️ ATOL: Загрузка номенклатуры — специализирована для торгового оборудования.

    Пример настройки Загрузки из Excel:

    1. Скачайте обработку с портала 1С:ИТС или сайта разработчика.
    2. Откройте её в 1С через Файл → Открыть….
    3. Выберите CSV-файл и укажите параметры:
      Разделитель: ;
      

      Кодировка: UTF-8

      Первая строка - заголовок: Да

      Формат даты: ДД.ММ.ГГГГ

    4. Настройте правила преобразования (например, автоматическое создание новых элементов справочника).
    5. Запустите загрузку и проверьте протокол ошибок.

    =Формат(ДатаЗнач(Подстрока(Строка;1;10)); "ДФ=dd.MM.yyyy")

    -->

    Важно: некоторые обработки требуют лицензии или подписки на 1С:ИТС. Перед использованием проверьте условия на сайте разработчика.

    4. Программная загрузка CSV через 1С:Предприятие (для разработчиков)

    Если вам нужно автоматизировать импорт CSV на уровне кода (например, для регулярного обновления справочников по расписанию), используйте встроенный язык 1С. Ниже приведён пример скрипта для загрузки номенклатуры из CSV в 1С:Управление торговлей 11:

    Процедура ЗагрузитьCSV(ПутьКФайлу)
    

    // Открываем файл

    ТекстCSV = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8);

    // Пропускаем заголовок (первая строка)

    ТекстCSV.ПрочитатьСтроку();

    // Читаем данные построчно

    Пока ТекстCSV.КонецФайла() = Ложь Цикл

    Строка = ТекстCSV.ПрочитатьСтроку();

    Данные = РазложитьСтрокуПоРазделителю(Строка, ";");

    // Создаём новый элемент номенклатуры

    НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();

    НовыйЭлемент.Наименование = Данные[0]; // Первый столбец - наименование

    НовыйЭлемент.Артикул = Данные[1]; // Второй столбец - артикул

    НовыйЭлемент.Записать();

    КонецЦикла;

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

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

    Функция РазложитьСтрокуПоРазделителю(Строка, Разделитель)

    Возврат СтроковыеФункцииКлиентСервер.РазложитьСтроку(Строка, Разделитель);

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

    🔹 Ключевые моменты:

    • 🔹 Используйте КодировкаТекста.UTF8 или КодировкаТекста.Windows в зависимости от файла.
    • 🔹 Для больших файлов (>10 000 строк) разбейте загрузку на пакеты, чтобы избежать блокировки базы.
    • 🔹 Добавьте обработку ошибок с помощью Попытка…Исключение.

    Сообщить("Обрабатываемая строка: " + Строка);

    -->

    ⚠️ Внимание: При программной загрузке убедитесь, что у пользователя достаточно прав на создание/редактирование объектов в 1С. Иначе скрипт завершится с ошибкой Отказано в доступе.

    5. Импорт CSV через COM-соединение (Excel + 1С)

    Если CSV содержит сложные данные (например, иерархические структуры или формулы), можно использовать COM-соединение с Excel. Этот метод позволяет предварительно обработать данные в Excel, а затем передать их в 1С.

    Пример кода для чтения CSV через Excel:

    Excel = Новый COMОбъект("Excel.Application");
    

    РабочаяКнига = Excel.Workbooks.Open(ПутьКФайлу);

    Лист = РабочаяКнига.Worksheets(1);

    // Читаем данные с первого листа

    Строка = 2; // Пропускаем заголовок

    Пока Лист.Cells(Строка, 1).Value <> Неопределено Цикл

    Артикул = Лист.Cells(Строка, 1).Value;

    Наименование = Лист.Cells(Строка, 2).Value;

    // Создаём элемент в 1С

    Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Наименование);

    Если Номенклатура.Пустая() Тогда

    Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();

    Номенклатура.Наименование = Наименование;

    Номенклатура.Артикул = Артикул;

    Номенклатура.Записать();

    КонецЕсли;

    Строка = Строка + 1;

    КонецЦикла;

    РабочаяКнига.Close(Ложь);

    Excel.Quit();

    🔹 Плюсы метода:

    • 📈 Возможность предварительной обработки данных в Excel (фильтрация, сортировка).
    • 🔄 Поддержка формул и связей между листами.

    🔹 Минусы:

    • 🐢 Медленнее, чем прямая загрузка из CSV.
    • 💻 Требует установленного Microsoft Excel на компьютере.

    6. Типичные ошибки при работе с CSV в 1С и их решения

    Даже опытные пользователи сталкиваются с проблемами при импорте CSV. Рассмотрим самые распространённые ошибки и способы их исправления:

    Ошибка Причина Решение
    Недопустимый символ в позиции X Некорректная кодировка или спецсимволы (например, «») Сохраните CSV в UTF-8 без BOM или замените символы в Excel
    Несоответствие количества полей Разное количество столбцов в строках CSV Проверьте файл на пустые ячейки в конце строк
    Ошибка преобразования значения В CSV текст, где ожидается число (например, "1 000" вместо 1000) Исправьте формат ячеек в Excel перед сохранением в CSV
    Объект не найден Ссылка на несуществующий справочник или документ Проверьте название объекта в коде или обработке
    Дубль по уникальному полю Повторяющийся артикул или код в CSV Настройте обработку дублей в параметрах загрузки или удалите дубли в файле

    ⚠️ Внимание: Если CSV сформирован в Google Таблицах, при экспорте выбирайте CSV (текущий лист) и проверяйте кодировку — по умолчанию Google использует UTF-8, но иногда добавляет лишние символы.

    💡

    Для проверки структуры CSV используйте текстовые редакторы вроде Notepad++ или VS Code с плагином Excel Viewer. Они показывают скрытые символы (табуляции, переводы строк), которые могут мешать импорту.

    FAQ: Частые вопросы по работе с CSV в 1С

    Можно ли загрузить CSV в 1С:Зарплата и Управление Персоналом?

    Да, но стандартные обработки в 1С:ЗУП ориентированы на загрузку данных о сотрудниках (ФИО, табельные номера, оклады). Для импорта CSV используйте:

    1. Обработку ЗагрузкаДанныхИзТабличногоДокумента (меню Сервис → Обмен данными).
    2. Внешнюю обработку Загрузка из Excel (доступна на портале 1С:ИТС).

    Пример структуры CSV для ЗУП:

    ТабельныйНомер;Фамилия;Имя;Отчество;Оклад
    

    123;Иванов;Иван;Иванович;50000

    Как автоматизировать ежедневную загрузку CSV в 1С?

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

    1. Расписание в 1С: используйте Регламентные задания (меню Администрирование → Поддержка и обслуживание).
    2. Внешний скрипт: напишите обработку на встроенном языке и запускайте её через планировщик задач Windows.
    3. Облачный сервис: для интеграции с Google Диск или Yandex Диск используйте 1С:Коннектор.

    Пример кода для регламентного задания:

    Процедура ВыполнитьЗагрузку() Экспорт
    

    ПутьКФайлу = "C:\Обмен\price.csv";

    Если ФайлСуществует(ПутьКФайлу) Тогда

    ЗагрузитьCSV(ПутьКФайлу); // Вызов процедуры из предыдущего раздела

    КонецЕсли;

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

    Почему 1С не видит CSV-файл при выборе через диалог?

    Возможные причины:

    • 🔹 Файл имеет расширение .txt вместо .csv — переименуйте его.
    • 🔹 В диалоговом окне 1С установлен фильтр Только файлы 1С (.dt, .xml) — выберите Все файлы (.).
    • 🔹 Файл заблокирован антивирусом — временно отключите защиту или добавьте исключение.
    Как конвертировать XLSX в CSV для загрузки в 1С?

    Инструкция:

    1. Откройте файл в Excel.
    2. Выделите нужный лист и нажмите Файл → Сохранить как.
    3. В поле Тип файла выберите CSV (разделители — запятые)(*.csv).
    4. Нажмите Сохранить и подтвердите сохранение только активного листа.

    ⚠️ Важно: Если в данных есть запятые (например, в наименованиях), Excel автоматически обернёт такие ячейки в кавычки. 1С корректно обрабатывает такой формат, но если возникают ошибки, замените запятые на точку с запятой вручную.

    Какие альтернативы CSV можно использовать для обмена данными в 1С?

    Если CSV не подходит (например, из-за ограничений на размер файла или сложной структуры), рассмотрите:

    • 📄 XML: поддерживает иерархические данные, но требует XSD-схемы.
    • 🗃️ JSON: удобен для веб-интеграций, но в 1С нужна обработка для парсинга.
    • 📊 XLSX: через COM-соединение или обработки вроде Загрузка из Excel.
    • 🔗 Прямая интеграция по API: для облачных сервисов (например, МойСклад, Битрикс24).