Как загрузить данные из определенных колонок файла Excel в табличную часть 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Реализация загрузки через COM-объект

Самый простой, хотя и не самый быстрый способ — это использование COM-объекта Excel.Application. Этот метод позволяет напрямую обращаться к ячейкам листа по их координатам. Давайте разберем по шагам, как организовать цикл перебора строк и выбрать только необходимые колонки.

Для начала создадим объект Excel и получим доступ к нужному листу. Затем организуем цикл по строкам и внутри него — цикл по колонки. Чтобы сэкономить ресурсы и не обрабатывать лишние данные, мы установим условие на проверку номера текущей итерации цикла.


// Предположим, что файл уже открыт как Лист
Для НомерСтроки = 1 По КолСтроки Цикл
    НоваяСтрока = ТабличнаяЧасть.Добавить();
    Попытка
        Для ш = 1 По КолКолонок Цикл
            // Выбираем только те колонки, которые нам нужны
            Если ш = 2 ИЛИ ш = 24 Тогда
                ИмяКолонки = "Колонка" + ш;
                // Записываем значение в ячейку табличной части
                НоваяСтрока[ИмяКолонки] = Лист.Cells(НомерСтроки, ш).Value;
            КонецЕсли;
        КонецЦикла;
    Исключение
        Сообщить("Ошибка обработки строки №" + НомерСтроки);
    КонецПопытки;
КонецЦикла;

В этом примере мы используем обращение НоваяСтрока[ИмяКолонки]. Это более профессиональный подход, чем использование функции Выполнить, так как он позволяет динамически обращаться к реквизитам табличной части без лишних затрат на интерпретацию строковых команд.

Почему метод через Cells считается устаревшим

Несмотря на наглядность метода с Cells(row, col), важно понимать, что при каждом обращении к нему 1С «переключается» на внешнее приложение Excel. Это создает огромные накладные расходы. Если в вашем файле тысячи строк, процесс может затянуться на долгие минуты. Мы настоятельно рекомендуем использовать этот способ только для небольших объемов данных.

Оптимальные методы загрузки: Табличный документ

Рассмотрим более производительный подход — работу через ТабличныйДокумент. Этот объект является родным для платформы 1С и позволяет загрузить содержимое файла целиком в оперативную память. Это в разы быстрее прямого COM-соединения.

  1. Загрузите файл методом ТабличныйДокумент.Прочитать("ПутьКФайлу").
  2. Проанализируйте полученную область данных.
  3. Используйте метод ПолучитьОбласть или прямой перебор ячеек внутри уже загруженного документа, что работает на порядок быстрее.

Рекомендации по профессиональной разработке

Чтобы ваша обработка не «ломалась» при каждом изменении файла пользователем, рекомендуем придерживаться следующих правил:

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

← На главную