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

Автоматизация · 9 мин

Как открыть файл Excel в 1С: рабочие способы и примеры

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

Открыть файл Excel в 1С можно несколькими способами: через встроенный механизм табличных документов, через COM-подключение к приложению Excel или через программное чтение файла без установленного Excel. Выбор зависит от задачи: просто посмотреть содержимое, загрузить данные в справочник или документ либо обработать большой файл на сервере.

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

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

Открытие файла Excel как табличного документа

Самый простой способ — открыть файл напрямую из интерфейса 1С. В режиме «Предприятие» выберите «Файл — Открыть» (в тонком клиенте — через главное меню), укажите файл с расширением XLS или XLSX. Платформа преобразует его в табличный документ и покажет на экране.

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

Если файл не открывается, проверьте, не защищён ли он паролем и не повреждён ли он. Файлы старого формата XLS (Excel 97–2003) платформа читает, но при проблемах помогает пересохранение файла в формате XLSX через сам Excel.

Программное чтение через табличный документ

Для загрузки данных в справочники и документы удобно прочитать файл программно, без участия Excel. Метод Прочитать() объекта «ТабличныйДокумент» загружает файл в память, после чего можно обходить ячейки по координатам.

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

Способ чтения «Значение» важен: он возвращает вычисленные значения вместо формул. Если использовать чтение «Текст», в ячейках с формулами можно получить пустые строки или сами формулы в зависимости от того, как был сохранён файл.

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

Чтение через COM-объект Excel

Классический способ, применявшийся в старых конфигурациях, — подключение к Excel как к COM-серверу. Он даёт доступ к листам, именованным диапазонам и форматированию, но требует, чтобы Excel был установлен на том компьютере, где выполняется код.

bsl
Попытка
    Excel = Новый COMОбъект("Excel.Application");
Исключение
    Сообщить("Excel не установлен или недоступен");
    Возврат;
КонецПопытки;
Книга = Excel.Workbooks.Open("C:\Данные\Прайс.xlsx");
Лист = Книга.Worksheets(1);
Значение = Лист.Cells(2, 1).Value;
Книга.Close(0);
Excel.Quit();

Обязательно завершайте работу вызовами Close и Quit, иначе в памяти останутся зависшие процессы EXCEL.EXE, которые со временем блокируют файлы и расходуют ресурсы. Особенно это критично при пакетной обработке множества файлов.

Выбор способа под задачу

Разные сценарии требуют разных подходов. Сводная логика выбора приведена ниже.

Маршрут решения

Как выбрать действие

Нужно один раз посмотреть содержимое файлаОткройте через «Файл — Открыть» в режиме Предприятия
Нужно регулярно загружать данные в справочники или документыИспользуйте ТабличныйДокумент.Прочитать() — работает без Excel, в том числе на сервере
Нужны листы, именованные диапазоны или сохранение в Excel из 1СИспользуйте COMОбъект Excel.Application на клиентском компьютере с установленным Excel
Файл очень большой и чтение занимает минутыПопросите источник данных в формате CSV или MXL — они читаются значительно быстрее

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

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

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

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

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

Количество загруженных строк
Норма

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

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

Строк меньше — возможны пустые ключевые колонки или объединённые ячейки

Числовые значения (цены, количество)
Норма

Числа распознаны как числа, без пробелов и текста

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

Значения стали строками — в ячейках был текст или неразрывные пробелы

Даты
Норма

Даты соответствуют исходным

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

Дата сдвинута или стала текстом — формат ячейки в Excel был текстовым

Кодировка и кириллица
Норма

Русские названия читаются корректно

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

Ключевые поля обрезаны или пусты — проверьте исходный файл

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

Типичные ошибки и ограничения

Типичные ошибки
01
Чтение без указания СпособЧтенияЗначенийТабличногоДокумента.Значение — вместо чисел и дат получают формулы или пустые строки
02
Незакрытые COM-объекты Excel — накапливаются зависшие процессы EXCEL.EXE и блокировки файлов
03
Обработка файла, открытого в Excel другим пользователем, — файл заблокирован, чтение падает с ошибкой
04
Обход строк до фиксированного номера вместо ТабДок.ВысотаТаблицы — часть данных теряется или читаются пустые строки
05
Игнорирование объединённых ячеек в шапке — смещается сопоставление колонок и данные попадают не в те поля

Отдельная категория проблем — файлы, полученные выгрузкой из сторонних систем. Они могут иметь расширение XLS, но внутри содержать HTML или XML. Такой файл Excel открывает, а платформа 1С — нет. Признак: ошибка при вызове Прочитать(). Решение — открыть файл в Excel и пересохранить как настоящий XLSX.

Альтернативы: CSV, MXL и внешние обработки

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

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

Итог

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

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

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

Можно ли открыть файл Excel в 1С, если Excel не установлен?

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

Почему вместо значений читаются формулы или пустые ячейки?

Файл прочитан без указания способа чтения «Значение», либо Excel при последнем сохранении не записал вычисленные результаты. Укажите СпособЧтенияЗначенийТабличногоДокумента.Значение и пересохраните файл в Excel.

Как обратиться ко второму листу книги Excel?

При чтении через табличный документ платформа обычно загружает первый лист. Для работы с конкретными листами используйте COM-подключение (Worksheets с указанием номера или имени) либо попросите источник данных выгружать каждый лист отдельным файлом.

Файл с расширением XLS не открывается в 1С — в чём причина?

Частая причина — файл на самом деле не Excel, а HTML или XML с расширением XLS (так выгружают многие веб-системы). Откройте его в Excel и пересохраните в формате «Книга Excel (*.xlsx)», после этого чтение заработает.

Как загрузить данные из Excel в справочник номенклатуры?

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

Что делать, если большой файл открывается очень долго?

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