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

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

Как загрузить в 1С файл CSV

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

CSV — один из самых распространённых форматов обмена данными: прайсы поставщиков, выгрузки из банковских систем, списки контрагентов и номенклатуры часто приходят именно в нём. В типовых конфигурациях 1С (Бухгалтерия, Управление торговлей, УНФ, ERP) есть встроенные механизмы загрузки табличных данных, а для нестандартных задач используются универсальные обработки или собственный код на встроенном языке.

Главная сложность при загрузке CSV — не сама процедура, а подготовка файла: разделитель колонок, кодировка, формат дат и чисел должны совпадать с тем, что ожидает программа. Большинство ошибок («всё слиплось в одну колонку», «кракозябры вместо русских букв») возникает именно на этом этапе и решается за пару минут, если знать, где смотреть.

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

Что проверить в файле CSV перед загрузкой

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

Откройте файл в «Блокноте» или Notepad++ и определите три вещи: какой символ разделяет колонки, есть ли строка заголовков с именами полей и в какой кодировке сохранён файл. Если русские буквы отображаются как «РљРѕРЅС‚СЂР°РіРµРЅС‚» — это UTF-8, прочитанный как ANSI; если как вопросительные знаки или «кракозябры» — наоборот, файл в Windows-1251 или повреждён.

Дополнительно проверьте формат дат (ДД.ММ.ГГГГ или ГГГГ-ММ-ДД), разделитель дробной части в числах и наличие кавычек вокруг текстовых значений, содержащих разделитель. Несоответствие любого из этих параметров приведёт либо к ошибке загрузки, либо к тихой порче данных — например, цена 1 250,50 превратится в текст или в число 125050.

Разделитель колонокЗапятая, точка с запятой или табуляция

Откройте файл в текстовом редакторе и посмотрите первую строку

КодировкаUTF-8 или Windows-1251

В Notepad++ кодировка видна в строке состояния справа внизу

Строка заголовковЕсть или нет

Если первая строка содержит имена колонок, при загрузке её нужно пропустить

Формат чисел и датЗависит от системы-источника

Сверьте с ожидаемым форматом: ДД.ММ.ГГГГ, разделитель дробной части

Загрузка штатными средствами типовой конфигурации

В большинстве типовых конфигураций на базе Библиотеки стандартных подсистем есть обработка «Загрузка данных из файла». Обычно она доступна из карточки списка справочника: откройте нужный справочник (например, «Номенклатура» или «Контрагенты»), нажмите «Ещё» и найдите пункт «Загрузить данные из файла». В некоторых конфигурациях обработка находится в разделе «Администрирование» → «Обслуживание» или «НСИ и администрирование».

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

После сопоставления запустите загрузку и дождитесь отчёта: программа покажет, сколько строк загружено, сколько пропущено и по какой причине. Не закрывайте окно, пока не убедитесь, что количество загруженных строк совпадает с количеством строк в файле (за вычетом заголовка).

Порядок загрузки через типовую обработку
  1. 1
    Сохраните CSV в кодировке UTF-8 и проверьте разделитель колонок
  2. 2
    Откройте список нужного справочника, нажмите «Ещё» → «Загрузить данные из файла»
  3. 3
    Выберите CSV-файл и дождитесь предпросмотра таблицы
  4. 4
    Сопоставьте колонки файла реквизитам справочника
  5. 5
    Запустите загрузку и изучите отчёт о результатах
  6. 6
    Откройте несколько созданных элементов и проверьте корректность полей

Загрузка в табличную часть документа

Частая задача — загрузить не справочник, а строки документа: товары в «Поступление товаров и услуг» или операции в банковскую выписку. Здесь действуют другие механизмы. В «1С:Бухгалтерии» банковские выписки загружаются через обмен с клиент-банком (раздел «Банк и касса» → «Выписки»), и формат там обычно не CSV, а специализированный (1CClientBankExchange). CSV из интернет-банка потребуется сначала преобразовать или использовать доработанную загрузку.

Для табличных частей документов во многих конфигурациях работает «Загрузка данных из файла» с выбором режима загрузки в табличную часть, либо кнопка «Загрузить» непосредственно в документе (есть, например, в «Управлении торговлей» при заполнении товаров). Если такой кнопки нет, используются внешние обработки заполнения табличных частей — их подключают через «Администрирование» → «Печатные формы, отчёты и обработки» → «Дополнительные отчёты и обработки».

Загрузка через универсальные внешние обработки

Если типовой обработки нет или она не покрывает задачу (например, нужно загрузить данные в регистр сведений или в документ нестандартного вида), применяют универсальные обработки загрузки табличных данных. Их открывают через «Файл» → «Открыть» (в файловой базе) или подключают как дополнительные обработки.

Общий принцип у всех таких обработок одинаковый: указываете файл, настраиваете параметры чтения (разделитель, кодировка, номер первой строки с данными), затем задаёте соответствие колонок реквизитам объекта и правила поиска существующих элементов — по коду, наименованию, ИНН или артикулу. Правило поиска критично: без него при повторной загрузке будут созданы дубли.

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

Программная загрузка CSV для разработчика

Если загрузку нужно автоматизировать (регламентное задание, кнопка в документе), CSV читается средствами встроенного языка. Типовой подход — объект ЧтениеТекста с указанием кодировки и метод ПрочитатьСтроку в цикле, либо ТекстовыйДокумент. Каждую строку разбирают по разделителю функцией СтрРазделить.

Ниже минимальный каркас чтения файла в кодировке UTF-8 с разделителем «точка с запятой» и пропуском первой строки заголовков:

Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);

Строка = Чтение.ПрочитатьСтроку(); // заголовки — пропускаем

Строка = Чтение.ПрочитатьСтроку();

Пока Строка <> Неопределено Цикл

Поля = СтрРазделить(Строка, ";");

Если Поля.Количество() >= 3 Тогда

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

НовыйЭлемент.Наименование = Поля[0];

НовыйЭлемент.Артикул = Поля[1];

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

КонецЕсли;

Строка = Чтение.ПрочитатьСтроку();

КонецЦикла;

Чтение.Закрыть();

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

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

bsl
Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
Строка = Чтение.ПрочитатьСтроку();
Пока Строка <> Неопределено Цикл
    Поля = СтрРазделить(Строка, ";");
    // обработка полей
    Строка = Чтение.ПрочитатьСтроку();
КонецЦикла;
Чтение.Закрыть();

Типичные ошибки и как их исправить

Самая частая проблема — «кракозябры» вместо русского текста. Причина всегда одна: файл сохранён в одной кодировке, а читается в другой. Решение — пересохранить файл в UTF-8 (в Notepad++: «Кодировки» → «Преобразовать в UTF-8») или указать в обработке кодировку Windows-1251.

Вторая по частоте — все данные попадают в одну колонку. Это значит, что обработка ожидает другой разделитель: файл с точкой с запятой читается как файл с запятой. Либо измените настройку разделителя в обработке, либо замените разделитель в файле.

Третья группа ошибок — числа и даты. Число «1 234,56» с пробелом-разделителем разрядов может не распарситься; дата «31.12.2026» не пройдёт, если обработка ждёт «2026-12-31». Такие значения приводят к формату заранее — в Excel или пакетной заменой в редакторе.

Типичные ошибки при загрузке CSV
01
Загрузка без правила поиска дублей — при повторном запуске справочник задваивается
02
Несовпадение кодировки — русский текст превращается в нечитаемые символы
03
Неверный разделитель — вся строка попадает в одну колонку
04
Загрузка строки заголовков как данных — появляется элемент с наименованием «Наименование;Артикул;Цена»
05
Числа с пробелами и нестандартными разделителями — значения записываются как текст или обнуляются
06
Тестирование новой обработки на рабочей базе — массовая порча данных без возможности быстрого отката

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

После загрузки сверьте количество: число строк с данными в файле должно совпадать с числом созданных или обновлённых элементов в отчёте обработки. Расхождение означает, что часть строк отклонена — причина обычно указана в протоколе загрузки.

Затем откройте выборочно 3–5 элементов из разных частей файла (начало, середина, конец) и проверьте ключевые поля: наименование без искажений, числа в правильном формате, даты корректны, ссылки на связанные справочники заполнены. Особое внимание — последней строке файла: если в нём нет перевода строки в конце, некоторые способы чтения её теряют.

Для документов дополнительно проверьте итоговые суммы: сумма по табличной части загруженного документа должна совпасть с контрольной суммой из источника (например, с итогом счёта поставщика).

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

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

Количество загруженных строк
Норма

Совпадает с числом строк данных в файле

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

Часть строк пропущена — смотрите протокол ошибок

Русский текст в элементах
Норма

Читается корректно

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

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

Числовые поля
Норма

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

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

Числа стали текстом, нулями или умножились на 100

Дубли элементов
Норма

Повторная загрузка обновляет существующие элементы

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

Создаются новые элементы с тем же наименованием

FAQ: частые вопросы о загрузке CSV в 1С

1С не видит CSV-файл при выборе — показывает только Excel. Что делать?

В диалоге выбора файла переключите фильтр типов файлов на «Все файлы (.)» — большинство обработок после выбора корректно разберут CSV. Если обработка жёстко привязана к Excel, откройте CSV в Excel и сохраните как XLSX, предварительно проверив, что колонки разделились правильно.

Русские буквы после загрузки превратились в непонятные символы. Как исправить?

Это несовпадение кодировок. Откройте файл в Notepad++, преобразуйте его в UTF-8 («Кодировки» → «Преобразовать в UTF-8»), сохраните и загрузите заново. Если обработка позволяет выбрать кодировку вручную, можно вместо этого указать Windows-1251.

Как загрузить CSV, если внутри текстовых полей встречается точка с запятой?

По стандарту CSV такие значения должны быть обёрнуты в двойные кавычки. Типовые обработки и СтрРазделить кавычки не учитывают, поэтому либо попросите источник данных выгружать с другим разделителем (например, табуляцией), либо используйте обработку с полноценным CSV-парсером, либо очистите данные до загрузки.

При повторной загрузке создаются дубли контрагентов. Как этого избежать?

Настройте в обработке правило поиска существующих элементов: для контрагентов обычно используют ИНН + КПП, для номенклатуры — артикул или код. Если обработка не поддерживает поиск, перед загрузкой очищайте ранее загруженные данные или доработайте логику программно.

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

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

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

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

Итог

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

Успешная загрузка CSV в 1С определяется подготовкой файла: правильная кодировка (обычно UTF-8), корректный разделитель и единый формат чисел и дат. Используйте типовую обработку «Загрузка данных из файла» для справочников, внешние обработки — для табличных частей и нестандартных объектов, программное чтение — для автоматизации. Всегда настраивайте поиск дублей, тестируйте на копии базы и сверяйте количество строк и контрольные суммы после загрузки.