Открытие произвольной страницы из-под кода

Добрый день, коллеги!

Подскажите, существует ли способ повесить на обработчик нажатия кнопки код, который откроет нужную мне произвольную страницу (которую я создал без привязки в объекту)? Но при этом мне ещё нужно передавать ИД выбранной записи на гриде. Нужна реализация именно кодом: объекты БП не предлагать!

Находил только во это из подходящего: https://community.terrasoft.ru/forum/topic/9886

Но это всё равно не то...

Нравится

4 комментария

См. действие БП «Открыть страницу» (OpenPageUserTask), там передаётся PageUId и PageParameters. Если нужно именно кодом, то можно посмотреть исходники этого действия.

Исходниками этого кода является нечто, что не имеет буквенного кода - как обычно... =( Сделал через элементы БП - всё работает (см. ниже), но получил другую проблему: не получается передать некоторый параметр, чтобы его принять на открываемой форме и там это записать в лукапное поле.

1

Это блок БП-са, который выполняется по нажатию на кнопку вызова нужного мне окна. В объекте "Подготовить параметры" находится след. код:

var PageSchemaId = (UserConnection.GetSchemaManager("PageSchemaManager").GetInstanceByName("MyPage111") as PageSchema).UId;
OpenPageUserTask111.PageUId = PageSchemaId;
 
var pageParameters = new Dictionary <string, string>();
pageParameters.Add("CampaignLookupEdit", SelectedNodePrimaryColumnValue.ToString());
 
OpenPageUserTask111.PageParameters = pageParameters;

В объекте "Действие процесса" выбрано действие "Открытие страницы".

Теперь мне надо как-то переданный параметр "CampaignLookupEdit" заполнить на открываемой форме значением этого параметра. Вопрос - как? В объекте "Заполнить поля на форме" попробовал в отладчике обратиться к "Page", но этой сущностью является не открываемая страница, а страница грида, откуда я вызываю открытие своей страницы, хотя "OpenPageUserTask111.PageParameters" у меня заполнено правильно. Подскажите, если не трудно...

"Виталий Марушко" написал:Исходниками этого кода является нечто, что не имеет буквенного кода - как обычно...

Всё там нормально с исходниками, само действие состоит из обычного C#-кода.
OpenPageUserTask

"Виталий Марушко" написал:Теперь мне надо как-то переданный параметр "CampaignLookupEdit" заполнить на открываемой форме значением этого параметра.

Вычитывать значение параметра нужно в самой открываемой карточке при её открытии (на PageLoadComplete).

var MyGuidParamId = new Guid(Page.GetParameterValue("MyGuidParamId").ToString());

И дальше его обрабатывать и записывать куда нужно.

Александр, разобрался - всё получилось! Спасибо за очередную порцию помощи! Хорошего Вам дня)

Показать все комментарии