Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Действия на сервере при выходе из программы! Как?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
AnryMc
События "модуля приложения": "ПриЗавершенииРаботыСистемы" и "ПередЗавершениемРаботыСистемы" не разрешают серверные вызовы...

ВОПРОС: можно ли отследить "гарантированный выход" пользователя из программы и в этом случае сделать некоторые действия на сервере.

Под "гарантированным выходом" понимается что пользователь не отменил выход в процедуре "ПередЗавершениемРаботыСистемы"

З.Ы. Понимаю что нужно пользоваться асинхронным вызовом в "ПередЗавершениемРаботыСистемы" но пока не вижу "полной картинки" как это сделать...

Может кто поможет (подскажет) алгоритм или выложит пример...
sava1
из заметок

У модуле управляемого приложения создается переменная, скажем МожноЗавершить.

В обработчике ПередЗавершениемРаботыСистемы проверяем переменную, если Истина, тогда возврат
Далее код, когда переменная не установлена:
Устанавливаем переменной = Истина, подключаем обработчик ожидания, и выставляем Отказ = Истина.
Уже в обработчике ожидания можно делать вызов сервера. Главное не забыть в нем снова вызвать завершение работы системы.
AnryMc
sava1 @ Сегодня, 10:19 необходимо зарегистрироваться для просмотра ссылки ,

Удается запустить обработчик ожидания если только пользователь отказался от выхода......
sava1
AnryMc @ Сегодня, 12:45 необходимо зарегистрироваться для просмотра ссылки ,

сам не пробовал. когда-то копирнул.


вот так пишут отрабатывает

Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)    
    Отказ = Истина;
    ТекстПредупреждения = "Нажмите Продолжить работу, что бы выполнить АвтоОбменРИБ";
    
    ПодключитьОбработчикОжидания("ВыполнитьОбмен",1,Истина);    
КонецПроцедуры

Процедура ВыполнитьОбмен()Экспорт    
    Обмен.ВыполнитьОбменСоВсемаРИБ();
    ОтключитьОбработчикОжидания("ВыполнитьОбмен");    
КонецПроцедуры


ну и отключить вывод вопроса о завершении для пользователя
AnryMc

Цитата(sava1 @ 28.01.25, 13:19) необходимо зарегистрироваться для просмотра ссылки
ну и отключить вывод вопроса о завершении для пользователя


Преобразую синтаксис помощник в таблицу:
Отказ Текст Сообщения Действие
Истина Есть текст Предложение выхода с предложенным текстом
Истина Нет текста Стандартное предложение выхода
Ложь Игнорируется Закрытие программы

КАК ОТКЛЮЧИТЬ? При любом Отказ = ИСТИНА - предложение о закрытии
При Отказ = Ложь - безусловное закрытие

Оператор "Возврат" в данной процедуре (у меня) не отрабатывает.....

Доступные варианты:
1) Вопрос - Если Отказ = Истина - выход
2) Вопрос - Если Отказ = Ложь - запускается ожидание
3) Без вопроса - выход
sava1
AnryMc @ Сегодня, 14:01 необходимо зарегистрироваться для просмотра ссылки ,

тут по большому счету ПРиЗавершении надо формировать файл со своими данными
А обработку проводить регламентным
AnryMc
sava1 @ Сегодня, 14:55 необходимо зарегистрироваться для просмотра ссылки ,

Ну так я "специалист по удалению гланд через ЖЖЖЖ" - сколько уже таких решений делал - но всё ещё "верю в хорошее" и пытаюсь сделать штатными средствами...
Vofka
Цитата(sava1 @ 28.01.25, 14:55) необходимо зарегистрироваться для просмотра ссылки
тут по большому счету ПРиЗавершении надо формировать файл со своими данными
А обработку проводить регламентным

А как положить файл на сервер при условии неразрешения серверных вызовов?
sava1
Vofka @ Сегодня, 18:36 необходимо зарегистрироваться для просмотра ссылки ,

а на клиенте файл доступен
Vofka
sava1 @ Сегодня, 18:47 необходимо зарегистрироваться для просмотра ссылки ,
А как регламентное задание (которое выполняется не на клиенте) этот файл на клиенте найдет?
AnryMc
Vofka @ Вчера, 19:10 необходимо зарегистрироваться для просмотра ссылки ,

Я вижу такое решение - "шара" на сервере и класть с Клиента туда...
Ну и на сервере - искать в "шаре"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.