Справочники и Данные · 12 мин
Как загрузить CSV в 1С: способы, настройки и типичные ошибки
Как загрузить CSV-файл в 1С: встроенные обработки, сторонние инструменты и загрузка кодом. Разберём настройку разделителей, кодировки, типичные ошибки и проверку результата.
CSV-файл — один из самых распространённых форматов обмена данными между системами: прайсы поставщиков, выгрузки из банковских систем, списки контрагентов и товаров часто приходят именно в виде текстовых файлов с разделителями. В 1С нет универсальной кнопки «загрузить CSV» во всех конфигурациях, поэтому способ загрузки зависит от того, какая у вас конфигурация, какие данные нужно перенести и есть ли доступ к конфигуратору.
На практике используются три подхода: типовые обработки загрузки, встроенные в конфигурации «1С:Библиотека стандартных подсистем», внешние универсальные обработки и загрузка программным кодом через встроенный язык. Ниже разберём каждый вариант, настройку разделителей и кодировки, а также типичные ошибки, из-за которых данные загружаются криво или не загружаются вовсе.
Подготовка CSV-файла перед загрузкой
Большинство проблем при загрузке возникает не в 1С, а в самом файле. Перед импортом откройте CSV в текстовом редакторе (например, Notepad++) и проверьте три вещи: кодировку, разделитель и структуру колонок. Для 1С оптимальна кодировка UTF-8; файлы в ANSI (Windows-1251) часто дают «кракозябры» вместо кириллицы, если обработка читает файл как UTF-8.
Разделитель колонок в российских выгрузках — чаще всего точка с запятой (;), потому что запятая используется как десятичный разделитель в числах. Файлы из зарубежных систем обычно разделены запятыми. Если внутри текстовых полей встречается сам разделитель, такие значения должны быть обёрнуты в кавычки — иначе строка «развалится» на лишние колонки.
Проверьте также формат чисел и дат. Даты вида 31.12.2026, 2026-12-31 и 12/31/2026 обрабатываются по-разному, и обработка должна знать, какой формат использовать. Числа с пробелами-разделителями тысяч («1 250,50») нередко распознаются как текст — их лучше предварительно очистить.
Откройте файл в Notepad++ и посмотрите кодировку в строке состояния; при несовпадении пересохраните в нужной
Посмотрите первую строку файла и убедитесь, что все строки имеют одинаковое число разделителей
В обработке укажите, с какой строки начинаются данные, чтобы шапка не попала в справочник
Убедитесь, что нет смешения форматов дат и чисел с пробелами-разделителями тысяч
Загрузка через типовую обработку «Загрузка данных из файла»
В конфигурациях на базе «1С:Библиотека стандартных подсистем» (Управление торговлей 11, ERP, Комплексная автоматизация, Бухгалтерия предприятия 3.0 и другие) есть встроенный механизм загрузки табличных данных. Обычно он доступен из карточки списка справочника: например, в списке «Номенклатура» — кнопка «Ещё» → «Загрузить данные из файла», либо через раздел «Администрирование» → «Загрузка данных из файла».
Обработка принимает файлы Excel, но CSV можно предварительно открыть в Excel или LibreOffice Calc и сохранить как XLSX — это самый простой путь без программирования. Дальше мастер предложит сопоставить колонки файла реквизитам справочника: вы указываете, что колонка «Артикул» соответствует реквизиту «Артикул», «Наименование» — наименованию и так далее.
Важная особенность: типовая обработка умеет искать существующие элементы по ключевым полям (например, по артикулу или ИНН) и обновлять их вместо создания дублей. Перед запуском решите, что делать с совпадениями — обновлять, пропускать или создавать новые элементы. Неправильный выбор на этом шаге — частая причина задвоения справочников.
- 1Откройте CSV в Excel или LibreOffice Calc, проверьте колонки и сохраните как XLSX
- 2В 1С откройте нужный справочник и выберите «Ещё» → «Загрузить данные из файла»
- 3Укажите файл и сопоставьте колонки реквизитам справочника
- 4Настройте поиск дублей по ключевому полю (артикул, ИНН, код)
- 5Запустите загрузку и изучите протокол: сколько строк загружено, сколько пропущено и почему
- 6Откройте справочник и выборочно сверьте несколько элементов с исходным файлом
Загрузка через внешние универсальные обработки
Если типовой обработки нет (старые конфигурации, самописные решения) или она не покрывает вашу задачу — например, нужно загрузить данные в табличную часть документа — используют внешние обработки. Наиболее известная — «Загрузка данных из табличного документа» с диска ИТС: она умеет читать файлы, вставленные в табличный документ, и записывать данные в справочники, регистры сведений и табличные части.
Порядок работы с ней такой: открываете обработку через «Файл» → «Открыть», выбираете режим загрузки (в справочник, в табличную часть, в регистр сведений), загружаете файл в табличный документ, затем на закладке «Настройка» сопоставляете номера колонок реквизитам и задаёте способ поиска существующих элементов.
Обратите внимание на режимы записи: «Загружать и проводить» для документов, «Устанавливать пометку удаления/снимать» для справочников. Ошибочно выбранный режим может привести к проведению документов, которые вы планировали только создать, — а это уже влияет на учётные данные.
Загрузка CSV программным кодом
Когда требуется регулярная автоматическая загрузка или нестандартная логика (проверки, преобразования, создание нескольких связанных объектов), CSV читают встроенным языком 1С. Базовый подход — чтение файла построчно через объект ЧтениеТекста и разбор строк по разделителю функцией СтрРазделить.
Типовой скелет кода выглядит так: открываем файл с указанием кодировки, читаем строки в цикле, разбиваем каждую на массив значений, ищем существующий элемент справочника по ключевому полю, при отсутствии создаём новый, заполняем реквизиты и записываем. Для больших файлов имеет смысл оборачивать загрузку в транзакцию порциями, чтобы при ошибке не получить частично записанные данные.
Чтение = Новый ЧтениеТекста("C:\import\price.csv", КодировкаТекста.UTF8);
Строка = Чтение.ПрочитатьСтроку(); // пропускаем заголовок
Строка = Чтение.ПрочитатьСтроку();
Пока Строка <> Неопределено Цикл
Поля = СтрРазделить(Строка, ";");
Элемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Поля[0]);
Если Элемент.Пустая() Тогда
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Артикул = Поля[0];
НовыйЭлемент.Наименование = Поля[1];
НовыйЭлемент.Записать();
КонецЕсли;
Строка = Чтение.ПрочитатьСтроку();
КонецЦикла;
Чтение.Закрыть();Этот способ требует доступа к конфигуратору или возможности запуска внешних обработок с кодом. В файловых базах код выполняется прямо на клиенте; в клиент-серверном варианте файл должен быть доступен серверу 1С, если чтение происходит в серверной процедуре, — частая причина ошибки «файл не найден» именно в этом.
Сравнение способов загрузки
Выбор способа зависит от конфигурации, объёма данных и регулярности задачи. Разовая загрузка прайса в типовую конфигурацию и ежедневный автоматический импорт банковских выписок — разные сценарии, требующие разных инструментов.
Сравнение способов загрузки CSV
Подходит для разовой загрузки в справочники типовых конфигураций; не требует программирования, но CSV нужно сначала сохранить как XLSX
Гибкий вариант для справочников, регистров сведений и табличных частей; требует подписки ИТС или поиска аналога и внимательной настройки режимов записи
Для регулярных и нестандартных задач с проверками и преобразованиями; требует навыков разработки и тестирования на копии базы
Самый простой путь при одноразовой загрузке; не подходит для автоматизации и больших регулярных потоков
Типичные ошибки и как их избежать
Первая группа ошибок связана с самим файлом: неверная кодировка превращает кириллицу в нечитаемые символы, неправильно определённый разделитель сливает все колонки в одну, а кавычки внутри текста без экранирования сдвигают колонки в части строк. Всё это диагностируется ещё до загрузки — достаточно открыть файл в текстовом редакторе и просмотреть десяток строк из начала, середины и конца.
Вторая группа — ошибки сопоставления и поиска. Если ключевое поле для поиска дублей выбрано неверно (например, наименование, которое у разных поставщиков написано по-разному), справочник задваивается. Если поле поиска пустое в части строк, такие строки либо пропускаются, либо создают элементы с пустым ключом — зависит от настроек обработки.
Третья группа — ошибки записи: попытка записать текст в числовой реквизит, дату в неподдерживаемом формате, значение длиннее ограничения строки. В протоколе загрузки такие строки обычно помечаются с описанием ошибки — не игнорируйте протокол, именно он показывает, что реально попало в базу.
Проверка результата после загрузки
Загрузка считается завершённой не после нажатия кнопки «Загрузить», а после сверки результата с источником. Минимальная проверка — сравнить количество строк в файле (за вычетом заголовка) с количеством созданных и обновлённых элементов из протокола. Расхождение означает, что часть строк пропущена или обработана с ошибкой.
Затем выборочно откройте 5–10 элементов из разных частей файла и сверьте ключевые реквизиты: наименование, артикул, цены, даты. Особое внимание — числам с дробной частью и датам: именно они чаще всего искажаются из-за форматов. Если загружались документы, проверьте, что они находятся в ожидаемом состоянии (проведены или просто записаны) и попали в правильный период.
Как проверить результат загрузки
Число загруженных и обновлённых элементов совпадает с числом строк файла минус заголовок
В протоколе есть пропущенные строки или ошибки записи
Русские названия читаются корректно
Нечитаемые символы — неверная кодировка, нужна повторная загрузка
Дробная часть на месте, нет сдвига разрядов
Цены в 100 раз больше/меньше — перепутан десятичный разделитель
Повторная загрузка того же файла обновляет элементы, не создавая новых
После повторной загрузки элементов стало вдвое больше
FAQ: частые вопросы о загрузке CSV в 1С
Можно ли загрузить CSV в 1С:Бухгалтерию 3.0 без программирования?
Да. Для справочников (номенклатура, контрагенты) используйте «Загрузку данных из файла» из карточки списка, предварительно сохранив CSV как XLSX. Для банковских выписок есть отдельный механизм обмена с банком, но он работает со своими форматами, а не с произвольным CSV.
Почему после загрузки русские буквы отображаются нечитаемыми символами?
Файл сохранён в кодировке Windows-1251, а обработка читает его как UTF-8 (или наоборот). Откройте CSV в Notepad++, преобразуйте в UTF-8 и повторите загрузку. Если элементы уже созданы с испорченными наименованиями, их придётся удалить или обновить повторной корректной загрузкой.
Как загрузить CSV в табличную часть документа, например товары в поступление?
Типовая обработка БСП этого не умеет. Используйте внешнюю обработку «Загрузка данных из табличного документа» в режиме загрузки в табличную часть: откройте документ, запустите обработку, сопоставьте колонки реквизитам табличной части и загрузите. Либо решите задачу программно.
Что делать, если в CSV разделитель — запятая, а в числах тоже запятые?
Такой файл неоднозначен: сначала преобразуйте его. Откройте в Excel через мастер импорта текста с указанием разделителя и форматов, проверьте результат и сохраните как XLSX или как CSV с точкой с запятой. Загружать «сырой» файл с двусмысленными разделителями нельзя — колонки сместятся.
Как избежать дублей при повторной загрузке одного файла?
Настройте поиск существующих элементов по уникальному полю: артикул, код, ИНН, штрихкод. В типовой обработке это делается на шаге сопоставления колонок, во внешних обработках — на закладке настройки. Проверьте поведение тестовой повторной загрузкой: элементы должны обновиться, а не продублироваться.
Можно ли автоматизировать регулярную загрузку CSV по расписанию?
Да, но только программно: пишется процедура чтения файла, которая вызывается регламентным заданием. Потребуется разместить файл в доступном серверу 1С каталоге, предусмотреть обработку ошибок, журналирование и поведение при отсутствии файла. Такую доработку выполняют на копии базы с последующим переносом в рабочую.
Что важно запомнить
Успешная загрузка CSV в 1С определяется подготовкой: правильная кодировка, однозначный разделитель и единые форматы чисел и дат решают большинство проблем ещё до импорта. Для типовых конфигураций используйте встроенную «Загрузку данных из файла», для нестандартных задач — внешние обработки или код. Всегда делайте копию базы, загружайте сначала пробную партию и сверяйте результат с исходным файлом по количеству строк и выборочным элементам.