Отмена записи, если пользователь отменил создание взаимодействия

1. user1500067 25.05.21 09:38 Сейчас в теме +0.05 $m
Доброго времени суток! Передо мной стоит такая задача: В случае отмены создания сделки или нового взаимодействия пользователем, запись текущего взаимодействия не должна состояться. То есть у пользователя открыта форма взаимодействия, ПередЗаписью этой формы всплывает окошко с вариантами дальнейших действий: создать сделку или создать ещё одно взаимодействие. Вопрос, на который я пока не смог ответить: как сделать так, чтобы, если пользователь нажал, к примеру, "создать сделку", а потом отменил её создание, то текущее взаимодействие не записалось. Я понимаю, что надо сделать через Отказ, но как проверить то, что пользователь прервал создание нового взаимодействия??
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 81 25.05.21 10:12 Сейчас в теме
(1)Вопрос нужно задавать до самой записи и в зависимости от ответа пользователя, создавать сделку или новое взаимодействие.
3. user1500067 25.05.21 10:21 Сейчас в теме
(2) Так и происходит. Перед записью текущего документа у пользователя спрашивается, хочет ли он создать сделку или взаимодействие на основании текущего документа? Если пользователь нажимает создать (неважно что), а ПОТОМ (вдруг случайно нажал), берёт и закрывает форму создания нового документа (не записав его), то как в этом случае (отказа от создания) ОТМЕНИТЬ запись текущего документа.
Вот в чём вопрос
4. nomad_irk 81 25.05.21 10:23 Сейчас в теме
(3)не записывать элемент в ИБ, а показывать форму созданного.

У вас же интерактивная работа, на сколько я понимаю, создать что-то можно через его основную форму:

Форма = ПолучитьФорму("ИмяОсновнойФормыЧегоТоТам").

Объект = Форма.Объект;

Объект.РеквизитТакойТо = ЗначениеТакоеТо;
Объект.РеквизитСякойТо = ЗначениеСякоеТо;


Форма.Показать();
Показать


Можно, конечно, поизвращаться с ОткрытьФорму(), чтобы оно заполнялось при открытии нужными данными.
5. user1500067 25.05.21 10:32 Сейчас в теме
Так новый элемент и не записывается в ИБ. А вот текущий элемент записывается, так как в событии ПередЗаписью находится только такой код

Оповещение = Новый ОписаниеОповещения(
	"ПослеЗакрытияВопроса", ЭтотОбъект, ПараметрыОповещения);
 
ПоказатьВопрос(Оповещение,
НСтр("ru = 'Выберите дальнейшие действия.'", "ru"),
	СписокКнопок, , СоздатьСделку);

		
	КонецЕсли;
Показать


"ПослеЗакрытияВопроса" - это отдельная процедура. Поэтому мне и интересно узнать, можно ли как-то узнать, что пользователь отменил создание нового документа не записав его и , если да, то отменить запись текущего.
6. nomad_irk 81 25.05.21 10:35 Сейчас в теме
(5)Никак вы не узнаете, пользователь может записать в ИБ новый объект через неделю, вы предлагаете держать транзакцию записи текущего объекта все это время открытой?

Ваша задача решается асинхронно, с помощью регл. задания, если вам нужно что-то менять в текущем объекте, при наличии в ИБ нового документа/взаимодействия.
starik-2005; +1 Ответить
7. starik-2005 3165 25.05.21 11:59 Сейчас в теме
Пользователь нажал "Создать сделку" и пошел пить кофе с молоком, от которого у него вспучило животик, пользователь побежал в туалет типа сортир с буквами эм и жо... Ну и потом пошел домой, а у него висит незаписанная сделка и незаписанное взаимодействие...

Как вариант - открывать форму сделки с описанием оповещения, которое после закрытия формы сделки должно вернуться назад в форму взаимодействия и записать его в случае, если сделка тоже была записана. Остается понять, как передать информацию о том, что сделка была записана. Как вариант - в описании оповещения передавать адрес временного хранилища, связанного с формой взаимодействия, в которое при записи сделки будет попадать признак того, что сделка записана. Как-то так...
8. meriferi 26.05.21 08:34 Сейчас в теме
кнопка Создать сделку должна содержать процедуру записи в самом конце или ставьте таймер, фиксируйте отмену сделки
9. GennadiyN 26.05.21 14:50 Сейчас в теме
Так сделай проще, сначала создай этот документ, и передай ссылку на форму нового документа, и если создание этого документа отменилось, то пометь на удаление переданный документ, или удали его.
Оставьте свое сообщение

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