8.2 сохранение в excel табличный документ
☑
0
Doroheart
14.02.20
✎
10:13
Добрый день, подскажет кто нибудь что не так делаю?
ТабДок произвольный реквизит
ТЗ ТаблицаЗначений
Процедура ПолучитьОтчетНажатие(Элемент)
Макет = ПолучитьМакет("МакетТаблицы");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|ЗначенияСвойствТоварныхКатегорий.Номенклатура.Наименование,
|ЗначенияСвойствТоварныхКатегорий.Свойство.Код,
|ЗначенияСвойствТоварныхКатегорий.Значение
|ИЗ
|РегистрСведений.ЗначенияСвойствТоварныхКатегорий КАК ЗначенияСвойствТоварныхКатегорий
|ГДЕ
|ЗначенияСвойствТоварныхКатегорий.Номенклатура.ПометкаУдаления = ЛОЖЬ
|И ЗначенияСвойствТоварныхКатегорий.Свойство.Код = ""00050""
|И ЗначенияСвойствТоварныхКатегорий.Значение = ИСТИНА";
РезультатЗапроса = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок = Новый ТабличныйДокумент;
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
ТЗ = Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТЗ.СоздатьКолонки();
КонецПроцедуры
Процедура СохранитьНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.ПолноеИмяФайла = "";
Диалог.Фильтр = "Файлы Excel(*.xls; *.xlsx)|*.xls; *.xlsx";
Диалог.Каталог = "\";
Если Диалог.Выбрать() Тогда
ТабДок.Записать(Диалог.ПолноеИмяФайла);
Сообщить("Файл успешно сохранен. ");
Иначе
Сообщить("Файл не сохранен");
Возврат;
КонецЕсли;
КонецПроцедуры
1
НЕА123
14.02.20
✎
10:20
СП у ДенисЧ спрашивай
2
Галахад
гуру
14.02.20
✎
10:33
Для того чтобы сказать, что ты не правильно делаешь, нужно знать что бы хочешь сделать.
3
SeriyP
14.02.20
✎
10:40
(0) ТабДок.Записать(Диалог.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
4
Doroheart
14.02.20
✎
11:01
(2) перед открытием сохраненной excel пишет не соответствует разрешению файла. Возможно файл поврежден или небезопасен, а после открытия странные данные
5
SeriyP
14.02.20
✎
11:05
в Эксель сохраняете mxl
6
Doroheart
14.02.20
✎
13:12
(5) в фильтр поставил (*.xlsx)|*.xlsx и ТабДок.Записать назначил ТипФайлаТабличногоДокумента.XLSX и взлетело. Если не указывать ТипФайла по стандарту mxl назначался.
7
catena
14.02.20
✎
13:20
(6)Как собственно и написано в СП.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший