Событие при установке отбора

1. Xellsing 33 14.09.16 09:31 Сейчас в теме
Добрый день подскажите в какое событие в УТ 10.3 формы списка нужно вставить код чтоб он срабатывал при установки нового отбора ну или чтоб он не выполнялся каждый раз как ПриПолученииДанных, просто на форме списка сделал поле итоговой суммы и чтоб систему не перегружать заставляя ее каждый раз пересчитывать в какое событие лучше поместить.
adhocprog; AsKorysti; +2 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 15.09.16 16:01 Сейчас в теме
Если итоговая сумма у вас завязана на список с текущим отбором, не понимаю как вы решили получить все строки отфильтрованного списка. Тем не менее, иногда действительно нужно перехватывать изменение Отборов. Решение вижу через процедуру "ПодключитьОбработчикИзмененияДанных".
В этом примере я также использую "ПодключитьОбработчикОжидания" чтобы запретить следующее выполнение моей процедуры на 1 секунду, так как даже незначительное изменение отбора может вызывать обработчик изменения данных несколько раз (он вызывается при каждом изменении свойства элемента отбора, например "Использование", "Значение" или "ВидСравнения").
Перем РазрешитьМоюПроцедуру;

Процедура ПриОткрытии()
	РазрешитьМоюПроцедуру = Истина;
	ПодключитьОбработчикИзмененияДанных("ДокументСписок.Отбор", "МояПроцедура", Истина);
КонецПроцедуры

Процедура МояПроцедура(ИмяДанных)
	Если Не РазрешитьМоюПроцедуру Тогда
		Возврат
	КонецЕсли;
	Сообщить(ИмяДанных);
	РазрешитьМоюПроцедуру = Ложь;
	ПодключитьОбработчикОжидания("ВключитьМоюПроцедуру", 1, Истина);
КонецПроцедуры

Процедура ВключитьМоюПроцедуру()
	РазрешитьМоюПроцедуру = Истина;
КонецПроцедуры
Показать
Andreyyy; user1334089; MrFlanker; adhocprog; AsKorysti; +5 Ответить
3. Xellsing 33 21.09.16 18:05 Сейчас в теме
(2) SlavaKron, Сделал следующим образом может немного коряво но вроде все работает в процедуру при открытии поместил
ПодключитьОбработчикИзмененияДанных("ДокументСписок.Отбор", "ОбработатьИзменениеОтбора", Истина);
	
	Построитель = Новый ПостроительЗапроса;
	Построитель.ИсточникДанных  = Новый ОписаниеИсточникаДанных(ДокументСписок);
	Результат = Построитель.Результат; //отобранные строки типа РезультатЗапроса
	ТЗ = Результат.Выгрузить();
	ОбщаяСумма=ТЗ.Итог("СуммаДокумента");
	ЭтаФорма.СуммаПриб=ОбщаяСумма;

И потом в модуль формы списка добавил процедуру

Процедура ОбработатьИзменениеОтбора(Элемент)
Если ЕстьОтбор Тогда
	Построитель = Новый ПостроительЗапроса;
	Построитель.ИсточникДанных  = Новый ОписаниеИсточникаДанных(ДокументСписок);
	Результат = Построитель.Результат; //отобранные строки типа РезультатЗапроса
	ТЗ = Результат.Выгрузить();
	ОбщаяСумма=ТЗ.Итог("СуммаДокумента");
	ЭтаФорма.СуммаПриб=ОбщаяСумма;
	Иначе
	Построитель = Новый ПостроительЗапроса;
	Построитель.ИсточникДанных  = Новый ОписаниеИсточникаДанных(ДокументСписок);
	Результат = Построитель.Результат; //отобранные строки типа РезультатЗапроса
	ТЗ = Результат.Выгрузить();
	ОбщаяСумма=ТЗ.Итог("СуммаДокумента");
	ЭтаФорма.СуммаПриб=ОбщаяСумма;
	КонецЕсли;
КонецПроцедуры
Показать
AsKorysti; +1 Ответить
4. Slusarenko_I 14.05.21 11:33 Сейчас в теме
Есть что-нибудь подобное для тонкого клиента? кроме обработчика ожидания
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот