Некорректно отрабатывает метод Вопрос();
Добрый день.
Только закончил курсы программирования 1С, практически ничего не знаю...:(
Опыта работы в программировании нет
Помогите, пожалуйста, разобраться...
Поставили задачу в обработке задать вопрос пользователю при нажатии на галочку/поле флажка (процедура "При изменении") и в зависимости от ответа или прерываем обработку или продолжаем.
Так как данный обработчик уже существует на форме обработки я решил в него добавить РежимДиалогаВопрос.ДаНет (закомментированный фрагмент в коде).
Сообщение вывелось, но при повторном нажатии на галочку форма с вопросом зависает на секунд 40-60, не понимаю почему.
Также не получается обновить табличную часть обработки после обработки вопроса, был использован метод Прочитать() (закомментированный фрагмент в коде)
Платформа: 8.3 (8.3.17.1851)
Конфигурация: 11.1 (11.1.9.56)
Режим: Серверный
Фрагмент кода:
Только закончил курсы программирования 1С, практически ничего не знаю...:(
Опыта работы в программировании нет
Помогите, пожалуйста, разобраться...
Поставили задачу в обработке задать вопрос пользователю при нажатии на галочку/поле флажка (процедура "При изменении") и в зависимости от ответа или прерываем обработку или продолжаем.
Так как данный обработчик уже существует на форме обработки я решил в него добавить РежимДиалогаВопрос.ДаНет (закомментированный фрагмент в коде).
Сообщение вывелось, но при повторном нажатии на галочку форма с вопросом зависает на секунд 40-60, не понимаю почему.
Также не получается обновить табличную часть обработки после обработки вопроса, был использован метод Прочитать() (закомментированный фрагмент в коде)
Платформа: 8.3 (8.3.17.1851)
Конфигурация: 11.1 (11.1.9.56)
Режим: Серверный
Фрагмент кода:
Процедура ЗаявкиНаТранспортСтатусПриИзменении(Элемент)
Перем МассивПарныхЗаявокНаТранспорт;
// --- ЗДЕСЬ БЫЛА ПОПЫТКА ЗАДАТЬ ВОПРОС ПОЛЬЗОВАТЕЛЮ !!!
//Режим = РежимДиалогаВопрос.ДаНет;
//Ответ = Вопрос("Выполнить?", Режим, 0);
//Если Ответ = КодВозвратаДиалога.Нет Тогда
// Возврат;
//КонецЕсли;
//
// ЭтаФорма.Прочитать();
// --- НИЧЕГО НЕ ВЫШЛО
ТекущиеДанные = Элементы.ЗаявкиНаТранспорт.ТекущиеДанные;
Если Не ТекущиеДанные.Статус Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(ТекущиеДанные.ИДЗаказаКлиентаВКК)
И СОТ_ЗаявкиНаТранспортВызовСервера.ЭтоПарнаяЗаявкаНаТранспорт(ТекущиеДанные.ИДЗаказаКлиентаВКК, МассивПарныхЗаявокНаТранспорт) Тогда
ТекстПарныеЗаявкиНаТранспорт = "";
Для Каждого ЗаявкаНаТранспорт Из МассивПарныхЗаявокНаТранспорт Цикл
ТекстПарныеЗаявкиНаТранспорт = ТекстПарныеЗаявкиНаТранспорт + ЗаявкаНаТранспорт + Символы.ПС;
КонецЦикла;
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопросаЗаявкиНаТранспортСтатусПриИзменении", ЭтотОбъект,
Новый Структура("МассивПарныхЗаявокНаТранспорт", МассивПарныхЗаявокНаТранспорт));
ПоказатьВопрос(Оповещение,
"Текущая заявка на транспорт является парной, будут выполнены следующие заявки: " + Символы.ПС + ТекстПарныеЗаявкиНаТранспорт,
РежимДиалогаВопрос.ДаНетОтмена);
Иначе
ОбработатьИзменениеСтатусаЗаявкиНаТранспорт(ТекущиеДанные.ЗаявкаНаТранспорт);
ОтправитьУведомлениеНаПочту(ТекущиеДанные.ДокументОснование, ТекущиеДанные.ЗаявкаНаТранспорт);
ОтправитьУведомлениеОРасхожденииКоличества(ТекущиеДанные.ЗаявкаНаТранспорт);
ЗаполнитьДеревоЗаявокНаПеревозку();
РазвернутьВсеСтрокиДерева();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗакрытияВопросаЗаявкиНаТранспортСтатусПриИзменении(Результат, Параметры) Экспорт
Если Не Результат = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из Параметры.МассивПарныхЗаявокНаТранспорт Цикл
ОбработатьИзменениеСтатусаЗаявкиНаТранспорт(Строка);
КонецЦикла;
ЗаполнитьДеревоЗаявокНаПеревозку();
РазвернутьВсеСтрокиДерева();
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Интеграция сценарного тестирования в процесс разработки
- Синхронизация хранилища 1С и git-репозитория с применением OneScript и Gitsync. Методика и пошаговая инструкция для создания скрипта и его регулярного запуска
- Как контролировать качество внешних обработок, отчетов, правил обмена, расширений 1С и поставить это на поток
- Тестирование средств 1С для решения СЛАУ
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Не совсем так (Вопрос (DoQueryBox) из СП):
Но (СП):
Доступность:
Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Но (СП):
Если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать, следует использовать метод ПоказатьВопрос.
Еще интересный момент, когда при повторном нажатии на кнопку / поле флажок нажимаешь окошко с вопросом зависает на 40-60 сек., но если клиентское приложение свернуть, а потом развернуть, форма вопроса отлипает, или если зайти в клиентское приложение локально, без подключения удаленного рабочего стола (RemoteApp), то проблема исчезает, но по прежнему табличная часть не обновляется...
(9) С RemoteApp и всплывающими окнами в приложении давно известная беда. К самой программе 1С это не имеет отношения. Но может у вас какой-то особый случай.
Что касается обновления отображения данных ТЧ, тут нужно смотреть отдельно. В отладчике до соотвествующего кода доходит?
Что касается обновления отображения данных ТЧ, тут нужно смотреть отдельно. В отладчике до соотвествующего кода доходит?
(10) Да, в обще то код выполняется и с вопросом, и без вопроса. Но с вопросом система виснет. В замере производительности закомментированный кусок кода выполняется дольше всего, около 40-60 сек. Почему так, не понимаю. Буду дальше разбираться. Спасибо вам большое за отклик.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот