Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 04:28

Рабочая ли процедура выгрузки в excel

Автор Толстомордый, 17 авг 2015, 11:57

0 Пользователей и 1 гость просматривают эту тему.

Толстомордый

Всем добрый день! Не пинайте :)  я не профи.

Вопрос - такого рода мой код способен выгружать что либо или пустой лист файл эксель на выходе неизбежен?

Решаю простую задачу - выгрузить результат запроса в файл Excel при помощи внешней обработки.
Пока что на выходе пустой файл, отсюда непонятки - я неправильно оформил макет или сам код нерабочий.


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

Макет = ПолучитьМакет("Макет");
ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщийИтог");
ТабДок = Новый ТабличныйДокумент;
Результат = Запрос.Выполнить();
ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.Прямой);
ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
ТабДок.Вывести(ОбластьОбщийИтог);
ТабДок.Записать("c:\111.xls", ТипФайлаТабличногоДокумента.XLS);


cska-fanat-kz

ну так сделайте "ТабДок.Показать();" и смотрите, есть у вас что-то на выходе или нет! :befhbt:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

между вот этим...
    ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.Прямой);
    ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);

надо вставить
    ВыборкаОбщийИтог.Следующий();

это чтобы хотя бы хоть что-то вывелось, хотя практической ценности от всего этого.... :trhregerhg:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Толстомордый

В данном случае, в запросе без группировок, ВыборкаОбщийИтог.Следующий() все равно нужна?
Вставил на самом деле....  Так и не выводит ничего.

Извините, а не подскажете где посмотреть как создать самый простой макет табличного документа? Может ссылка какая, для пионеров...

Цитата: cska-fanat-kz от 17 авг 2015, 12:02
между вот этим...
    ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.Прямой);
    ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);

надо вставить
    ВыборкаОбщийИтог.Следующий();

это чтобы хотя бы хоть что-то вывелось, хотя практической ценности от всего этого.... :trhregerhg:
Добавлено: 17 авг 2015, 14:15


Разобрался.
Код выгрузки нерабочий.
Для выгрузки следует поставить в макете строку как область и клетки как параметры. 
И добавить цикл по строкам.

PS Хотя разочарован - думал можно напрямую кинуть результат запроса в файл.... ну нет так нет.

Пока ВыборкаОбщийИтог.Следующий() Цикл
Область = Макет.ПолучитьОбласть("Строка");
Область.Параметры.Цена = ВыборкаОбщийИтог.Цена;
...
ТабДок.Вывести(Область);
КонецЦикла;


PS спасибо cska-fanat-kz


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск