|
Обновление формы фоновым заданием | ☑ | ||
---|---|---|---|---|
0
Max57
05.04.24
✎
11:56
|
Всем привет. Есть расширение, в нем обработка с формой, которая выводится на начальной странице. На форме есть кнопка обновить. Подскажите, пожалуйста, как сделать, чтобы пользователю не надо было нажимать на кнопку обновить, а данные обновлялись фоновым заданием?
|
|||
1
Климов Сергей
05.04.24
✎
12:17
|
ПодключитьОбработчикОжидания() вам в помощь.
В обработчике пытаться получить результат выполнения фонового задания и обновлять форму. |
|||
2
Max57
05.04.24
✎
12:28
|
(1) Я не совсем верно описал, мне нужно, чтобы форма периодически обновлялась, там табличное поле(ТЗ). Заполняется при открытии формы и нажатии на кнопку обновить. Мне нужно сделать, чтобы в модуле формы периодически выполнялась процедура, которая заполняет табличное поле.
|
|||
3
Климов Сергей
05.04.24
✎
12:30
|
(2) Ну тогда в обработчике перезаполняйте ТЗ.
|
|||
4
Max57
05.04.24
✎
12:36
|
Вот код модуля формы обработки. Получается, что я могу в процедуру при открытии добавить обработчик?
&НаКлиенте Процедура РасчитатьДниПроизводства(Команда) РасчитатьДниПроизводстваНаСервере(); КонецПроцедуры &НаСервере Процедура РасчитатьДниПроизводстваНаСервере() ДниПроизводства.Очистить(); ТЧРезультат = Обработки.ОбработкаПодсчетаДнейПроизводства.РасчитатьДниПроизводства(); Для Каждого СтрокаТЧ ИЗ ТЧРезультат Цикл Строка = ДниПроизводства.Добавить(); Строка.НоменклатурнаяГруппа = СтрокаТЧ.НоменклатурнаяГруппа; Строка.СрокПроизводства = Окр(СтрокаТЧ.CрокПроизводства); Строка.СредняяПроизводительность = Формат(СтрокаТЧ.СредняяПроизводительность, "ЧДЦ=2"); Строка.КоэффициентПогрешности = Формат(СтрокаТЧ.КоэффициентПогрешности, "ЧДЦ=2"); Строка.КоличествоНаСкладе = Формат(СтрокаТЧ.КоличествоНаСкладе, "ЧДЦ=2"); Строка.КоличествоПоЗаказамКлиентаНезакрытым = Формат(СтрокаТЧ.КоличествоПоНезакрытымЗаказам, "ЧДЦ=2"); Строка.НеобходимоПроизвести = Формат(СтрокаТЧ.НеобходимоПроизвести, "ЧДЦ=2"); КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) РасчитатьДниПроизводстваНаСервере(); КонецПроцедуры &НаКлиенте Процедура ОбъектРасшСокрПриИзменении(Элемент) Если Объект.РасшСокр Тогда Элементы.ДниПроизводстваСредняяПроизводительность.Видимость = Истина; Элементы.ДниПроизводстваКоэффициентПогрешности.Видимость = Истина; Элементы.ДниПроизводстваКоличествоНаСкладе.Видимость = Истина; Элементы.ДниПроизводстваКоличествоПоЗаказамКлиентаНезакрытым.Видимость = Истина; Элементы.ДниПроизводстваНеобходимоПроизвести.Видимость = Истина; Иначе Элементы.ДниПроизводстваСредняяПроизводительность.Видимость = Ложь; Элементы.ДниПроизводстваКоэффициентПогрешности.Видимость = Ложь; Элементы.ДниПроизводстваКоличествоНаСкладе.Видимость = Ложь; Элементы.ДниПроизводстваКоличествоПоЗаказамКлиентаНезакрытым.Видимость = Ложь; Элементы.ДниПроизводстваНеобходимоПроизвести.Видимость = Ложь; КонецЕсли; КонецПроцедуры |
|||
5
Max57
05.04.24
✎
12:40
|
&НаКлиенте
Процедура ПриОткрытии(Отказ) ПодключитьОбработчикОжидания("РасчитатьДниПроизводстваНаСервере", 3600); // Например, так КонецПроцедуры |
|||
6
Max57
05.04.24
✎
12:44
|
(3) спасибо
|
|||
7
Климов Сергей
05.04.24
✎
13:01
|
Пожалуйста!
|
|||
8
Max57
05.04.24
✎
13:11
|
(5) В первом параметре должна быть процедура без параметров и на клиенте
|
|||
9
Мультук
05.04.24
✎
13:29
|
(8)
&НаКлиенте Процедура РасчитатьДниПроизводства_БезПараметров() РасчитатьДниПроизводства(неопределено); КонецПроцедуры ПодключитьОбработчикОжидания("РасчитатьДниПроизводства_БезПараметров", 3600); // Например, так P.S. 1) Рассчитать 2) Почему бы не создать колонки в "ДниПроизводства" сразу нужного типа и далее &НаСервере Процедура РасчитатьДниПроизводстваНаСервере() тз = Обработки.ОбработкаПодсчетаДнейПроизводства.РасчитатьДниПроизводства(); ДниПроизводства.Загрузить(тз); КонецПроцедуры |
|||
10
Max57
05.04.24
✎
13:41
|
(9) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |