Изменить страницу в действии "Открыть страницу выбора из справочника"
Добрый день.
Подскажите пожалуйста, можно ли указать страницу объекта при действии "Открыть страницу выбора из справочника"
Нравится
Здравствуйте, Илья!
Пример Вам в помощь.
Открытие окна выбора элемента из справочника (с фильтрами)
Создать Действие процесса (UserTask). Действие = Открыть страницу выбора из справочника
Создать скрипт подготовки перед действием и написать в нем следующее:
var SSDocumentOfferingtId = new Guid(SysSettings.GetValue(UserConnection, "SSDocumentOfferingtId").ToString());//UID Объекта Collection<Dictionary<string, object>> filters = new Collection<Dictionary<string, object>>(); filters.Add(new Dictionary<string, object> { {"comparisonType", FilterComparisonType.Equal}, {"leftExpressionColumnPath", "Document"}, {"useDisplayValue", false}, {"rightExpressionParameterValues", new object[] {ParentDocumentSpecificationId}} }); filters.Add(new Dictionary<string, object> { {"comparisonType", FilterComparisonType.NotEqual}, {"leftExpressionColumnPath", "IsVsat"}, {"useDisplayValue", false}, {"rightExpressionParameterValues", new object[] {true}} }); filters.Add(new Dictionary<string, object> { {"comparisonType", FilterComparisonType.IsNull}, {"leftExpressionColumnPath", "[ProductsParts:DocumentOffering].Parent"}, {"useDisplayValue", false}, {"rightExpressionParameterValues", new object[] {}} }); OpenSpecOfferingLookupUserTask.ProcessKey = InstanceUId; OpenSpecOfferingLookupUserTask.PageParameters = new Dictionary<string, object>() { {"LookupFilters", filters}, {"schemaUId", SSDocumentOfferingtId}, {"customClosedEvent", "SpecOfferingLookupPageClosed"} //Сообщение при закрытии окна }; OpenSpecOfferingLookupUserTask.UseCurrentActivePage = true; return true;
Создать скрипт обработки после действия и написать в нем следующее:
var offerings = OpenSpecOfferingLookupUserTask.GetSelectedValues(UserConnection) as Dictionary <string, object>; var offeringId = Guid.Empty; foreach (var offering in offerings) { offeringId = new Guid(offering.Key.ToString()); break; } if (offeringId == Guid.Empty) { return true; } return true;
Илья, насколько я вижу из кода действия, то за то, какая страница будет открыта отвечает параметр "lookupPageSchemaUId". Попробуйте добавить его в PageParameters с соответсвующим UId страницы.
Андрей, создал страницу справочника. Изменил вызов действия "Открыть страницу выбора из справочника" добавив
pageParameters.Add("lookupPageSchemaUId", "dff16a7e-027f-45aa-8662-1a4f01c4238c");
Страница не открывается. И никакой ошибки не возникает. Этот параметр убираю, открывается стандартная страница справочника.
Илья, здравствуйте.
А сам справочник у Вас зарегистрирован с кастомной страницей редактирования, которая унаследована от базовой страницы редактирования справочника?
Можно получить сервисы обьекта справочника, страницы справочника и сам бизнес процесс?