14.10.2015

1C выгрузить в Excel без Office


Способов выгрузки данных в xls-файл из 1С Предприятия существует много, но мы рассмотрим самый стандартный и самый пре-самый простой. Он не требует ни подключения внешних компонент, ни даже Com-объектов. Если вам нужно просто выгрузить таблицу в Excel, то это тот способ который вам нужен.
Все банально и просто. В начале придумаем имя будущего файла Excel. Пусть будет "1.xls". Далее создаем табличный документ лТабДок типа ТабличныйДокумент:
лТабДок = Новый ТабличныйДокумент;
Допустим, что нам нужно вывести таблицу с шапкой, для этого используем метод табличного документа ПолучитьОбласть(<ИмяОбласти>)
Небольшое отступление: табличный документ разлинован по вертикали и горизонтали или по строкам и столбцам. Столбцы носят название Cn, где n - цифра, обозначающая номер столбца. Строки называются Rm, где m - номер строки. Чтобы получить первую строку для шапки нам понадобиться область R1: 
лОбластьШапка=ТабДок.ПолучитьОбласть("R1");
лОбластьШапка.Область("R1C1").Текст="Колонка1";
лОбластьШапка.Область("R1C2").Текст="Колонка2";
Далее, пробегаемся по таблице, которую нужно выгрузить и выводим данные в соответствующие ячейки циклом:
ъ=2;//номер строки
Секция = ТабДок.ПолучитьОбласть("R2");
Для Каждого стр Из тзТаблица Цикл
Секция.Область("R"+УбратьНП(ъ)+"C1").Текст=стр.Колонка1; 
Секция.Область("R"+УбратьНП(ъ)+"C2").Текст=стр.Колонка2; 
ъ=ъ+1;
КонецЦикла;
Здесь есть один небольшой нюанс: если количество строк выгружаемой таблицы больше 1000, то 1с автоматически добавит в переменную ъ неразрывный пробел, что абсолютно нежелательно. Чтобы этого избежать я использовал функцию УбратьНП(ъ), которая выглядит так:
Функция УбратьНП(лЧисло)
Возврат Формат(лЧисло,"ЧГ=0");
КонецФункции
После того, как прошлись по всей таблице и заполнили секцию, выводим ее в табличный документ и записываем его в файл xls с помощью стандартного 1с-ного списка типов табличного документа:
ТабДок.Вывести(Секция);
ТабДок.Записать("1.xls",ТипФайлаТабличногоДокумента.XLS97);
Ну, собственно, и все. Мы выгрузили таблицу из 1С в файл формата xls без каких бы то ни было внешних средств.

Комментариев нет:

Отправить комментарий