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

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

Как подгрузить Excel-файл в 1С

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

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

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

Ниже разобраны основные сценарии: подготовка файла, типовые способы загрузки в типовых конфигурациях, программная загрузка через COM-объект и табличный документ, типичные ошибки и проверка результата. Инструкции применимы к платформе 1С:Предприятие 8.3, если не указано иное.

Подготовка Excel-файла перед загрузкой

Большинство ошибок при загрузке возникает не из-за 1С, а из-за структуры самого файла. Обработки ожидают «плоскую» таблицу: первая строка — заголовки колонок, далее — строки данных без пропусков. Объединённые ячейки, многострочные шапки, промежуточные итоги и примечания внутри данных нужно убрать заранее.

Формулы в ячейках желательно заменить на значения (копирование → вставить как значения), потому что часть механизмов чтения берёт вычисленное значение, а часть — текст формулы. Даты приведите к формату ДД.ММ.ГГГГ, числа — без разделителей тысяч и символов валюты в той же ячейке. Проверьте, что коды и артикулы, начинающиеся с нуля, сохранены как текст — Excel любит обрезать ведущие нули, и в 1С попадут уже «испорченные» значения.

Если файл большой (десятки тысяч строк), сохраните его в формате XLSX, а не XLS: старый формат ограничен 65 536 строками и медленнее обрабатывается. Убедитесь, что файл не открыт в Excel в момент загрузки — некоторые способы чтения требуют монопольного доступа.

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

В типовых конфигурациях (Управление торговлей, ERP, Комплексная автоматизация) у многих документов есть кнопка «Заполнить» → «Заполнить из внешнего файла» или «Загрузить из Excel». Это самый простой сценарий: например, загрузить список товаров в «Поступление товаров и услуг» или в установку цен номенклатуры.

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

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

Порядок загрузки в табличную часть
  1. 1
    Подготовьте файл: плоская таблица, без формул и объединённых ячеек
  2. 2
    Откройте документ и найдите кнопку загрузки в табличной части (Заполнить → Загрузить из внешнего файла)
  3. 3
    Скопируйте данные из Excel или укажите файл
  4. 4
    Сопоставьте колонки файла с полями табличной части
  5. 5
    Проверьте нераспознанные строки и сопоставьте их вручную
  6. 6
    Проведите документ и сверьте итоговые суммы с исходным файлом

Способ 2. Универсальная обработка «Загрузка данных из табличного документа»

Для загрузки в справочники и регистры сведений, где нет штатной кнопки, используется универсальная обработка «Загрузка данных из табличного документа». Она входит в состав многих типовых конфигураций (ищите в разделе «Администрирование» или через «Файл → Открыть», если обработка сохранена отдельным файлом) и доступна на диске ИТС.

Работа строится так: открываете обработку, выбираете объект загрузки (например, справочник «Номенклатура» или регистр сведений «Штрихкоды»), на вкладке «Табличный документ» открываете Excel-файл, на вкладке «Настройка» сопоставляете номера колонок с реквизитами объекта. Для ключевых полей поиска (наименование, код, ИНН) устанавливаете режим «Искать» — тогда существующие элементы обновятся, а новые создадутся.

Обратите внимание на числовые режимы колонок: «Искать» — сопоставление с существующими элементами, «Устанавливать» — запись значения, «Вычислять» — расчёт выражением на встроенном языке. Ошибка в режиме приводит либо к дублям (если поиск не настроен), либо к затиранию данных (если лишняя колонка стоит в режиме «Устанавливать»).

Типичные ошибки при загрузке
01
Не настроен поиск существующих элементов — после загрузки в справочнике появляются дубли номенклатуры или контрагентов
02
Файл открыт в Excel — обработка не может прочитать его или читает устаревшую версию
03
Колонка с датами распознана как текст — в регистре сведений даты пустые или стоят 01.01.0001
04
Excel обрезал ведущие нули в артикулах и штрихкодах — товары не находятся поиском и создаются заново
05
Загружают сразу весь файл без теста — ошибка в сопоставлении колонок портит тысячи записей

Способ 3. Открытие Excel как табличного документа

Если задача — не записать данные в базу, а просмотреть, напечатать или вручную перенести значения, файл можно открыть напрямую: «Файл → Открыть» и выбрать XLSX. Платформа преобразует лист в табличный документ. Дальше его можно сохранить в формате MXL, распечатать или скопировать данные через буфер обмена в табличную часть документа.

Этот же приём работает программно: объект ТабличныйДокумент имеет метод Прочитать(), который принимает файлы XLSX, ODS, MXL и другие форматы. После чтения данные доступны по координатам ячеек через метод Область(). Это удобно, когда нужно написать свою загрузку без зависимости от установленного на компьютере Excel.

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

bsl
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\Данные\прайс.xlsx", СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
    Наименование = ТабДок.Область("R" + НомерСтроки + "C1").Текст;
    ЦенаСтрокой = ТабДок.Область("R" + НомерСтроки + "C2").Текст;
    // дальше — поиск или создание элемента справочника
КонецЦикла;

Способ 4. Программная загрузка через COM-объект Excel

Классический способ чтения Excel из кода 1С — COMОбъект("Excel.Application"). Он даёт полный доступ к книге: листы, диапазоны, значения, форматы. Способ подходит для сложных файлов, где нужно читать несколько листов или обходить неоднородную структуру.

У способа есть жёсткие ограничения. На компьютере, где выполняется код, должен быть установлен Microsoft Excel — на сервере 1С его обычно нет, поэтому COM-загрузка работает в основном в файловых базах или толстом/тонком клиенте на машине пользователя. Разрядность тоже имеет значение: 64-разрядный клиент 1С не сможет создать COM-объект 32-разрядного Office, и наоборот. После работы объект Excel нужно явно закрыть и освободить, иначе в диспетчере задач останутся «висеть» процессы EXCEL.EXE.

Для серверных и регламентных загрузок используйте чтение через ТабличныйДокумент или пакетное чтение XLSX как ZIP-архива с XML — эти методы не требуют установленного Office и работают на сервере под Linux.

Сравнение способов загрузки

Штатная кнопка в документе

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

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

Универсальна: справочники, регистры, табличные части. Требует аккуратной настройки сопоставления и режимов поиска

ТабличныйДокумент.Прочитать()

Для своей обработки без установленного Excel, работает на сервере. Нужно писать код разбора

COMОбъект Excel.Application

Максимальная гибкость для сложных файлов. Требует установленный Excel и совпадение разрядности, не работает на сервере без Office

Загрузка в веб-клиенте и на сервере

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

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

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

Загрузка без контроля — прямой путь к расхождениям в учёте. Минимальная проверка: количество загруженных строк должно совпадать с количеством строк данных в файле (за вычетом шапки). Если обработка сообщила «загружено 980 из 1000», найдите и разберите 20 пропущенных строк до того, как базой начнут пользоваться.

Для документов сверьте итоговые суммы и количество по документу с контрольными суммами из Excel — посчитайте их в файле формулой СУММ заранее. Для справочников проверьте отсутствие дублей: отсортируйте список по наименованию или используйте обработку поиска дублей. Для регистров сведений убедитесь, что даты и ключи измерений заполнены, а не пустые.

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

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

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

Количество строк
Норма

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

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

Часть строк пропущена без сообщений — ищите пустые ключевые поля

Суммы и итоги документа
Норма

Итог по документу равен контрольной сумме из Excel

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

Расхождение — проверяйте распознавание чисел и разделители

Дубли в справочнике
Норма

Поиск по ключевым полям обновляет существующие элементы

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

Появились повторные элементы с тем же наименованием или ИНН

Даты и числа
Норма

Даты в ожидаемом диапазоне, числа без потери разрядов

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

Пустые даты, дата 01.01.0001, обрезанные ведущие нули в кодах

Часто задаваемые вопросы

Можно ли загрузить Excel в 1С без установленного Microsoft Office?

Да. Открытие файла как табличного документа и метод ТабличныйДокумент.Прочитать() работают без Excel — платформа сама разбирает формат XLSX. Без Office не будет работать только способ через COMОбъект("Excel.Application").

Почему после загрузки в справочнике появились дубли?

Не был настроен поиск существующих элементов. В обработке загрузки для ключевой колонки (наименование, артикул, ИНН) нужно включить режим «Искать» и указать поле поиска. Дубли придётся удалить обработкой поиска и удаления дублей либо вручную, предварительно проверив, нет ли на них ссылок в документах.

Обработка не видит файл или выдаёт ошибку доступа. Что делать?

Чаще всего файл открыт в Excel — закройте его и повторите. Также проверьте, что путь не содержит недопустимых символов, файл не лежит в защищённой системной папке и у пользователя есть права на чтение. В клиент-серверном варианте помните: серверный код видит только диски сервера, а не ваш локальный диск C.

Как загрузить файл, если данные разнесены по нескольким листам?

Штатные обработки обычно читают один лист. Варианты: собрать данные на один лист в Excel перед загрузкой, загружать каждый лист отдельным проходом, либо использовать программное чтение через COM-объект, где доступна коллекция листов книги.

Теряются ведущие нули в артикулах и штрихкодах. Как исправить?

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

Как автоматизировать регулярную загрузку прайсов поставщиков?

Настройте регламентное задание, которое забирает файл из сетевой папки или почты и вызывает серверную процедуру загрузки через ТабличныйДокумент.Прочитать(). COM-способ для этого не подходит — на сервере Excel обычно не установлен. Обязательно добавьте журналирование: сколько строк загружено, сколько отклонено и по какой причине.

Итог

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

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