Автоматизация · 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. Метод Прочитать() объекта «ТабличныйДокумент» загружает файл в память, после чего можно обходить ячейки по координатам.
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\Данные\Прайс.xlsx", СпособЧтенияЗначенийТабличногоДокумента.Значение);
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
Наименование = ТабДок.Область(НомерСтроки, 1).Текст;
Цена = ТабДок.Область(НомерСтроки, 3).Текст;
// создание элемента справочника
КонецЦикла;Способ чтения «Значение» важен: он возвращает вычисленные значения вместо формул. Если использовать чтение «Текст», в ячейках с формулами можно получить пустые строки или сами формулы в зависимости от того, как был сохранён файл.
Этот метод работает и на сервере 1С, и в веб-клиенте (с передачей файла на сервер), не требует установленного Excel. Это основной рекомендуемый вариант для автоматических загрузок в современных конфигурациях.
Чтение через COM-объект Excel
Классический способ, применявшийся в старых конфигурациях, — подключение к Excel как к COM-серверу. Он даёт доступ к листам, именованным диапазонам и форматированию, но требует, чтобы Excel был установлен на том компьютере, где выполняется код.
Попытка
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 был текстовым
Русские названия читаются корректно
Ключевые поля обрезаны или пусты — проверьте исходный файл
Перед массовой загрузкой в рабочую базу сделайте пробный прогон на копии или на нескольких строках. Ошибки в сопоставлении колонок проще поймать на пяти строках, чем откатывать тысячи созданных элементов справочника.
Типичные ошибки и ограничения
Отдельная категория проблем — файлы, полученные выгрузкой из сторонних систем. Они могут иметь расширение 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 — он читается значительно быстрее. Также проверьте, нет ли в файле сотен тысяч «пустых» форматированных строк, которые увеличивают объём.