Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

8.2 сохранение в excel табличный документ

8.2 сохранение в excel табличный документ
Я
   Doroheart
 
14.02.20 - 10:13
Добрый день, подскажет кто нибудь что не так делаю?

ТабДок произвольный реквизит
ТЗ ТаблицаЗначений

Процедура ПолучитьОтчетНажатие(Элемент)
    
    Макет = ПолучитьМакет("МакетТаблицы");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
        |ЗначенияСвойствТоварныхКатегорий.Номенклатура.Наименование,
        |ЗначенияСвойствТоварныхКатегорий.Свойство.Код,
        |ЗначенияСвойствТоварныхКатегорий.Значение
    |ИЗ
        |РегистрСведений.ЗначенияСвойствТоварныхКатегорий КАК ЗначенияСвойствТоварныхКатегорий
    |ГДЕ
        |ЗначенияСвойствТоварныхКатегорий.Номенклатура.ПометкаУдаления = ЛОЖЬ
        |И ЗначенияСвойствТоварныхКатегорий.Свойство.Код = ""00050""
        |И ЗначенияСвойствТоварныхКатегорий.Значение = ИСТИНА";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;
    
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    ТЗ = Запрос.Выполнить().Выгрузить();
    ЭлементыФормы.ТЗ.СоздатьКолонки();

КонецПроцедуры

Процедура СохранитьНажатие(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    Диалог.ПолноеИмяФайла = "";
    Диалог.Фильтр = "Файлы Excel(*.xls; *.xlsx)|*.xls; *.xlsx";
    Диалог.Каталог = "\";
    Если Диалог.Выбрать() Тогда
        ТабДок.Записать(Диалог.ПолноеИмяФайла);
        Сообщить("Файл успешно сохранен. ");
    Иначе
        Сообщить("Файл не сохранен");
        Возврат;
    КонецЕсли;

КонецПроцедуры
 
 
   НЕА123
 
1 - 14.02.20 - 10:20
СП у ДенисЧ спрашивай
   Галахад
 
2 - 14.02.20 - 10:33
Для того чтобы сказать, что ты не правильно делаешь, нужно знать что бы хочешь сделать.
   SeriyP
 
3 - 14.02.20 - 10:40
(0) ТабДок.Записать(Диалог.ПолноеИмяФайла,  ТипФайлаТабличногоДокумента.XLSX);
   Doroheart
 
4 - 14.02.20 - 11:01
(2) перед открытием сохраненной excel пишет не соответствует разрешению файла. Возможно файл поврежден или небезопасен, а после открытия странные данные http://prntscr.com/r25skh
   SeriyP
 
5 - 14.02.20 - 11:05
в Эксель сохраняете mxl
   Doroheart
 
6 - 14.02.20 - 13:12
(5) в фильтр поставил (*.xlsx)|*.xlsx и ТабДок.Записать назначил ТипФайлаТабличногоДокумента.XLSX и взлетело. Если не указывать ТипФайла по стандарту mxl назначался.
   catena
 
7 - 14.02.20 - 13:20
(6)Как собственно и написано в СП.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.