8.х Проблема с передачей данных в Excel

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Alexey1982, 4 июл 2007.

Статус темы:
Закрыта.
  1. TopicStarter Overlay
    Alexey1982
    Offline

    Alexey1982

    Регистрация:
    3 июл 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Данные из запроса передаю в Excel. переносится все, кроме параметра, по которому упорядочивал и считал итоги.


    Процедура ВывестиДанные()
    ТекстЗапроса = "ВЫБРАТЬ

    | Теплоисточники.Ссылка КАК Источник,
    | ЕСТЬNULL(СПОТеплосбытаОборотыПар.СПООборот, 0) КАК Пар,
    | ЕСТЬNULL(СПОТеплосбытаОборотыГВС.СПООборот, 0) КАК ГВС,
    | ЕСТЬNULL(СПОТеплосбытаОборотыОтопл.СПООборот, 0) КАК Отопление,
    | ЕСТЬNULL(СПОТеплосбытаОборотыПромывка.СПООборот, 0) КАК Промывка,
    | ЕСТЬNULL(СПОТеплосбытаОборотыВент.СПООборот, 0) КАК Вентиляция,
    | ЕСТЬNULL(СПОТеплосбытаОборотыПотери.СПООборот, 0) КАК Потери,
    | ЕСТЬNULL(СПОТеплосбытаОборотыВода.СПООборот, 0) КАК Вода
    |ИЗ
    | Справочник.Теплоисточники КАК Теплоисточники

    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СПОТеплосбыта.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | ,
    | (Товар = &ТеплоэнергияВПаре)
    | И (НЕ Договор.ПометкаУдаления) ) КАК СПОТеплосбытаОборотыПар
    | ПО Теплоисточники.Ссылка = СПОТеплосбытаОборотыПар.Теплоисточник

    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СПОТеплосбыта.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | ,
    | (Товар = &ТеплоэнергияВВоде)
    | И (НЕ Договор.ПометкаУдаления) ) КАК СПОТеплосбытаОборотыВода
    | ПО Теплоисточники.Ссылка = СПОТеплосбытаОборотыВода.Теплоисточник

    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СПОТеплосбыта.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | ,
    | (Товар = &ТеплоэнергияВВоде)
    | И (НЕ Договор.ПометкаУдаления) И (ВидНагрузки = &ГВС)) КАК СПОТеплосбытаОборотыГВС
    | ПО Теплоисточники.Ссылка = СПОТеплосбытаОборотыГВС.Теплоисточник

    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СПОТеплосбыта.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | ,
    | (Товар = &ТеплоэнергияВВоде)
    | И (НЕ Договор.ПометкаУдаления) И (ВидНагрузки = &Промывка)) КАК ОТеплосбытаОборотыПромывка
    | ПО Теплоисточники.Ссылка = СПОТеплосбытаОборотыПромывка.Теплоисточник

    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СПОТеплосбыта.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | ,
    | (Товар = &ТеплоэнергияВВоде)
    | И (НЕ Договор.ПометкаУдаления) И (ВидНагрузки = &Вентиляция)) КАК СПОТеплосбытаОборотыВент
    | ПО Теплоисточники.Ссылка = СПОТеплосбытаОборотыВент.Теплоисточник

    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СПОТеплосбыта.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | ,
    | (Товар = &ТеплоэнергияВВоде)
    | И (НЕ Договор.ПометкаУдаления) И (ВидНагрузки = &Потери)) КАК СПОТеплосбытаОборотыПотери
    | ПО Теплоисточники.Ссылка = СПОТеплосбытаОборотыПотери.Теплоисточник

    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СПОТеплосбыта.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | ,
    | (Товар = &ТеплоэнергияВВоде)
    | И (НЕ Договор.ПометкаУдаления) И (ВидНагрузки = &Отопление)) КАК СПОТеплосбытаОборотыОтопл
    | ПО Теплоисточники.Ссылка = СПОТеплосбытаОборотыОтопл.Теплоисточник
    |ГДЕ
    | Теплоисточники.ПометкаУдаления = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    | Теплоисточники.Наименование ВОЗР
    |ИТОГИ

    | СУММА(Пар),
    | СУММА(Вода),
    | СУММА(ГВС),
    | СУММА(Потери),
    | СУММА(Вентиляция),
    | СУММА(Промывка),
    | СУММА(Отопление)
    |
    |ПО
    | Источник";

    Запрос = Новый Запрос(ТекстЗапроса);
    Запрос.УстановитьПараметр("НачалоПериода", ПериодС);
    Запрос.УстановитьПараметр("КонецПериода", ПериодПо);
    Запрос.УстановитьПараметр("ГВС", Справочники.ВидыНагрузок.ГВС);
    Запрос.УстановитьПараметр("Отопление", Справочники.ВидыНагрузок.Отопление);
    Запрос.УстановитьПараметр("Промывка", Справочники.ВидыНагрузок.Промывка);
    Запрос.УстановитьПараметр("Вентиляция", Справочники.ВидыНагрузок.Вентиляция);
    Запрос.УстановитьПараметр("Потери", Справочники.ВидыНагрузок.Потери);
    Запрос.УстановитьПараметр("ТеплоэнергияВВоде", Справочники.Товары.ТеплоэнергияВВоде);
    Запрос.УстановитьПараметр("ТеплоэнергияВПаре", Справочники.Товары.ТеплоэнергияВПаре);


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


    Попытка
    Эксель = Новый COMОбъект("Excel.Application");
    Исключение
    Возврат;
    КонецПопытки;
    templ="C:\Documents and Settings\A_Voronov\Рабочий стол\Баланс2.xls";
    Книга=Эксель.Workbooks.Open(templ);
    ТекЛист=Книга.WorkSheets(1);

    ТекЛист.Cells(2,14).Value = ПредставлениеПериода(ПериодС, КонецДня(ПериодПо));
    к = 8;
    Пока Выборка.Следующий() цикл
    к = к+1;
    ТекЛист.Cells(к,1).Value = Выборка.Источник; // данный параметр не передается (ошибка Value)
    Если Выборка.Пар=0 Тогда
    ТекЛист.Cells(к,3).Value = Null;
    Иначе
    ТекЛист.Cells(к,3).Value = Выборка.Пар;
    КонецЕсли;
    Если Выборка.Вода=0 Тогда
    ТекЛист.Cells(к,7).Value = Null;
    Иначе
    ТекЛист.Cells(к,7).Value = Выборка.Вода;
    КонецЕсли;
    Если Выборка.Промывка=0 Тогда
    ТекЛист.Cells(к,12).Value = Null;
    Иначе
    ТекЛист.Cells(к,12).Value = Выборка.Промывка;
    КонецЕсли;
    Если Выборка.ГВС=0 Тогда
    ТекЛист.Cells(к,11).Value = Null;
    Иначе
    ТекЛист.Cells(к,11).Value = Выборка.ГВС;
    КонецЕсли;
    Если Выборка.Отопление=0 Тогда
    ТекЛист.Cells(к,16).Value = Null;
    Иначе
    ТекЛист.Cells(к,16).Value = Выборка.Отопление;
    КонецЕсли;
    Если Выборка.Вентиляция=0 Тогда
    ТекЛист.Cells(к,17).Value = Null;
    Иначе
    ТекЛист.Cells(к,17).Value = Выборка.Вентиляция;
    КонецЕсли;
    Если Выборка.Потери=0 Тогда
    ТекЛист.Cells(к,18).Value = Null;
    Иначе
    ТекЛист.Cells(к,18).Value = Выборка.Потери;
    КонецЕсли;

    КонецЦикла;
    Эксель.Visible = Истина;


    КонецПроцедуры
Статус темы:
Закрыта.

Поделиться этой страницей