Добрый день!
Реализовала открытие окна Продажа при нажатии на новую кнопку в карточке Задачи. Задача закрывается, новая Продажа открывается.
Когда создается какая-либо запись из контекстного меню реестра, то при сохранении такой записи выдается сообщение "Перейти к созданной записи?". Как мне вызвать такой диалог и переход к реестру при сохранении моей новой продажи, созданной из карточки задачи?
Нравится
для вызова диалога и сохранения попробуйте:
if (ShowConfirmationDialog("Перейти к созданной записи?") == wmrYes) { SaveChangesWithCheck(Self, BaseDBEdit); }
Причина появления диалога в следующем: если проанализировать обработку события OnNotify раздела "Контрагенты", мы увидим такие строки:
if ((Message == 'MSG_OK') && (SenderCode == 'wnd_OpportunityEdit')) { var DetailWindow = wndOpportunityDetail.Window; ProcessNotifyMessage('wnd_OpportunitiesWorkspace', DetailWindow, Sender, Message, Data); return; }
Данный код выполняется после нажатия кнопки "ОК" в карточке редактирования продажи, созданной по действию из контекстного меню (окно редактирования посылает сообщение разделу). Аналогичные блоки есть и для задач, и для контактов.
Если же проанализировать функцию ProcessNotifyMessage, легко увидеть, что в процессе её работы отправляется нотификация главному окну wnd_Main. А в обработчике OnNotify этого окна вызывается функция AskAboutGoto, которая имеет вид:
function AskAboutGoto(Sender) { if (ShowConfirmationDialog("Перейти к созданной записи?") == wmrYes) { var RecordID = Sender.Attributes('RecordID'); var WorkspaceWindowCode = Sender.Attributes('WorkspaceWindowCode'); ShowWorkspace(WorkspaceWindowCode, RecordID); } }
Она и вызывает диалог для подтверждения перехода к записи.
Можете уточнить, как именно Вы устанавливаете значение для NotifyObject? Это должно быть окно. Если Вы делаете так:
Window.Attributes('NotifyObject') = 'wnd_TaskWorkspace';
,
то ничего не получится.
Кроме того, в вышеприведённом примере раздела "Контрагенты" функционал реализован через действия, а у Вас - через
"Kat" написал:при нажатии на новую кнопку в карточке Задачи. В этом случае лучше использовать обработку события OnNotify в скрипте карточки задачи.
Так тоже не совсем верно: Вы создаёте новый экземпляр раздела, а в атрибут нужно передавать уже проинициализированный раздел.
Попробуйте из окна редактирования добраться к разделу "Задачи" и передать его в атрибут NotifyObject. Думаю, можно так:
Window.Attributes('NotifyObject') = Self.Attributes('NotifyObject').Attributes('WorkspaceWindow');