Импорт CSV-файла в 1С 8.3: кодировка, разделители и сопоставление колонок

· 9 мин

Содержание

Загрузить CSV в 1С 8.3 проще всего встроенным помощником «Загрузка данных из файла»: откройте список справочника (например, «Номенклатура» или «Контрагенты»), нажмите в командной панели «Загрузить», выберите файл .csv, сопоставьте колонки с реквизитами и подтвердите загрузку. Помощник есть в Бухгалтерии 3.0, УТ 11, Комплексной автоматизации 2 и других конфигурациях на БСП, поэтому порядок действий в них одинаковый.

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

1. Подготовка CSV-файла перед загрузкой в 1С

CSV — это обычный текст: одна строка файла = одна запись, значения разделены символом. Прежде чем загружать файл, откройте его в «Блокноте» или Notepad++, а не в Excel. Excel показывает уже «причёсанные» данные и прячет реальные проблемы.

Что проверить в исходном файле:

  • 📄 Первая строка — заголовки колонок. «Артикул;Наименование;Цена;Единица». По ним вы потом будете сопоставлять поля.
  • ✂️ Разделитель один на весь файл. Точка с запятой ; или запятая ,. Смешивать нельзя.
  • 🔢 Числа без пробелов-разделителей тысяч. 12500,00, а не 12 500,00. Неразрывный пробел из выгрузки банка или маркетплейса 1С не распознает как число.
  • 📅 Даты в одном формате. Лучше ДД.ММ.ГГГГ: 05.03.2026.
  • 🧾 Нет пустых строк в конце и итоговой строки «Итого». Иначе загрузится лишняя позиция.
  • 🔑 Есть ключевое поле для поиска существующих записей: артикул, код, ИНН, штрихкод.

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

Артикул;Наименование;Единица;Цена
00125;Бумага А4 500 листов;шт;389,00
00126;"Ручка шариковая; синяя";шт;24,50
00127;Скрепки 28 мм;упак;65,00

Во второй строке точка с запятой стоит внутри названия, поэтому значение взято в двойные кавычки. Так требует формат CSV, и без кавычек строка развалится на лишнюю колонку.

Если файл хотя бы раз открывали и сохраняли в Excel, проверьте артикулы и ИНН. Excel превращает 00125 в 125, а длинный штрихкод — в 4,6E+12. Такие значения 1С уже не сопоставит с существующими.

2. Как запустить загрузку CSV в 1С через встроенный помощник

Помощник «Загрузка данных из файла» вызывается из формы списка того объекта, куда грузите данные. Отдельного пункта в меню разделов у него нет.

Загрузка в справочник

  1. Откройте список справочника. Для товаров в БП 3.0 это Справочники → Товары и услуги → Номенклатура, для контрагентов — Справочники → Покупки и продажи → Контрагенты.
  2. В командной панели нажмите «Загрузить». Если кнопки не видно, она спрятана в меню «Ещё».
  3. В открывшемся окне есть таблица-шаблон. Данные можно вставить в неё через буфер обмена или нажать «Загрузить из файла» и выбрать .csv.
  4. Нажмите «Далее» — откроется шаг сопоставления.

Помощник читает форматы .xlsx, .xls, .ods, .mxl и .csv. Для CSV он сам пытается определить разделитель и кодировку.

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

Спецификацию поставщика или заказ покупателя часто нужно загрузить прямо в документ. В «Поступлении (акты, накладные, УПД)» и «Реализации» БП 3.0 над табличной частью «Товары» есть команда «Загрузить». Работает она так же: файл → сопоставление колонок → строки попадают в документ.

После загрузки проверьте ставку НДС и счета учёта в строках. Помощник заполняет их по настройкам номенклатуры, а не из файла, если вы явно не сопоставили колонку.

Когда помощника нет

В старых нетиповых конфигурациях встроенной загрузки может не быть. Варианты:

СпособКогда подходитРиски
Помощник «Загрузка данных из файла»Типовые конфигурации на БСППочти нет: есть предпросмотр
Внешняя обработка загрузки из табличного документаНетиповая база, загрузка в любые справочники и документыМожет записать что угодно куда угодно — нужна копия базы
Своя обработка на встроенном языкеНестандартный формат, регулярный обменНужен программист, поддержка при обновлениях
Конвертация CSV в XLSX и загрузка помощникомПомощник не распознал файлExcel может испортить коды и даты

3. Сопоставление колонок CSV с полями 1С

Это главный шаг. Ошибка здесь — и цена ляжет в наименование, а артикул в комментарий.

На шаге сопоставления помощник показывает колонки файла и предлагает для каждой выбрать реквизит 1С. Если заголовок в файле совпадает с названием реквизита («Наименование», «Артикул», «ИНН»), колонка подставится сама.

Как настроить соответствие полей:

  1. Пройдите по каждой колонке и проверьте выбранный реквизит.
  2. Колонкам, которые не нужны, оставьте пустое соответствие — они не загрузятся.
  3. Выберите поле, по которому 1С будет искать уже существующие записи. Для номенклатуры — артикул или штрихкод, для контрагентов — ИНН.
  4. Для ссылочных реквизитов (единица измерения, вид номенклатуры, страна) 1С ищет значение в своём справочнике по наименованию. Текст в файле должен совпадать: шт, а не штука.

Пример схемы сопоставления для прайса поставщика:

Сопоставление полей
Артикул→Номенклатура.Артикул (ключ поиска)
Наименование→Номенклатура.Наименование
Единица→Единица измерения (поиск по наименованию)
Цена→Цена в документе или установке цен
Ставка НДС→Ставка НДС (20%, 10%, Без НДС)

Перед большой загрузкой прогоните файл из 5–10 строк. Так вы за минуту увидите, правильно ли легли поля, и не будете потом чистить 3000 позиций.

4. Кодировка и разделитель CSV: почему 1С видит кракозябры

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

Кодировка

Файлы CSV бывают в двух основных кодировках:

КодировкаОткуда обычно приходитКак выглядит ошибка
UTF-8Маркетплейсы, интернет-магазины, Google Таблицы, выгрузки из веб-сервисовАртикул вместо «Артикул»
Windows-1251 (ANSI)Excel в русской Windows, старые учётные программыÐàðòèêóë или знаки вопроса

Как исправить кодировку:

  1. Откройте файл в Notepad++.
  2. В меню «Кодировки» посмотрите текущую. Если текст читается при выборе другой кодировки — это и есть правильная.
  3. Выберите «Преобразовать в UTF-8» (с BOM надёжнее) и сохраните файл.

UTF-8 с BOM — самый безопасный вариант. Метка BOM в начале файла сразу сообщает программе, как читать текст.

Разделитель и десятичный знак

Excel в русской локали сохраняет CSV с разделителем ;, а англоязычные сервисы — с ,. Если 1С показывает все значения в одной колонке, разделитель не распознан.

Что делать:

  • 🔁 Замените разделитель в Notepad++ через «Поиск → Замена». Аккуратно: запятая может стоять и внутри цены 389,00.
  • 🔢 Если разделитель — запятая, десятичный знак в числах должен быть точкой, иначе значение 389,00 разрежется на две колонки.
  • 🧷 Тексты с разделителем внутри берите в кавычки.

Не меняйте разделитель простой заменой всех запятых, если в файле есть дробные числа или адреса. Сначала замените десятичные запятые в числовых колонках, потом разделитель.

5. Ошибки и дубли при импорте CSV

На последнем шаге помощник показывает предпросмотр: какие строки будут созданы как новые, какие сопоставлены с существующими записями, а какие требуют решения. Ничего не записывается в базу, пока вы не подтвердите.

Как избежать дублей

Дубли появляются, когда 1С не смогла найти существующую запись и создала новую. Причины:

  • 🔑 Ключевое поле не выбрано или выбрано не то. Поиск по наименованию ненадёжен: «Бумага А4» и «Бумага А4» с двумя пробелами — разные строки.
  • 0️⃣ Потеряны ведущие нули: 125 в файле, 00125 в базе.
  • ␣ Лишние пробелы в начале или конце значения.
  • 🔀 В базе уже есть дубли, и одной строке файла соответствуют две записи. Помощник пометит такую строку как неоднозначную — выберите нужный элемент вручную.

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

Типовые ошибки загрузки

Диагностика: выберите симптом

Если ошибка уже случилась и создано 200 дублей, не удаляйте их сразу. Пометьте на удаление, проверьте, что на них нет ссылок в документах, и только потом удаляйте помеченные. Для слияния дублей в БСП-конфигурациях есть обработка «Поиск и удаление дублей» в разделе Администрирование → Обслуживание.

Перед первой массовой загрузкой в рабочую базу сделайте резервную копию. Откатить тысячу созданных элементов вручную долго.

6. Автоматическая загрузка CSV по расписанию

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

Пример чтения CSV встроенным языком

Код ниже читает файл в UTF-8, пропускает строку заголовков, ищет номенклатуру по артикулу и создаёт новую, если не нашёл. Обязательные реквизиты (вид номенклатуры, единица) заполните по правилам своей конфигурации.

Процедура ЗагрузитьНоменклатуруИзCSV(ИмяФайла) Экспорт

	Чтение = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
	Строка = Чтение.ПрочитатьСтроку(); // строка заголовков
	НомерСтроки = 1;

	Строка = Чтение.ПрочитатьСтроку();
	Пока Строка <> Неопределено Цикл
		НомерСтроки = НомерСтроки + 1;

		Если ПустаяСтрока(Строка) Тогда
			Строка = Чтение.ПрочитатьСтроку();
			Продолжить;
		КонецЕсли;

		Поля = СтрРазделить(Строка, ";", Истина);
		Если Поля.Количество() < 2 Тогда
			ЗаписьЖурналаРегистрации("ЗагрузкаCSV", УровеньЖурналаРегистрации.Предупреждение,,,
				СтрШаблон("Строка %1: мало колонок", НомерСтроки));
			Строка = Чтение.ПрочитатьСтроку();
			Продолжить;
		КонецЕсли;

		Артикул      = СокрЛП(Поля[0]);
		Наименование = СокрЛП(Поля[1]);

		Ссылка = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул);
		Если Ссылка.Пустая() Тогда
			Объект = Справочники.Номенклатура.СоздатьЭлемент();
			Объект.Артикул = Артикул;
		Иначе
			Объект = Ссылка.ПолучитьОбъект();
		КонецЕсли;
		Объект.Наименование = Наименование;

		Попытка
			Объект.Записать();
		Исключение
			ЗаписьЖурналаРегистрации("ЗагрузкаCSV", УровеньЖурналаРегистрации.Ошибка,,,
				СтрШаблон("Строка %1: %2", НомерСтроки, ОписаниеОшибки()));
		КонецПопытки;

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

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

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

Ограничение примера: СтрРазделить не понимает кавычки. Если в значениях бывает ; внутри кавычек, строку нужно разбирать посимвольно или договориться с источником о другом разделителе. Для файлов в Windows-1251 укажите кодировку КодировкаТекста.ANSI.

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

Есть два рабочих способа:

  1. Дополнительная обработка с расписанием. Обработку регистрируют в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Если в ней есть команда с вызовом серверного метода, для команды можно задать расписание выполнения.
  2. Регламентное задание в расширении конфигурации. Программист добавляет в расширение регламентное задание с процедурой загрузки. Типовая конфигурация при этом не снимается с поддержки.

В клиент-серверной базе регламентное задание выполняется на сервере 1С. Путь к файлу должен быть доступен серверу и пользователю, от имени которого запущена служба (часто USR1CV8), а не вашему компьютеру. Используйте сетевую папку вида \\fileserver\obmen\price.csv с правами на чтение для этого пользователя.

После успешной загрузки переносите файл в подпапку archive, а при ошибке — в error. Так одна и та же выгрузка не загрузится дважды, а проблемные файлы легко найти.

7. Частые вопросы про импорт CSV в 1С

Можно ли загрузить банковскую выписку в формате CSV?
Штатно нет. Загрузка выписок в 1С работает с текстовым форматом обмена 1С с клиент-банком. Попросите банк выгрузить выписку для 1С или подключите прямой обмен с банком.
Чем CSV лучше XLSX для загрузки в 1С?
CSV не хранит форматирование и формулы, поэтому значения грузятся ровно такими, какие записаны. Минус — нужно следить за кодировкой и разделителем.
Сколько строк можно загрузить за один раз?
Жёсткого лимита у помощника нет, но на десятках тысяч строк сопоставление идёт медленно. Большие файлы удобнее делить на части по 5–10 тысяч строк.
Как выгрузить данные из 1С в CSV?
Сформируйте отчёт или откройте список, сохраните табличный документ в формате Excel и уже из Excel сохраните как CSV. Для регулярной выгрузки пишут обработку с объектом ЗаписьТекста.
Можно ли загрузить CSV в файловую базу по расписанию?
Можно, но регламентные задания в файловой базе выполняются только при запущенном сеансе. Для надёжной автоматизации нужна клиент-серверная база.