Справочники и Данные · 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Подготовьте файл: плоская таблица, без формул и объединённых ячеек
- 2Откройте документ и найдите кнопку загрузки в табличной части (Заполнить → Загрузить из внешнего файла)
- 3Скопируйте данные из Excel или укажите файл
- 4Сопоставьте колонки файла с полями табличной части
- 5Проверьте нераспознанные строки и сопоставьте их вручную
- 6Проведите документ и сверьте итоговые суммы с исходным файлом
Способ 2. Универсальная обработка «Загрузка данных из табличного документа»
Для загрузки в справочники и регистры сведений, где нет штатной кнопки, используется универсальная обработка «Загрузка данных из табличного документа». Она входит в состав многих типовых конфигураций (ищите в разделе «Администрирование» или через «Файл → Открыть», если обработка сохранена отдельным файлом) и доступна на диске ИТС.
Работа строится так: открываете обработку, выбираете объект загрузки (например, справочник «Номенклатура» или регистр сведений «Штрихкоды»), на вкладке «Табличный документ» открываете Excel-файл, на вкладке «Настройка» сопоставляете номера колонок с реквизитами объекта. Для ключевых полей поиска (наименование, код, ИНН) устанавливаете режим «Искать» — тогда существующие элементы обновятся, а новые создадутся.
Обратите внимание на числовые режимы колонок: «Искать» — сопоставление с существующими элементами, «Устанавливать» — запись значения, «Вычислять» — расчёт выражением на встроенном языке. Ошибка в режиме приводит либо к дублям (если поиск не настроен), либо к затиранию данных (если лишняя колонка стоит в режиме «Устанавливать»).
Способ 3. Открытие Excel как табличного документа
Если задача — не записать данные в базу, а просмотреть, напечатать или вручную перенести значения, файл можно открыть напрямую: «Файл → Открыть» и выбрать XLSX. Платформа преобразует лист в табличный документ. Дальше его можно сохранить в формате MXL, распечатать или скопировать данные через буфер обмена в табличную часть документа.
Этот же приём работает программно: объект ТабличныйДокумент имеет метод Прочитать(), который принимает файлы XLSX, ODS, MXL и другие форматы. После чтения данные доступны по координатам ячеек через метод Область(). Это удобно, когда нужно написать свою загрузку без зависимости от установленного на компьютере Excel.
Ограничение способа: чтение идёт построчно и по значениям ячеек, поэтому сложные структуры (несколько логических таблиц на одном листе, иерархия через отступы) придётся разбирать в коде вручную. Также помните, что читается активный или указанный лист — данные с соседних листов так не попадут.
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("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, работает на сервере. Нужно писать код разбора
Максимальная гибкость для сложных файлов. Требует установленный 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 обычно не установлен. Обязательно добавьте журналирование: сколько строк загружено, сколько отклонено и по какой причине.
Что важно запомнить
Сначала подготовьте файл: плоская таблица, значения вместо формул, текстовый формат для кодов с нулями. Для документов используйте штатные кнопки загрузки, для справочников — универсальную обработку с настроенным поиском. Перед рабочей загрузкой сделайте копию базы и тест на нескольких строках, после — сверьте количество строк и итоговые суммы с файлом.