Итоговая сумма в динамических списках (список документов, список справочников)
Итоговая сумма в динамических списках (список документов, список справочников) с учетом текущего отбора.
- Описание
- Подробнее
Описание
Данный запрос актуальный для динамических списков!
Столкнулся с тем что нужно было показать итоговую сумму в списке документов с учетом текущего отбора, а возможности у платформы нет (в динамич. списках), пришлось наваять запрос и передать ему отбор.
Этот компактный запрос позволит рассчитать сумму проведенных документов в списке документов с учетом текущего отбора и показать его как текст подвала колонки.
Для начала нужно поставить галочку «Подвал» в свойствах списка. И в предопределенной процедуре ОбновлениеОтображения(), формы списка, написать следующее:
ПостроительЗапроса = Новый ПостроительЗапроса;
ТекстПостроителя = "ВЫБРАТЬ
| ЗаявкаНаКассовыйРасход.Номер Как Номер,
| ЗаявкаНаКассовыйРасход.ПометкаУдаления Как ПометкаУдаления,
| ЗаявкаНаКассовыйРасход.Проведен КАК Проведен, ";
РеквизитыЗКР = Метаданные.Документы.ЗаявкаНаКассовыйРасход.Реквизиты;
Для Индекс = 0 По РеквизитыЗКР.Количество()-1 Цикл
ТекстПостроителя = ТекстПостроителя + " ЗаявкаНаКассовыйРасход." + СокрЛП(РеквизитыЗКР[Индекс].Имя) + " КАК " + СокрЛП(РеквизитыЗКР[Индекс].Имя) + " ";
Если РеквизитыЗКР.Количество()-1 <> Индекс Тогда
ТекстПостроителя = ТекстПостроителя + ",";
КонецЕсли;
КонецЦикла;
ТекстПостроителя = ТекстПостроителя + "
| ИЗ Документ.ЗаявкаНаКассовыйРасход КАК ЗаявкаНаКассовыйРасход
| ГДЕ Проведен = Истина";
ПостроительЗапроса.Текст = ТекстПостроителя;
ОписаниеИсточникаДанных= Новый ОписаниеИсточникаДанных(ДокументСписок);
ПостроительЗапроса.ИсточникДанных = ОписаниеИсточникаДанных;
ПостроительЗапроса.Выполнить();
тз = ПостроительЗапроса.Результат.Выгрузить();
СуммаПоТЗ = Формат(тз.Итог("СуммаДокумента"), "ЧЦ=14; ЧДЦ=2");
ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = СокрЛП(СуммаПоТЗ);
ЗаявкаНаКассовыйРасход — заменить на документ в котором делаеться.
Если большой список документов, можно повесить этот код на кнопку «рассчитать» и при нажатии будет рассчитывать сумму.
Надеюсь пригодится этот скромный труд.