Импорт таблицы Excel в 1С 8.3: справочники, цены и документы без ручного ввода

· 10 мин

Содержание

Загрузить данные в 1С из Excel можно тремя способами: встроенной командой Загрузить в списке справочника или в табличной части документа, внешней обработкой «Загрузка данных из табличного документа» или собственным кодом. Для номенклатуры и строк накладной в БП 3.0 и УТ 11 почти всегда хватает первого способа. Обработка нужна для справочников и регистров, где встроенной загрузки нет.

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

Готовим файл Excel к импорту в 1С

1С читает лист как простую сетку: строка — один объект, колонка — один реквизит. Всё, что красиво для человека, мешает загрузке.

Что сделать с таблицей до загрузки:

  • 🧹 Одна строка заголовков. Шапку из трёх строк, логотип и итоги внизу удалите.
  • 🔗 Без объединённых ячеек. Выделите весь лист и снимите объединение.
  • 🔢 Числа — числами. Цены и количество не должны быть текстом с пробелами вроде 1 250,00 ₽. Уберите символ валюты и пробел-разделитель тысяч.
  • ✂️ Без пробелов по краям. Артикул А-100 с пробелом в конце 1С не найдёт. В Excel поможет функция СЖПРОБЕЛЫ во вспомогательной колонке.
  • 🅰️ ИНН, КПП, коды и штрихкоды — текстом. Иначе Excel срежет ведущий ноль, а штрихкод EAN-13 превратит в 4,6E+12.
  • 📅 Даты — датами одного формата, без смеси 01.02.2025 и 1 февраля.
  • 📄 Один лист — один вид данных. Номенклатуру и контрагентов держите в разных файлах.

Сохраняйте файл в .xlsx. Современная платформа 8.3 читает этот формат сама, установленный Excel на компьютере не нужен. Старый .xls и .csv загружаются хуже: с .csv чаще всего и всплывают проблемы с кодировкой.

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

Встроенная команда «Загрузить» в списках и документах

В БП 3.0, УТ 11 и УНФ загрузка из файла встроена в типовые формы. Это самый безопасный путь: программа сама подсказывает, какие колонки ей нужны.

Где команда есть точно:

Что загружаемГде искать команду
НоменклатураСписок справочника «Номенклатура», командная панель
Строки накладной, счёта, реализацииТабличная часть «Товары» внутри документа
Цены по прайсуТабличная часть документа «Установка цен номенклатуры»

В некоторых формах кнопка спрятана в меню Ещё. Название в разных релизах звучит как Загрузить или Загрузить из файла.

Как проходит загрузка

  1. Нажмите Загрузить. Откроется окно с пустой таблицей и шапкой колонок, которые ждёт 1С.
  2. Скопируйте данные из Excel (Ctrl+C) и вставьте в эту таблицу (Ctrl+V). Второй вариант — кнопка загрузки из файла в том же окне.
  3. Проверьте, что колонки встали на свои места. Если порядок в Excel другой, переставьте колонки в файле или укажите соответствие в окне.
  4. Нажмите Далее. 1С покажет, какие строки она сопоставила с существующими элементами, а какие создаст заново.
  5. Для несопоставленных строк выберите: создать новые элементы или подобрать вручную.
  6. Завершите загрузку и откройте пару элементов, чтобы проверить результат.

Шаг 4 — главный. Если программа пишет, что из 500 строк сопоставлено 0, а у вас в базе эти товары уже есть, остановитесь: скорее всего, не совпадает ключ (пробелы, другой артикул, другое наименование).

Обработка «Загрузка данных из табличного документа»

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

Запуск

  1. Откройте 1С в режиме Предприятие под пользователем с правами администратора.
  2. Выберите Файл → Открыть и укажите файл .epf.
  3. Платформа выдаст предупреждение защиты от опасных действий. Если файл получен из надёжного источника, разрешите открытие.

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

Что настроить в обработке

  • 🎯 Режим загрузки — в справочник, в табличную часть документа или в регистр сведений .
  • 📚 Вид объекта — какой именно справочник или документ заполняем.
  • 📋 Табличный документ — сюда вставляете данные из Excel или открываете файл.
  • 🔢 Первая строка данных — обычно 2, если в первой строке заголовки.
  • ↔️ Номера колонок — для каждого реквизита указываете, из какой колонки брать значение.

Настройки сохраняются в файл. Если загрузку повторяете раз в месяц, сохраните их один раз и потом только подставляйте новый файл.

Сопоставление колонок и типов данных в 1С

Это место, где решается, будет ли загрузка чистой или придётся удалять 2000 дублей.

Для каждого реквизита обработка позволяет выбрать, как получить значение:

РежимЧто делаетКогда брать
Искать / поле поискаПо этой колонке 1С ищет существующий элементАртикул, код, ИНН — один ключ на загрузку
УстанавливатьБерёт значение из колонки как естьНаименование, цена, количество
Значение по умолчаниюОдно значение для всех строкВид номенклатуры, ставка НДС, единица
ВычислятьЗначение считается выражением на встроенном языкеСклейка полей, пересчёт единиц

Ссылочные реквизиты

Самая частая ловушка — реквизиты-ссылки: единица измерения, ставка НДС, группа, страна. В Excel там просто текст, а 1С нужно найти по этому тексту элемент другого справочника.

  • Если в Excel написано шт., а в справочнике единиц — шт, ссылка останется пустой.
  • Ставку НДС пишите так, как она называется в перечислении программы, например 20%, а не 0,2.
  • Группы номенклатуры создайте заранее, иначе часть товаров «упадёт» в корень справочника.

Флажок «Не создавать новых элементов» включайте при первой пробной загрузке. Так вы увидите, что программа нашла, ничего не испортив.

Номенклатура и контрагенты: особенности справочников

Номенклатура

В БП 3.0 у карточки номенклатуры есть обязательные для учёта поля: вид номенклатуры, единица измерения, ставка НДС. Если их не заполнить при загрузке, товар создастся, но в документе вылезут пустые счета учёта или ставка «Без НДС».

Порядок, который работает:

  1. Создайте в базе нужные виды номенклатуры и группы.
  2. Убедитесь, что для видов настроены счета учёта (Справочники → Товары и услуги → Счета учета номенклатуры).
  3. Грузите номенклатуру с ключом по артикулу, вид и ставку НДС задайте значением по умолчанию.
  4. Наименование для печати (полное наименование) загрузите отдельной колонкой — оно попадает в накладные и счета-фактуры.

Контрагенты

Для контрагентов ключ поиска — ИНН. Наименование для этого не годится: ООО «Ромашка» и Ромашка ООО для программы разные строки.

  • Колонку ИНН держите в текстовом формате, проверьте длину: 10 цифр у организации, 12 у ИП и физлица.
  • КПП загружайте отдельной колонкой, только для юрлиц.
  • Вид контрагента (юрлицо или физлицо) лучше задать по умолчанию, разбив файл на две части.

После загрузки откройте несколько карточек и воспользуйтесь заполнением реквизитов по ИНН (работает при подключённой интернет-поддержке). Так подтянутся адрес и полное наименование из ЕГРЮЛ, и не придётся грузить их из Excel.

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

Прайс-лист поставщика и документы из Excel

Цены из прайса

Прайс-лист — типичный повод загрузить в 1С данные из Excel. В БП 3.0 цены хранятся документом «Установка цен номенклатуры» (раздел Склад). Создайте документ, выберите тип цен и загрузите в табличную часть колонки «Артикул» и «Цена».

Если в прайсе есть товары, которых нет в базе, сначала загрузите номенклатуру, потом цены. Иначе строки с новыми позициями останутся пустыми.

Накладная поставщика

Поставщик прислал счёт на 300 позиций в Excel — не набирайте его вручную:

  1. Создайте документ поступления, заполните шапку: контрагент, договор, склад.
  2. В табличной части «Товары» нажмите Загрузить.
  3. Вставьте колонки: артикул или наименование, количество, цена.
  4. Сверьте итоговую сумму документа с суммой в файле поставщика до проведения.

Много документов сразу

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

  • 🔄 настроить обмен через формат EnterpriseData (при переходе из другой программы);
  • 🛠️ написать обработку, которая группирует строки Excel по номеру документа и создаёт документы в цикле.

Массовое создание документов делайте сначала на копии базы. Перед загрузкой в рабочую базу сделайте резервную копию. Удалять 150 ошибочных проведённых документов по одному долго, а помеченные на удаление ещё тянут за собой движения.

Ошибки при загрузке из Excel: кодировка, форматы, пустые ссылки

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

Ещё одна неочевидная проблема — разделитель дробной части. Если файл пришёл из программы с английскими настройками, в нём 1250.50 вместо 1250,50. 1С может прочитать такую цену неверно. Замените точку на запятую в Excel до загрузки.

Автоматизация: загрузка из Excel кодом и регламентным заданием

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

Пример: обновить или создать номенклатуру по артикулу. Колонка 1 — артикул, колонка 2 — наименование, данные со второй строки.

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

	ТабДок = Новый ТабличныйДокумент;
	ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);

	Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл

		Стр = Формат(НомерСтроки, "ЧГ=0");
		Артикул      = СокрЛП(ТабДок.Область("R" + Стр + "C1").Текст);
		Наименование = СокрЛП(ТабДок.Область("R" + Стр + "C2").Текст);

		Если ПустаяСтрока(Артикул) Или ПустаяСтрока(Наименование) Тогда
			Продолжить;
		КонецЕсли;

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

		Объект.Наименование = Наименование;
		Объект.Записать();

	КонецЦикла;

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

Что важно в этом коде:

  • Пустой артикул пропускаем. Иначе НайтиПоРеквизиту найдёт любой товар без артикула и перезапишет его.
  • Формат(..., "ЧГ=0") убирает пробел-разделитель из номера строки. Без него на строке 1000 адрес ячейки станет R1 000C1 и чтение сломается.
  • Процедура работает на сервере, поэтому файл должен лежать там, где его видит сервер 1С. С клиента файл сначала передают на сервер через помещение во временное хранилище.
  • Для новых элементов в реальной обработке заполните вид номенклатуры, единицу и ставку НДС — как в разделе про справочники.

Дальше процедуру можно повесить на регламентное задание, которое раз в сутки забирает файл из сетевой папки. Чтобы не прочитать файл повторно, после загрузки перемещайте его в подпапку «Загружено».

Свою обработку меняйте только через расширение или внешний файл .epf, а не правкой типовой конфигурации. Иначе при следующем обновлении придётся сравнивать и объединять изменения вручную.

Чего не делать

Вариант через COM-объект Excel.Application встречается в старых инструкциях. Он требует установленного Excel на сервере, работает медленно и зависает при открытом диалоге в Excel. Чтение через ТабличныйДокумент проще и надёжнее.

Можно ли загрузить в 1С из Excel без внешних обработок?
Да. В БП 3.0, УТ 11 и УНФ номенклатуру и строки документов загружают встроенной командой «Загрузить» в списке или табличной части.
Нужно ли устанавливать Excel на компьютер для загрузки?
Для файлов .xlsx — нет: платформа 8.3 читает их сама. Excel нужен только чтобы подготовить таблицу.
Как не создать дубли при повторной загрузке?
Выберите уникальный ключ поиска — артикул, код или ИНН — и сначала прогоните загрузку с запретом создания новых элементов.
Можно ли загрузить остатки из Excel?
Можно. Остатки вводят документами ввода начальных остатков; если в их табличной части нет команды загрузки, используйте универсальную обработку в режиме загрузки в табличную часть.
Работает ли загрузка в базе 1С:Фреш?
Встроенная команда «Загрузить» — часть конфигурации, поэтому работает и в облаке. Внешние обработки в сервисе подключаются по его правилам, а не простым открытием файла.