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

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

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

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


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

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


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

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

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

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

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

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

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

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

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день