Как подсчитать итоги динамического списка (медленный вариант при большом объеме данных)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
СхемаКомпоновкиДанных = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных(); НастройкиКомпоновкиДанных = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных ,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ТаблицаЗначений = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений); ПроцессорВывода.Вывести(ПроцессорКомпоновки); ИтоговаяСумма = ТаблицаЗначений.Итог("СуммаДокумента"); |
1С 8.3 : Подсчет итогов динамического списка (медленный вариант при большом объеме данных): 3 комментария
Я делал так!
Процедура ОбновлениеОтображения()
Если НЕ ЭлементыФормы.ДействияФормы.Кнопки.ВыводитьИтоги.Пометка Тогда
ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = «»;
Возврат;
КонецЕсли;
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписок);
Результат = Построитель.Результат.Выгрузить(); //отобранные строки типа РезультатЗапроса
ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = Результат.Итог(«СуммаДокумента»);
КонецПроцедуры
на 5000 документах работало идеально, но потом жесть…((((
щас гляну как отработает Ваш код на 6741 документов.
даже пробовал через кнопку.
Процедура ДействияФормыВыводитьИтоги(Кнопка)
Кнопка.Пометка = НЕ Кнопка.Пометка;
ОбновлениеОтображения();
КонецПроцедуры
медленный вариант при большом объеме данных!
Это примерно сколько должно быть документов в форме списка?
на каком количестве он уже замедляем работу?
Обсуждение закрыто.