Как загрузить данные из Excel в 1С: 5 проверенных способов с примерами

· 9 мин

Содержание

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

Какой способ выбрать, зависит от трёх вещей: сколько строк, как часто загрузка повторяется и умеет ли ваша конфигурация принимать файл «из коробки». Ниже — от самого безопасного к самому гибкому, с примерами и разбором ошибок.

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

Подготовка файла: что проверить до загрузки

Две трети проблем с загрузкой создаёт сам файл, а не 1С. Потратьте десять минут на приведение таблицы в порядок, и дальше всё пойдёт гладко.

Требования к структуре

  • 📌 Шапка таблицы — одна строка. Объединённые ячейки в заголовках уберите.
  • 📌 Одна строка — одна запись. Никаких промежуточных итогов, подзаголовков групп и пустых строк посреди данных.
  • 📌 Один столбец — один тип данных. Если в «Количестве» встречается «10 шт.», обработка получит строку вместо числа.
  • 📌 Формат файла лучше .xlsx. Старый .xls читается, но чаще даёт сбои с кодировкой и датами.

Что исправить в самих значениях

Что в ячейкеЧем грозитКак исправить
Число в виде текста (зелёный уголок)Сумма и количество не распознаютсяВыделить столбец, «Данные → Текст по столбцам → Готово»
Пробелы в начале и конце наименованияЭлемент не находится по названию, создаётся дубльФункция СЖПРОБЕЛЫ() и вставка значений
Неразрывный пробел в числе «1 250»Число читается как текстЗаменить символ на пустой через «Найти и заменить»
Дата текстом «5.3.24»Неверная дата или ошибкаПеревести в формат даты, проверить день и месяц
ИНН и артикулы без ведущих нулей0123 превращается в 123Задать текстовый формат столбца до ввода данных

💡 Сохраните копию файла под новым именем и работайте с ней. Оригинал поставщика пригодится, когда понадобится сверить итог.

Мини-проверка перед стартом

Файл готов к загрузке
Выполнено: 0 / 6

Вставка из буфера и типовая загрузка без программирования

Самый короткий способ — копирование через буфер обмена. Работает в табличных частях документов: поступление, реализация, ввод остатков, заказ.

Копирование столбцов в табличную часть

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

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

Типовая загрузка из табличного документа

Во многих конфигурациях 1С 8.3 есть обработка «Загрузка данных из табличного документа». Она открывается из списка справочника (номенклатура, контрагенты) или из документа, где загрузка предусмотрена. Точное расположение зависит от конфигурации и релиза, поэтому проще найти её так: откройте нужный список, раскройте меню «Ещё» и поищите пункт со словом «загрузка» или «загрузить».

Принцип одинаков везде:

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

Поле поиска выбирайте по уникальному значению: артикулу, ИНН или коду. Поиск по наименованию — прямой путь к дублям из-за лишнего пробела или регистра.

Для первого прогона загрузите 5-10 строк. Убедитесь, что реквизиты легли в нужные поля, и только потом отправляйте весь файл.

Загрузка прайса поставщика

Если нужны не карточки, а цены, используйте документ «Установка цен номенклатуры» и загрузку в его табличную часть. Тот же принцип: артикул как ключ, затем цена. Номенклатуру, которой нет в базе, сначала создайте справочной загрузкой.

Внешние обработки: когда типовых средств мало

Типовая загрузка не справляется, если нужно загрузить много реквизитов сразу, разнести строки по нескольким справочникам или раскладывать файл по сложным правилам. Тогда подключают внешнюю обработку (файл .epf) или расширение.

Где взять обработку

  • 🔹 Диск ИТС и сайт поддержки 1С — там лежат универсальные обработки загрузки.
  • 🔹 Профильные сообщества и каталоги готовых решений.
  • 🔹 Заказная разработка под вашу структуру файла, если загрузка повторяется регулярно.

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

Как подключить

  1. В режиме 1С:Предприятие откройте меню «Файл → Открыть» и выберите .epf. Если пункта нет, он включается правами и настройками пользователя.
  2. Либо подключите через раздел администрирования, где регистрируются дополнительные отчёты и обработки.
  3. Расширения .cfe ставятся через «Конфигуратор → Конфигурация → Расширения конфигурации », подробности зависят от платформы.

Хорошая обработка показывает предварительный просмотр, считает число строк «будет создано / будет обновлено / ошибки» и ведёт протокол. Если у вашей нет предпросмотра, это повод насторожиться.

Правила обмена: когда загрузка должна идти сама

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

Напрямую правила обмена из 1С (конвертация данных ) читают XML, а не Excel. Поэтому схема обычно такая:

  1. Excel превращается в промежуточный файл. Скриптом, обработкой или сервисом интеграции.
  2. 1С загружает его по правилам обмена и сама определяет, какие объекты создать.
  3. Результат попадает в протокол обмена.

Что нужно для настройки:

  • 🧩 Правила конвертации, в которых описано, какие реквизиты источника соответствуют реквизитам приёмника.
  • 🧩 Правила регистрации: что выгружать и по какому событию.
  • 🧩 Ключ сопоставления: как 1С узнаёт «этот контрагент у нас уже есть».

Для типовых сценариев (обмен между конфигурациями 1С) готовые правила уже встроены. Excel-файл от внешней стороны под них не подходит. Здесь нужен либо разработчик, либо универсальная обработка, которая делает эту работу в одно действие.

Так выглядит таблица соответствия, которую стоит составить до начала настройки:

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

Программная загрузка: COM и чтение файла платформой

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

Через COM-соединение с Excel

На компьютере должен стоять Excel, а загрузка идёт на клиенте. Принцип такой:

Excel = Новый COMОбъект("Excel.Application");
Excel.DisplayAlerts = Ложь;
Книга = Excel.Workbooks.Open(ПутьКФайлу);
Лист = Книга.Sheets(1);

ПоследняяСтрока = Лист.UsedRange.Rows.Count;
Для Строка = 2 По ПоследняяСтрока Цикл
    Артикул = СокрЛП(Лист.Cells(Строка, 1).Value);
    Наименование = СокрЛП(Лист.Cells(Строка, 2).Value);
    // поиск или создание элемента, запись
КонецЦикла;

Книга.Close(Ложь);
Excel.Quit();

Минусы: нужна установленная копия Excel, не работает на сервере без неё и на Linux, медленно на больших файлах — каждое обращение к ячейке это отдельный вызов.

Без Excel: чтение файла самой платформой

Современные платформы 1С 8.3 умеют читать .xlsx через табличный документ. Установленный Excel не нужен, работает и на сервере:

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

Для Строка = 2 По ТабДок.ВысотаТаблицы Цикл
    Артикул = СокрЛП(ТабДок.Область(Строка, 1).Текст);
    // дальше как обычно
КонецЦикла;

Для файлов в десятки тысяч строк разумно сначала прочитать всё в таблицу значений, а уже потом записывать в базу пакетом, а не по одной записи в цикле.

Если вы читаете цену или количество, используйте режим «Значение», а не «Текст». В текстовом режиме вы получите то, что Excel показывает с округлением и разделителями.

Типичные ошибки загрузки и как с ними справиться

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

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

Как сделать регулярную загрузку быстрой и безопасной

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

Практика, которая окупается

  • 🔄 Зафиксируйте шаблон: один и тот же порядок столбцов, один и тот же лист. Сохраните шаблон и просите поставщика писать в него.
  • 🔄 Храните настройку сопоставления. Хорошие обработки умеют сохранять её для следующего раза.
  • 🔄 Отделите справочную загрузку от документной. Сначала номенклатура и контрагенты, потом документы со ссылками на них.
  • 🔄 Ведите протокол: что загружено, сколько строк, какие пропущены. Он пригодится при споре с поставщиком.
  • 🔄 Загружайте в тестовую копию, а в рабочую базу переносите проверенный результат.

Когда загружать из Excel НЕ нужно

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

Автоматизация

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

Частые вопросы

Сколько строк можно загрузить за раз?
Технического жёсткого лимита нет. На практике для комфортной работы файлы делят на части по 2-5 тысяч строк, особенно при записи построчно.
Нужен ли установленный Excel на компьютере?
Для вставки из буфера и COM-соединения нужен. Для чтения .xlsx средствами платформы и для загрузки на сервере — нет.
Можно ли обновлять существующие элементы, а не создавать новые?
Да. Укажите в обработке поле поиска (артикул, ИНН, код) и режим «обновлять найденные». Без него 1С создаст новый элемент для каждой строки.
Загрузка прошла с ошибками. Что откатывать?
Если обработка пишет протокол, удалите созданные элементы по нему. Если нет, восстановите базу из копии, сделанной перед загрузкой. Поэтому копию делают всегда.
Как загрузить картинки или файлы из Excel?
Сами изображения внутри ячеек обработки не переносят. Загружайте пути к файлам или имена и подключайте картинки отдельным шагом.