Изменить страницу в действии "Открыть страницу выбора из справочника"

Добрый день.
Подскажите пожалуйста, можно ли указать страницу объекта при действии "Открыть страницу выбора из справочника"

Нравится

5 комментариев

Здравствуйте, Илья!
Пример Вам в помощь.
Открытие окна выбора элемента из справочника (с фильтрами)
Создать Действие процесса (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");

Страница не открывается. И никакой ошибки не возникает. Этот параметр убираю, открывается стандартная страница справочника.

Илья, здравствуйте.

А сам справочник у Вас зарегистрирован с кастомной страницей редактирования, которая унаследована от базовой страницы редактирования справочника?

Можно получить сервисы обьекта справочника, страницы справочника и сам бизнес процесс?

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