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

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

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

Понимание структуры импорта Excel в 1С

Когда мы используем метод Прочитать() для объекта ТабличныйДокумент, платформа 1С выполняет автоматическую конвертацию файла. Важно понимать, что при чтении файла, содержащего несколько листов, 1С не теряет структуру — каждый лист Excel становится именованной областью внутри созданного ТабличныйДокумент.

Давайте рассмотрим, как получить доступ к этим данным:

  1. Каждый лист в 1С представлен как элемент коллекции Области.
  2. Имена областей в ТабличныйДокумент при чтении файла соответствуют названиям листов, которые были заданы в исходном файле Excel.

Способы обращения к листам

Существует два основных способа обращения к нужному листу:

1. Обращение по индексу

Если нам нужен всегда первый лист (или лист с конкретным порядковым номером), мы можем обратиться к коллекции Области по индексу:


// Получаем первый лист файла
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("ПутьКФайлу.xlsx");
НужныйЛист = ТабДок.Области[0];

2. Обращение по имени

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


// Получаем лист по его имени в Excel
НужныйЛист = ТабДок.Области["Лист1"];

Как превратить область в отдельный табличный документ

Часто после получения нужной области мы хотим работать с ней как с независимым объектом (например, чтобы сохранить в отдельный файл или отобразить пользователю в форме). Само по себе значение, полученное из коллекции Области, является типом ОбластьЯчеекТабличногоДокумента. Чтобы превратить его в полноценный документ, выполним следующие действия:

  1. Создадим новый экземпляр ТабличныйДокумент.
  2. Выведем в него полученную область.

Посмотрим на пример кода для реализации этой задачи:


// Предположим, у нас уже есть загруженный документ ТабДок
// Получаем нужную область
ИсходнаяОбласть = ТабДок.ПолучитьОбласть("Лист1");

// Создаем новый пустой документ
НовыйДокумент = Новый ТабличныйДокумент;

// Выводим область в новый документ
// Используем параметры для корректного переноса форматирования и структуры
НовыйДокумент.Вывести(ИсходнаяОбласть);

Практические советы и рекомендации

Работая с многолистными документами, полезно учитывать следующие нюансы:

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

← На главную