1C Программирование

1C Выгрузка Таблицы Значений в Excel

Формирование книги Excel:

Функция глТЗ_Ексель(Excel, ТабЗнач)
    WB = Excel.Workbooks.Add(); //Добавляем книгу
    Sh = WB.ActiveSheet(); //Определяем активный лист
    Sh.Visible = 1; //Видимость листа 1-видимы; 0-Невидимый
    //Создаем на листе Excel колонки начиная с первой колонки i=1
    Для i=1 По ТабЗнач.КоличествоКолонок() Цикл
        Sh.Cells(1, i).Value = ТабЗнач.ПолучитьПараметрыКолонки(i);
    КонецЦикла;
    Row = 2; //Номер строки на листе Excel
    ТабЗнач.ВыбратьСтроки();
    Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
        //Выводим строку состояния для строк кратных 10
        Если (ТабЗнач.НомерСтроки%10)=0 Тогда
            Состояние("Обработано "+ТабЗнач.НомерСтроки+"/"+ТабЗнач.КоличествоСтрок());
        КонецЕсли;
        //Заполняем столбцы на листе Excel для строки номер Row
        Для i=1 По ТабЗнач.КоличествоКолонок() Цикл
            Значение = ТабЗнач.ПолучитьЗначение(Row-1, i);
            //Переводим значение, не являющееся Числом,Строкой, Датой и Неопределенным, в тип Строка
            Если ТипЗначения(Значение)>3 Тогда
                Значение = Строка(Значение);
            КонецЕсли;
            //Установка формата данных ячейки на листе Excel
            Если ТипЗначения(Значение)=2 Тогда
                Sh.Cells(Row, i).NumberFormat = "@";
            КонецЕсли;
            //Устанавливаем текущее Значение в в ячейку листа Excel
            Sh.Cells(Row, i).Value = Значение;
        КонецЦикла;
        Row = Row + 1;
    КонецЦикла;
    Sh.Cells(1,1).AutoFilter(); //Устанавливаем фильтр
    Sh.Cells(2,1).Select(); //Выбор области для закрепления
    Excel.ActiveWindow.FreezePanes = 1; //Закрепляем область
    Sh = ""; //Обнуляем лист
    
    Возврат WB; //Возвращаем книгу Excel
КонецФункции

Использование:

Excel = СоздатьОбъект("Excel.Application"); //Создаем объект Excel
Excel.Visible = 1; //Определяем видимость документа 1-видимы; 0-Невидимый
Excel.displayAlerts = 0; //Отключаем сообщения иначе не даст сохранить и закрыть

ИмяФайла = "\\Куда ложить файл\ИмяФайла.xlsx";

Книга = глТЗ_Ексель(Excel, ЛогТЗ);
Книга.SaveAs(ИмяФайла, Книга.FileFormat);
Книга.Close(,,);

Excel.Quit();