Некорректно отрабатывает метод Вопрос();

1. _Lebowski_ 30.09.21 16:08 Сейчас в теме
Добрый день.

Только закончил курсы программирования 1С, практически ничего не знаю...:(
Опыта работы в программировании нет

Помогите, пожалуйста, разобраться...

Поставили задачу в обработке задать вопрос пользователю при нажатии на галочку/поле флажка (процедура "При изменении") и в зависимости от ответа или прерываем обработку или продолжаем.

Так как данный обработчик уже существует на форме обработки я решил в него добавить РежимДиалогаВопрос.ДаНет (закомментированный фрагмент в коде).

Сообщение вывелось, но при повторном нажатии на галочку форма с вопросом зависает на секунд 40-60, не понимаю почему.
Также не получается обновить табличную часть обработки после обработки вопроса, был использован метод Прочитать() (закомментированный фрагмент в коде)


Платформа: 8.3 (8.3.17.1851)
Конфигурация: 11.1 (11.1.9.56)
Режим: Серверный

Фрагмент кода:

Процедура ЗаявкиНаТранспортСтатусПриИзменении(Элемент)
	
	Перем МассивПарныхЗаявокНаТранспорт;
	
        
        // --- ЗДЕСЬ БЫЛА ПОПЫТКА ЗАДАТЬ ВОПРОС ПОЛЬЗОВАТЕЛЮ !!!

	//Режим = РежимДиалогаВопрос.ДаНет;
	//Ответ = Вопрос("Выполнить?", Режим, 0);
	//Если Ответ = КодВозвратаДиалога.Нет Тогда
	//	Возврат;
	//КонецЕсли;
	// 
        // ЭтаФорма.Прочитать();

        // --- НИЧЕГО НЕ ВЫШЛО
			
	ТекущиеДанные = Элементы.ЗаявкиНаТранспорт.ТекущиеДанные;
	
	Если Не ТекущиеДанные.Статус Тогда
		Возврат;
	КонецЕсли;
    
			
	Если ЗначениеЗаполнено(ТекущиеДанные.ИДЗаказаКлиентаВКК)		
		И СОТ_ЗаявкиНаТранспортВызовСервера.ЭтоПарнаяЗаявкаНаТранспорт(ТекущиеДанные.ИДЗаказаКлиентаВКК, МассивПарныхЗаявокНаТранспорт) Тогда
		
		ТекстПарныеЗаявкиНаТранспорт = "";
		
		Для Каждого ЗаявкаНаТранспорт Из МассивПарныхЗаявокНаТранспорт Цикл
			ТекстПарныеЗаявкиНаТранспорт = ТекстПарныеЗаявкиНаТранспорт + ЗаявкаНаТранспорт + Символы.ПС;
		КонецЦикла;
		
		Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаЗаявкиНаТранспортСтатусПриИзменении", ЭтотОбъект, 
		Новый Структура("МассивПарныхЗаявокНаТранспорт", МассивПарныхЗаявокНаТранспорт));	
		
		ПоказатьВопрос(Оповещение,
		"Текущая заявка на транспорт является парной, будут выполнены следующие заявки: " + Символы.ПС + ТекстПарныеЗаявкиНаТранспорт,
		РежимДиалогаВопрос.ДаНетОтмена); 
	Иначе		
		
		ОбработатьИзменениеСтатусаЗаявкиНаТранспорт(ТекущиеДанные.ЗаявкаНаТранспорт);
		ОтправитьУведомлениеНаПочту(ТекущиеДанные.ДокументОснование, ТекущиеДанные.ЗаявкаНаТранспорт);		  
		ОтправитьУведомлениеОРасхожденииКоличества(ТекущиеДанные.ЗаявкаНаТранспорт);
		
		ЗаполнитьДеревоЗаявокНаПеревозку();
		РазвернутьВсеСтрокиДерева();
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗакрытияВопросаЗаявкиНаТранспортСтатусПриИзменении(Результат, Параметры) Экспорт
	
	Если Не Результат = КодВозвратаДиалога.Да Тогда
		Возврат;
	КонецЕсли;
	
	Для Каждого Строка Из Параметры.МассивПарныхЗаявокНаТранспорт Цикл
		ОбработатьИзменениеСтатусаЗаявкиНаТранспорт(Строка);
	КонецЦикла;
	
	ЗаполнитьДеревоЗаявокНаПеревозку();
	РазвернутьВсеСтрокиДерева();
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 30.09.21 16:11 Сейчас в теме
В управляемых формах так не работает. Необходимо использовать асинхронные вызовы. ПоказатьВопрос()
3. _Lebowski_ 30.09.21 16:48 Сейчас в теме
(2) большое спасибо, но если честно не совсем понятно как это сделать, точнее я пытался, но не получилось, система ругается на уникальность Оповещение = Новый ОписаниеОповещения :(
4. FatPanzer 30.09.21 16:54 Сейчас в теме
(3) На клиенте надо делать
6. _Lebowski_ 30.09.21 17:05 Сейчас в теме
(4) хорошо, буду пробовать дальше, большое вам спасибо, что откликнулись..
15. user1135816 4 06.10.21 17:59 Сейчас в теме
(3) если конфигурация типовая, то сделайте поиск интересующей вас функции. Далее посмотрите как это применяется. Либо гугль
5. Release 30.09.21 16:56 Сейчас в теме
(2) Не совсем так (Вопрос (DoQueryBox) из СП):
Доступность:
Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).

Но (СП):
Если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать, следует использовать метод ПоказатьВопрос.
_Lebowski_; +1 Ответить
7. _Lebowski_ 30.09.21 17:07 Сейчас в теме
(5) В свойствах конфигурации режим использования модальности включен.
8. Release 30.09.21 17:12 Сейчас в теме
(7) Речь не о том.
Я написал, что утверждение: "В управляемых формах так (т.е. метод Вопрос) не работает." - несколько неверно.
Чтобы, если кто-то ещё будет читать тему по такой же проблеме, правильно понимал причину.
9. _Lebowski_ 30.09.21 17:49 Сейчас в теме
Еще интересный момент, когда при повторном нажатии на кнопку / поле флажок нажимаешь окошко с вопросом зависает на 40-60 сек., но если клиентское приложение свернуть, а потом развернуть, форма вопроса отлипает, или если зайти в клиентское приложение локально, без подключения удаленного рабочего стола (RemoteApp), то проблема исчезает, но по прежнему табличная часть не обновляется...
10. Release 30.09.21 18:04 Сейчас в теме
(9) С RemoteApp и всплывающими окнами в приложении давно известная беда. К самой программе 1С это не имеет отношения. Но может у вас какой-то особый случай.
Что касается обновления отображения данных ТЧ, тут нужно смотреть отдельно. В отладчике до соотвествующего кода доходит?
11. _Lebowski_ 01.10.21 08:56 Сейчас в теме
(10) Да, в обще то код выполняется и с вопросом, и без вопроса. Но с вопросом система виснет. В замере производительности закомментированный кусок кода выполняется дольше всего, около 40-60 сек. Почему так, не понимаю. Буду дальше разбираться. Спасибо вам большое за отклик.
12. SlavaKron 01.10.21 09:56 Сейчас в теме
(11)
около 40-60 сек
Ну так у вас модальный вызов – в замере вы видите время ожидания решения пользователя.
13. _Lebowski_ 01.10.21 09:58 Сейчас в теме
(12) пользователь все это время не может выполнить действие, тк форма зависает на указанное выше время, только после 40-60 сек., когда форма отлипает кнопки доступны.
14. SlavaKron 01.10.21 10:00 Сейчас в теме
(13) Организуйте полноценный RDP-сеанс вместо RemoteApp. Тут средствами 1С проблему не решить.
Оставьте свое сообщение

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