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

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

Как обработать Excel в 1С: практическое руководство

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

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

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

Определите задачу: загрузка, чтение или выгрузка

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

Сценарий определяет инструмент. Для сверки достаточно открыть файл как табличный документ через меню «Файл → Открыть». Для загрузки нужна обработка с сопоставлением колонок и реквизитов. Для выгрузки подходят сохранение табличного документа в формате XLSX или программное формирование файла.

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

Как выбрать способ

Нужно просто посмотреть или сверить содержимое файлаОткройте файл в 1С через «Файл → Открыть» — он отобразится как табличный документ
Типовая конфигурация, разовая загрузка в справочник или документИспользуйте обработку «Загрузка данных из табличного документа»
Регулярный обмен по нестандартному форматуЗакажите или напишите внешнюю обработку с чтением файла программно
Нужно выгрузить данные из 1С в ExcelСохраните отчёт или табличный документ в формате XLSX через «Файл → Сохранить как»

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

В конфигурациях на БСП (Управление торговлей, Бухгалтерия, ERP и других) есть встроенная обработка загрузки. Найти её можно через поиск в разделах «НСИ и администрирование», «Администрирование» или через «Все функции → Обработки». Она умеет загружать данные в справочники, табличные части документов и некоторые регистры сведений.

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

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

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

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

Качество загрузки на 80% определяется подготовкой файла. Уберите объединённые ячейки, многострочные шапки, промежуточные итоги и пустые строки внутри таблицы — всё это ломает структуру при чтении. Идеальный файл для загрузки — плоская таблица: первая строка с заголовками, далее только данные.

Проверьте форматы данных. Числа должны быть числами, а не текстом с пробелами-разделителями. Даты — в едином формате, желательно ДД.ММ.ГГГГ. Артикулы и коды с ведущими нулями храните как текст, иначе Excel уже «съел» нули, и восстановить их придётся вручную. Если данные собирались из разных источников, прогоните колонки через «Текст по столбцам» или формулы очистки.

Типичные ошибки в файле
01
Объединённые ячейки и многоуровневая шапка — колонки смещаются, данные попадают не в те реквизиты
02
Числа как текст с неразрывными пробелами — суммы загружаются нулями или не загружаются вовсе
03
Даты в разных форматах в одной колонке — часть строк получает неверную дату
04
Ведущие нули в артикулах потеряны при подготовке — поиск дублей по артикулу перестаёт работать
05
Скрытые листы и строки с итогами — в базу попадают лишние строки

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

Если типовой обработки недостаточно, файл читают программно. Самый простой способ — метод табличного документа Прочитать(): платформа сама открывает XLSX и помещает содержимое в табличный документ, откуда данные перебираются по ячейкам. Способ не требует установленного Excel и работает на сервере, но на очень больших файлах потребляет много памяти.

Альтернатива — COM-подключение к Excel через объект Excel.Application. Этот способ даёт доступ ко всем возможностям Excel (формулы, форматы, несколько листов), но требует установленного Excel на машине, где выполняется код, работает медленнее и не подходит для серверного кода в клиент-серверном режиме без дополнительной настройки.

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

Для больших файлов (сотни тысяч строк) рассмотрите предварительное преобразование в CSV: чтение текстового файла построчно значительно быстрее и экономнее по памяти, чем разбор XLSX. Минус — теряются форматы и несколько листов, поэтому способ подходит для простых плоских данных.

Сравнение способов чтения

Чтение в табличный документ

Не требует Excel, работает на сервере. Ограничение: высокое потребление памяти на больших файлах

COM-объект Excel.Application

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

Преобразование в CSV и построчное чтение

Быстро и экономно для больших объёмов. Ограничение: один лист, нет форматов, нужна подготовка файла

Выгрузка данных из 1С в Excel

Обратная задача решается проще. Любой отчёт или табличный документ в 1С сохраняется в Excel через «Файл → Сохранить как» с выбором формата XLSX. Для списков справочников и документов есть команда «Вывести список» — она формирует табличный документ из выбранных колонок, который затем сохраняется в файл.

Программно выгрузка делается заполнением табличного документа и вызовом метода Записать() с типом файла XLSX. Это удобно для регламентных выгрузок: прайс для клиентов, отчёт для головной компании, данные для маркетплейса. Файл формируется на сервере без установленного Excel.

Проверка результата и откат при ошибке

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

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

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

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

Количество строк в базе и в файле
Норма

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

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

Строк больше или меньше — есть дубли или пропуски

Суммы и числовые поля
Норма

Итоги по колонкам совпадают с итогами в Excel

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

Суммы расходятся — проблема с форматом чисел

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

Повторная загрузка обновляет те же элементы

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

При повторной загрузке создаются новые элементы

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

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

Да, в типовых конфигурациях на основе БСП для этого есть обработка «Загрузка данных из табличного документа». Она покрывает загрузку в справочники и табличные части документов без единой строки кода. Понадобится только аккуратно подготовить файл и правильно сопоставить колонки.

Почему 1С не открывает мой файл XLSX?

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

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

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

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

Рекомендуется сохранить данные в CSV и читать файл построчно с транзакциями порциями. Чтение большого XLSX в табличный документ может занять много времени и памяти вплоть до аварийного завершения сеанса.

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

Да. Чтение через табличный документ и запись в XLSX выполняются средствами платформы и не требуют установленного Excel. Установленный Excel нужен только для COM-подключения через Excel.Application.

Итог

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

Разовую загрузку в типовую конфигурацию делайте обработкой «Загрузка данных из табличного документа», тщательно подготовив файл. Для регулярных и нестандартных задач используйте программное чтение через табличный документ или CSV. Всегда тестируйте загрузку на копии и сверяйте контрольные итоги после выполнения.