Отмена записи, если пользователь отменил создание взаимодействия
Доброго времени суток! Передо мной стоит такая задача: В случае отмены создания сделки или нового взаимодействия пользователем, запись текущего взаимодействия не должна состояться. То есть у пользователя открыта форма взаимодействия, ПередЗаписью этой формы всплывает окошко с вариантами дальнейших действий: создать сделку или создать ещё одно взаимодействие. Вопрос, на который я пока не смог ответить: как сделать так, чтобы, если пользователь нажал, к примеру, "создать сделку", а потом отменил её создание, то текущее взаимодействие не записалось. Я понимаю, что надо сделать через Отказ, но как проверить то, что пользователь прервал создание нового взаимодействия??
По теме из базы знаний
- Типовая борьба - личный опыт работы с типовыми конфигурациями 1С:8
- Обзор полезных методов БСП 3.1.4
- Самые используемые методы БСП 3.1.9
- Служба поддержки, или спасаем программистов!!!
- Sales force automation: мобильное приложение мерчандайзера на платформе 1С с распознаванием товара на 15 языках в одном из крупнейших агентств на нашем континенте (и не только)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Так и происходит. Перед записью текущего документа у пользователя спрашивается, хочет ли он создать сделку или взаимодействие на основании текущего документа? Если пользователь нажимает создать (неважно что), а ПОТОМ (вдруг случайно нажал), берёт и закрывает форму создания нового документа (не записав его), то как в этом случае (отказа от создания) ОТМЕНИТЬ запись текущего документа.
Вот в чём вопрос
Вот в чём вопрос
(3)не записывать элемент в ИБ, а показывать форму созданного.
У вас же интерактивная работа, на сколько я понимаю, создать что-то можно через его основную форму:
Можно, конечно, поизвращаться с ОткрытьФорму(), чтобы оно заполнялось при открытии нужными данными.
У вас же интерактивная работа, на сколько я понимаю, создать что-то можно через его основную форму:
Форма = ПолучитьФорму("ИмяОсновнойФормыЧегоТоТам").
Объект = Форма.Объект;
Объект.РеквизитТакойТо = ЗначениеТакоеТо;
Объект.РеквизитСякойТо = ЗначениеСякоеТо;
Форма.Показать();
ПоказатьМожно, конечно, поизвращаться с ОткрытьФорму(), чтобы оно заполнялось при открытии нужными данными.
Так новый элемент и не записывается в ИБ. А вот текущий элемент записывается, так как в событии ПередЗаписью находится только такой код
"ПослеЗакрытияВопроса" - это отдельная процедура. Поэтому мне и интересно узнать, можно ли как-то узнать, что пользователь отменил создание нового документа не записав его и , если да, то отменить запись текущего.
Оповещение = Новый ОписаниеОповещения(
"ПослеЗакрытияВопроса", ЭтотОбъект, ПараметрыОповещения);
ПоказатьВопрос(Оповещение,
НСтр("ru = 'Выберите дальнейшие действия.'", "ru"),
СписокКнопок, , СоздатьСделку);
КонецЕсли;
Показать"ПослеЗакрытияВопроса" - это отдельная процедура. Поэтому мне и интересно узнать, можно ли как-то узнать, что пользователь отменил создание нового документа не записав его и , если да, то отменить запись текущего.
(5)Никак вы не узнаете, пользователь может записать в ИБ новый объект через неделю, вы предлагаете держать транзакцию записи текущего объекта все это время открытой?
Ваша задача решается асинхронно, с помощью регл. задания, если вам нужно что-то менять в текущем объекте, при наличии в ИБ нового документа/взаимодействия.
Ваша задача решается асинхронно, с помощью регл. задания, если вам нужно что-то менять в текущем объекте, при наличии в ИБ нового документа/взаимодействия.
Пользователь нажал "Создать сделку" и пошел пить кофе с молоком, от которого у него вспучило животик, пользователь побежал в туалет типа сортир с буквами эм и жо... Ну и потом пошел домой, а у него висит незаписанная сделка и незаписанное взаимодействие...
Как вариант - открывать форму сделки с описанием оповещения, которое после закрытия формы сделки должно вернуться назад в форму взаимодействия и записать его в случае, если сделка тоже была записана. Остается понять, как передать информацию о том, что сделка была записана. Как вариант - в описании оповещения передавать адрес временного хранилища, связанного с формой взаимодействия, в которое при записи сделки будет попадать признак того, что сделка записана. Как-то так...
Как вариант - открывать форму сделки с описанием оповещения, которое после закрытия формы сделки должно вернуться назад в форму взаимодействия и записать его в случае, если сделка тоже была записана. Остается понять, как передать информацию о том, что сделка была записана. Как вариант - в описании оповещения передавать адрес временного хранилища, связанного с формой взаимодействия, в которое при записи сделки будет попадать признак того, что сделка записана. Как-то так...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот