ОбработкаПрерыванияПользователя() не работает.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
и до и после - без разницы! Прерывание пользователя работает только НаКленте
вот в цикле (На Клиенте) например вставили и этот цикл сможете прервать!
то что выполняется на Сервере - не прерывается!
вот в цикле (На Клиенте) например вставили и этот цикл сможете прервать!
то что выполняется на Сервере - не прерывается!
(2) Счас покажу
Пока Не ТекДень = КонецВыборки Цикл
ОбработкаПрерыванияПользователя();
текДата=ТекДень;
СоздатьНаСервере(ТекДень,общкол);
ТекДень = ТекДень+86400;//Добавим 1 День
текДата=ТекДень;
СостояниеОбработки = Формат(ТекДень, "ДЛФ=D");
инд=инд+окр(пар);
Индикатор = инд;
ОбновитьОтображениеДанных();
ОбработкаПрерыванияПользователя();
конеццикла;
Показать
(3) как вызывается этот код?
Для прерывания есть ограничения. Они описаны в СП:
Для прерывания есть ограничения. Они описаны в СП:
Прерывания выполнения допускается если оно инициировано определенным интерактивным действием пользователя. К таким действиям относятся:
нажатие кнопки в форме;
выбор пункта меню или кнопки командной панели в форме;
выбор пункта меню или кнопки панели инструментов интерфейса;
действия инициируемые обработчиками событий "Выбор" элементов управления.
нажатие кнопки в форме;
выбор пункта меню или кнопки командной панели в форме;
выбор пункта меню или кнопки панели инструментов интерфейса;
действия инициируемые обработчиками событий "Выбор" элементов управления.
Если в терминале дело - там проблемы с передачей нажатых клавиш.
Но если поищешь по инету то увидишь что этой багофиче лет уже много и никаких подвижек с этой багофичей нет. У меня тоже не работает в нескольких местах, при этом работает в других местах и это на одном и том же клиенте, одном и том же железе, в одних и тех же контекстах.
я опустил руки.
Но если поищешь по инету то увидишь что этой багофиче лет уже много и никаких подвижек с этой багофичей нет. У меня тоже не работает в нескольких местах, при этом работает в других местах и это на одном и том же клиенте, одном и том же железе, в одних и тех же контекстах.
я опустил руки.
(8)
&НаКлиенте
Процедура Команда1(Команда)
ПараметрыФоновогоЗадания = Новый Массив;
ПараметрыФоновогоЗадания.Добавить(ТекущаяДата());
ФоновоеЗаданиеЗагрузкаДанных = ФоновыеЗадания.Выполнить("ОбщийМодульСервер.ВыполнитьФоново",ПараметрыФоновогоЗадания);
ИдентификаторОбменДанных = ФоновоеЗаданиеЗагрузкаДанных.УникальныйИдентификатор;
ПодключитьОбработчикОжидания("ПроверитьФоновыеЗадания",2,Истина); // Так же можно вызвать форму Длительные операции
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьФоновыеЗадания()
РезультатФЗ = ПроверитьФоновыеЗаданияНаСервере(ИдентификаторОбменДанных);
Если РезультатФЗ.Выполнено Тогда
ПоказатьОповещениеПользователя("Успешно загружены цены на: " + Формат(ТекущаяДата(),"ДЛФ=DD"));
ИначеЕсли РезультатФЗ.Выполняется Тогда
ПодключитьОбработчикОжидания("ПроверитьФоновыеЗадания",5,Истина);
Возврат;
ИначеЕсли ЗначениеЗаполнено(РезультатФЗ.ТекстОшибки) Тогда
Сообщить("Возникла ошибка при загрузке цен: " + РезультатФЗ.ТекстОшибки);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПроверитьФоновыеЗаданияНаСервере(ИДЗадания)
/// Проверка статуса фонового задания
РезультатПроверкиФЗ = новый Структура;
РезультатПроверкиФЗ.Вставить("Выполнено",Ложь);
РезультатПроверкиФЗ.Вставить("Выполняется",Истина);
РезультатПроверкиФЗ.Вставить("ТекстОшибки","");
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИДЗадания);
Если ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Завершено Тогда
РезультатПроверкиФЗ.Выполнено = Истина;
РезультатПроверкиФЗ.Выполняется = Ложь;
ИначеЕсли ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно Тогда
РезультатПроверкиФЗ.Выполняется = Ложь;
РезультатПроверкиФЗ.ТекстОшибки = КраткоеПредставлениеОшибки(ФоновоеЗадание.ИнформацияОбОшибке);
ИначеЕсли ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Отменено Тогда
РезультатПроверкиФЗ.Выполняется = Ложь;
КонецЕсли;
Возврат РезультатПроверкиФЗ;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот