|
УФ ПередЗавершениемРаботыСистемы. Как проверить параметр перед тес как завершать? | ☑ | ||
---|---|---|---|---|
0
realevgenius
26.02.20
✎
17:29
|
Приветствую, уважаемые!
Например, надо проверить: Закрыл ли менеджер смену и перед выходом из программы его предупредить. Раньше было просто: Вызов сервера, проверка там, возврат результата, ну и отказ или нет, соответственно Теперь вызов серверного метода невозможен. Вопрос: Какая-то есть глобальная переменная или набор параметров или что-то, куда можно будет при работе пользователя записать значение, чтобы в процедуре ПередЗавершениемРаботыСистемы ее прочитать? Спасибо! |
|||
1
vicof
26.02.20
✎
17:32
|
ПараметрыСеанса не?
|
|||
2
realevgenius
26.02.20
✎
17:36
|
(1) ПараметрыСеанса - думал об этом...
ПередЗавершениемРаботыСистемы - здесь не доступны они |
|||
3
fisher
26.02.20
✎
17:39
|
Так параметры сеанса - тоже только на сервере.
Только экспортная переменная модуля приложения может подойти. |
|||
4
realevgenius
26.02.20
✎
17:41
|
(3) Извиняюсь за неграмотность
"экспортная переменная модуля" - вот об этом поподробнее? Где ее объявить, чтобы, например, в модуле документа Эквайринг в нее что-то записать и затем прочитать в ПередЗавершениемРаботыСистемы? |
|||
5
fisher
26.02.20
✎
17:42
|
(4) Ну вот где у тебя находится ПередЗавершениемРаботыСистемы - листай в самый верх, там они :)
|
|||
6
vicof
26.02.20
✎
17:43
|
А если несколько пользователей работают? Всем будет выдаваться окно с предупреждением?
|
|||
7
vicof
26.02.20
✎
17:44
|
Как по мне, это все должно решаться административными методами.
|
|||
8
fisher
26.02.20
✎
17:44
|
(4) Но с сервера туда никак не запишешь. Только с клиента. В рамках текущей сессии.
|
|||
9
fisher
26.02.20
✎
17:46
|
Приходит в голову только держать в параметре сеанса признак закрытия смены, и либо по подходящим клиентским событиям обновлять его в глобальной переменной из параметра сеанса либо в крайнем случае по обработке ожидания.
|
|||
10
unenu
26.02.20
✎
17:48
|
(0) тут https://forum.infostart.ru/forum9/topic219608/
прожевали сабж с разных сторон с рецептами |
|||
11
fisher
26.02.20
✎
17:52
|
(10) Не. У ТС ситуация попроще.
|
|||
12
fisher
26.02.20
✎
17:53
|
Ему просто в диалог завершения работы системы нужно подставить правильный текст, в случае если смена не закрыта.
|
|||
13
D_E_S_131
26.02.20
✎
18:45
|
У какой-то открытой главной формы (например, отвечающей за рабочий стол) в событии ПередЗакрытием все это "обыгрываешь":
&НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) Если Не Модифицированность Тогда Возврат; КонецЕсли; Отказ = Истина; Если ЗавершениеРаботы Тогда ТекстПредупреждения = НСтр("ru = 'Не сохранены измененные запросы!'"); Иначе Режим = РежимДиалогаВопрос.ДаНетОтмена; Текст = НСтр("ru = 'Данные изменены. Сохранить изменения?'"); ОП = Новый ОписаниеОповещения("ПослеВопросаПроИзменения", ЭтотОбъект); ПоказатьВопрос(ОП, Текст, Режим, 0); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПослеВопросаПроИзменения(Ответ, ДП) Экспорт Если Ответ = КодВозвратаДиалога.Да Тогда ИмяФайла = Объект.ИмяФайла; Если ДиалогСохраненияФайла(ИмяФайла) тогда Модифицированность = Ложь; Закрыть(); Иначе Отказ = Истина; КонецЕсли; ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда Модифицированность = Ложь; Закрыть(); ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры |
|||
14
realevgenius
26.02.20
✎
18:51
|
(13) Спасибо! Попробую...
|
|||
15
realevgenius
26.02.20
✎
20:23
|
(13) Нету открытой главной формы...
Это, наверное, было давно, когда была обработка с признаком "рабочий стол"... Это все, похоже из прежних времен Я тоже устарел, ищу как теперь это работает |
|||
16
realevgenius
26.02.20
✎
23:42
|
Пытался прицепиться к форме обработки ТекущиеДела...
Также - Серверные вызовы при завершении работы запрещены Каким методом кроме серверного получить - можно ли текущему пользователю завершать работу или нет - не могу догадаться |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |