8.х выборка из запроса и подсчет результатов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем mhl, 21 сен 2007.

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

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ОтгрузкаПродукции.Ссылка,
    |    ОтгрузкаПродукции.Контрагент,
    |    ПРЕДСТАВЛЕНИЕ(ОтгрузкаПродукции.Контрагент),
    |    ОтгрузкаПродукции.ТаблЧасть.(
    |        Номенклатура,
    |        ПРЕДСТАВЛЕНИЕ(ОтгрузкаПродукции.ТаблЧасть.Номенклатура),
    |        Счет,
    |        ПРЕДСТАВЛЕНИЕ(ОтгрузкаПродукции.ТаблЧасть.Счет),        
    |        Колво,
    |        Цена,
    |        Сумма
    |    ),
    |    ОтгрузкаПродукции.Дата,
    |    ОтгрузкаПродукции.СуммаДокумента
    |ИЗ
    |    Документ.ОтгрузкаПродукции КАК ОтгрузкаПродукции
    |ГДЕ
    |    ОтгрузкаПродукции.Дата >= &НачДата
    |    И ОтгрузкаПродукции.Дата <= &КонДата
    |    И ОтгрузкаПродукции.Контрагент = &Контрагент
    |    И ОтгрузкаПродукции.Проведен = &Проведен";
    Если СчетУчета.Пустая()=Ложь ТОгда
    Запрос.Текст = Запрос.Текст+
    "
    |    И ОтгрузкаПродукции.ТаблЧасть.Счет = &СчетУчета";
    КонецЕсли;
    Запрос.Текст = Запрос.Текст+
    "
    |АВТОУПОРЯДОЧИВАНИЕ";
    
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("КонДата", КонецДня(НД));
    Запрос.УстановитьПараметр("НачДата", НачалоДня(НД));
    Запрос.УстановитьПараметр("Проведен", Проведен);
    Запрос.УстановитьПараметр("СчетУчета", СчетУчета);
    Результат = Запрос.Выполнить();
    ВыборкаДетали = Результат.Выбрать();
    Пока ВыборкаДетали.Следующий() Цикл
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
    ОбластьДетальныхЗаписей.Параметры.ИтогСумма = ВыборкаДетали.СуммаДокумента;
    ОбщийИтог = ОбщийИтог+ВыборкаДетали.СуммаДокумента;
    Оборот = Баланс(КонецДня(НД), Контрагент, Сч);
    ОбластьДетальныхЗаписей.Параметры.Оборот = Оборот;
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());
    ТабДок.НачатьГруппуСтрок();
    ТабДок.НачатьАвтогруппировкуСтрок();
    ТаблЧастьВыборкаДетали = ВыборкаДетали.ТаблЧасть.Выбрать();
    СуммаМес=0; //Миша
    Пока ТаблЧастьВыборкаДетали.Следующий() Цикл
    ТаблЧастьОбластьДетальныхЗаписей.Параметры.Заполнить(ТаблЧастьВыборкаДетали);
    ТабДок.Вывести(ТаблЧастьОбластьДетальныхЗаписей, ТаблЧастьВыборкаДетали.Уровень());
    КонецЦикла;
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.ЗакончитьГруппуСтрок();
    КонецЦикла;
    .....................................................................................................................................................
    .....................................................................................................................................................
    .....................................................................................................................................................
    ОблОбщаяСумма.Параметры.ОбщаяСумма = ОбщийИтог;
    ОблОбщаяСумма.Параметры.ИтогоКасса = ИтогоКасса;
    ТабДок.Вывести(ОблОбщаяСумма);
    ОблКонОст.Параметры.КонОст = Баланс(КонецДня(КонДата), Контрагент, Сч);
    ТабДок.Вывести(ОблКонОст);
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    ТабДок.ФиксацияСверху = 5;
    
    Каким образом исправить код чтобы в ячейку ОбластьДетальныхЗаписей.Параметры.ИтогСумма писались только те суммы, которые выводятся в таблицу. Сейчас он считает все, что находит в запросе.
    Я пробовал во внутренний цикл писать такой код:
    Код:
    СуммаМес=СуммаМес+ТаблЧастьОбластьДетальныхЗаписей.Сумма;
    ТаблЧастьОбластьДетальныхЗаписей.Параметры.ИтогСумма=СуммаМес;
    
    все-равно не получается
Статус темы:
Закрыта.

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