Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

УФ ПередЗавершениемРаботыСистемы. Как проверить параметр перед тес как завершать?

УФ ПередЗавершениемРаботыСистемы. Как проверить параметр перед тес как завершать?
Я
   realevgenius
 
26.02.20 - 17:29
Приветствую, уважаемые!

Например, надо проверить: Закрыл ли менеджер смену и перед выходом из программы его предупредить.
Раньше было просто: Вызов сервера, проверка там, возврат результата, ну и отказ или нет, соответственно

Теперь вызов серверного метода невозможен.

Вопрос: Какая-то есть глобальная переменная или набор параметров или что-то, куда можно будет при работе пользователя записать значение, чтобы в процедуре ПередЗавершениемРаботыСистемы ее прочитать?

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

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
    
    Если Не Модифицированность Тогда 
        Возврат;
    КонецЕсли;
    
    Отказ = Истина;
    
    Если ЗавершениеРаботы Тогда
    
        ТекстПредупреждения = НСтр("ru = 'Не сохранены измененные запросы!'");
    
    Иначе
    
        Режим = РежимДиалогаВопрос.ДаНетОтмена;
        
        Текст = НСтр("ru = 'Данные изменены. Сохранить изменения?'");
        
        ОП = Новый ОписаниеОповещения("ПослеВопросаПроИзменения", ЭтотОбъект);
        
        ПоказатьВопрос(ОП, Текст, Режим, 0);
        
    КонецЕсли; 
    
КонецПроцедуры

&НаКлиенте
Процедура ПослеВопросаПроИзменения(Ответ, ДП) Экспорт

    Если Ответ = КодВозвратаДиалога.Да Тогда    
        
        ИмяФайла = Объект.ИмяФайла;
        
        Если ДиалогСохраненияФайла(ИмяФайла) тогда
            Модифицированность = Ложь;
            Закрыть();
        Иначе
            Отказ = Истина;
        КонецЕсли;
        
    ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда        
        Модифицированность = Ложь;
        Закрыть();
    ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры
   realevgenius
 
14 - 26.02.20 - 18:51
(13) Спасибо! Попробую...
   realevgenius
 
15 - 26.02.20 - 20:23
(13) Нету открытой главной формы...
Это, наверное, было давно, когда была обработка с признаком "рабочий стол"... Это все, похоже из прежних времен
Я тоже устарел, ищу как теперь это работает
   realevgenius
 
16 - 26.02.20 - 23:42
Пытался прицепиться к форме обработки ТекущиеДела...
Также - Серверные вызовы при завершении работы запрещены

Каким методом кроме серверного получить - можно ли текущему пользователю завершать работу или нет - не могу догадаться

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.