|   |   | 
| 
 | УФ ПередЗавершениемРаботыСистемы. Как проверить параметр перед тес как завершать? | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Пытался прицепиться к форме обработки ТекущиеДела...
 Также - Серверные вызовы при завершении работы запрещены Каким методом кроме серверного получить - можно ли текущему пользователю завершать работу или нет - не могу догадаться | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |