Часто при разработке интеграций возникает необходимость прочитать данные из файла формата XLS (старый формат Excel 97-2003) средствами платформы 1С. Основная сложность заключается в том, что встроенный механизм ТабличныйДокумент не всегда корректно обрабатывает структуру таких файлов, особенно если они были созданы сторонними системами или содержат специфические метаданные. Давайте разберем, как диагностировать и решить эту проблему.
Прежде чем менять код, необходимо убедиться, что 1С вообще видит структуру файла. Первым делом воспользуемся методом Показать() для объекта ТабличныйДокумент. Если после вызова метода 1С открывает пустую форму, значит, алгоритм чтения не может распознать поток данных в файле.
Также важно проверить, не является ли файл «битым» или заблокированным. Если при открытии файла через интерфейс 1С (Файл -> Открыть) данные видны, а через программный Прочитать() — нет, значит, проблема кроется во внутренней структуре файла, которую 1С интерпретирует как неверную.
Базовый подход к чтению табличного документа выглядит следующим образом. Разберем его по шагам:
табДок = Новый ТабличныйДокумент;
Попытка
табДок.Прочитать(Путь, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Исключение
Сообщить(ИнформацияОбОшибке().Описание);
Возврат;
КонецПопытки;
КоличествоСтрок = табДок.ВысотаТаблицы;
// Обработка данных
Для НомерСтроки = 1 По КоличествоСтрок Цикл
// Чтение значений ячеек
КонецЦикла;
Если КоличествоСтрок возвращает 1 или 0, хотя в Excel вы видите 13 строк, это говорит о том, что парсер 1С не смог корректно распарсить «бинарник» формата XLS. Рассмотрим способы исправления.
Если стандартный метод чтения не срабатывает, рекомендуем выполнить следующие действия:
XLSX (OpenXML). Платформа 1С работает с XLSX значительно лучше, так как этот формат является XML-структурой внутри ZIP-архива, которую 1С парсит нативно без ошибок.Если файл принципиально не читается ТабличнымДокументом, можно попробовать альтернативные методы:
Использование текстовых режимов
В методе Прочитать() попробуйте изменить параметр СпособЧтенияЗначенийТабличногоДокумента. По умолчанию стоит Значение, но переключение на Текст иногда позволяет вытянуть данные, которые игнорируются при стандартном чтении.
Конвертация в CSV
Если автоматизация позволяет, наиболее надежным способом будет преобразование XLS в CSV (текст с разделителями). Такие файлы 1С читает идеально с помощью объекта ТекстовыйДокумент или через метод ПрочитатьСтроки(). Это снимает зависимость от версии офиса и структуры бинарного файла.
Проблема «пустого» чтения XLS почти всегда связана с несовместимостью внутренней структуры файла с ожиданиями платформы 1С. Мы рекомендуем:
Попытка...Исключение при чтении внешних файлов.XLSX или CSV.Следуя этим простым шагам, вы сможете обеспечить стабильную загрузку данных в систему 1С без необходимости установки сторонних библиотек или использования тяжелых COM-объектов.