Остановить исполнение кода для ожидания подтверждения пользователя

1. user1145086 26.05.19 00:49 Сейчас в теме
Добрый вечер, в процедуре на сервере изменяется документ, как можно остановить исполнение кода для ожидания подтверждения пользователя о записи документа ?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. mkalimulin 1166 26.05.19 10:37 Сейчас в теме
(1) Разделить код на две части.
6. user1145086 26.05.19 11:34 Сейчас в теме
(2)подскажите,пожалуйста,подробнее как это сделать

&НаСервере
Процедура Выполнить()
.....
ИзменитьТЧДокумента(ДокументОбъект); //тут пользователю выведется сообщение, нужно чтоб он успел их посмотреть

ДокументОбъект.Записать(); //после подтверждения


КонецПроцедуры
Показать
3. Xershi 1484 26.05.19 10:40 Сейчас в теме
(1) остановить можно через показать вопрос. Но это клиентская процедура. Поэтому придется сначала выйти на клиент и только потом вернуться и записать.
Если код в ОФ, то там все на клиенте и можно сразу показать вопрос делать.
4. Fox-trot 158 26.05.19 10:41 Сейчас в теме
5. user1145086 26.05.19 11:26 Сейчас в теме
(4)
&НаСервере
Процедура Выполнить()
.....
ИзменитьТЧДокумента(ДокументОбъект); //тут пользователю выведется сообщение, нужно чтоб он успел их посмотреть

ДокументОбъект.Записать(); //после подтверждения


КонецПроцедуры

Показать
7. SlavaKron 26.05.19 14:17 Сейчас в теме
Добавить на форму реквизит с типом ДокументОбъект.[Ваш тип документа]. В модуле формы:
&НаКлиенте
Процедура ВыполнитьОбработкуТЧ(Команда)
	ВыполнитьОбработкуТЧНаСервере();
	Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект);
	ПоказатьВопрос(Оповещение, "Выполнить обработку?", РежимДиалогаВопрос.ДаНет);
КонецПроцедуры

&НаСервере
Функция ВыполнитьОбработкуТЧНаСервере()
	// тут работа с реквизитом ДокументОбъект
КонецФункции

&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
	Если Результат = КодВозвратаДиалога.Да Тогда
        ЗаписатьДокументНаСервере()
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ЗаписатьДокументНаСервере()
	ПрикладнойОбъект = РеквизитФормыВЗначение("ДокументОбъект");
	ПрикладнойОбъект.Записать();
КонецПроцедуры
Показать
user1145086; +1 Ответить
8. tusv 211 26.05.19 15:06 Сейчас в теме
(7)(1)Скажем с реквизитом формы, да с типом ДокументОбъект.[Ваш тип документа] можно на сервер ваще не ходить:)
Все с полпика делается на клиенте
Форма = ПолучитьФорму("Документ.<Ваш документ>.ФормаОбъекта",Новый Структура("Ключ",Ссылка));
КопироватьДанныеФормы(Форма.Объект,<ИмяРеквизита с типом ДокументОбъект>);

Если ВладелецФормы, то еще проще
КопироватьДанныеФормы(ВладелецФормы.Объект,<ИмяРеквизита с типом ДокументОбъект>); 

Ну или все таки сходить на сервер
То
ЗначениеВРеквизитФормы(ДокументОбъект,<ИмяРеквизита с типом ДокументОбъект>);

И гуляем между клиентом и серверов под ручку с объектом ОписаниеОповещения.
user1145086; +1 Ответить
9. пользователь 16.01.20 11:44
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот