1С 8.3 Задать вопрос после записи (Асинх)
Данные > Примеры кода 1С > 1С 8.3 Диалоги
Перейти в раздел примеры кода 1С 8.3:
Задать вопрос после закрытия обработчика в 1С 8.3 (с телеграм канала Ju):
// Иногда хочется задать вопрос уже после записи (например, элемента справочника).
// Т.е. уже в тот момент, когда прошли все проверки заполнения и мы точно знаем, что "всё ок".
// Например, открыть какую-то дополнительную форму или добавить комментарий истории данных.
// Чтобы задать вопрос, необходимо делать это, например, в событии "ПослеЗаписи".
// Это может быть вопрос или через обработчик оповещения, или через новый Асинх метод.
// Но в обоих случаях, если пользователь нажмёт "Записать и закрыть", то вопроса он не увидит.
// Но если вам всё же нужно задавать вопрос и в таком случае, то есть интересный костыль, связанный с особенностью Асинх в 1С.
// Нужно в самом начале асинх процедуры с вопросом вставить такую строчку: Ждать 1
// На этом всё, расходимся)
// Смысл в том, что, как только срабатывает оператор Ждать, то управление возвращается в вызывающий код.
// Событие ПослеЗаписи завершается и закрывает форму, а потом платформа снова возвращается в наш Асинх метод
// и далее уже задаёт вопрос. Теперь этот вопрос с формой и не связан и мы можем на него спокойно ответить.
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ЗадатьВопросАсинх();
КонецПроцедуры
&НаКлиенте
Асинх Процедура ЗадатьВопросАсинх()
Ждать 1;
Ответ = Ждать ВопросАсинх("Сделать ещё что-то?", РежимДиалогаВопрос.ДаНет);
Если Ответ = КодВозвратаДиалога.Да Тогда
// Делаем ещё что-то
КонецЕсли;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник