Займався створенням нового розділу за принципом розділу "Пользователи" (того, що в робочих місцях не відображено).
Потрібно було в процесі відладки подивитись, як веде себе "Страница реестра вхождения в роли" (AdministrativeUserInRoleGridPage).
В дизайнері схеми був присутній пул з доріжкою й субпроцесом, в якому шаблонами були внесені "Начальное сообщение" зв"язане з "Промежуточным генерирующим сообщением", причому обидва не проініціалізовані. При збереженні схеми в такій ситуації видається помилка на обидва елементи.
Як на мене, весь цей пул з доріжкою, субпроцесом і пустипи елементами був зайвий і я його зтер.
Схему опублікував.
Після цього, при спробі відкрити розділ "Администрирование.Пользователи" отримую помилку в
AdministrationUnitsGridPageEventsProcess.ScriptChildDataSourceLoadRowsResponseRegisteredExecute
в коді:
var organizationMenuItem = buttonMenu.Find(item => item.Name.Contains(new Guid("DF93DCB9-6BD7-DF11-9B2A-001D60E938C6").ToString("N")));
var unitMenuItem = buttonMenu.Find(item => item.Name.Contains(new Guid("B659F1C0-6BD7-DF11-9B2A-001D60E938C6").ToString("N")));
var chiefMenuItem = buttonMenu.Find(item => item.Name.Contains(new Guid("B759F1C0-6BD7-DF11-9B2A-001D60E938C6").ToString("N")));
var teamMenuItem = buttonMenu.Find(item => item.Name.Contains(new Guid("462E97C7-6BD7-DF11-9B2A-001D60E938C6").ToString("N")));
Власне помилку генерує наступний код:
unitMenuItem.Enabled = true;
chiefMenuItem.Enabled = !hasUnitChief;
teamMenuItem.Enabled = true;
По тій причині, що всі означені об'єкти = NULL.
(Зауважу, що дану схему я не чіпав)
Я не схильний новоотриману помилку пов'язувати із знищенням того самого пулу з доріжкою (хоча й не буду це категорично заперечувати).
Я ще попередньо спочатку створив вже існуючий розділ "Администрирование", потім вилучив його, далі виявив, що він і в таблиці [SysModule] зник, тому запис імпортував з оригінальної БД.
Потім я так само створив вже існуючий розділ "Пользователи", який відобразився зо всім пакетом деталей.
Вже після цього я вилучав порожні елементи й публікував схему.
На даний момент ще не вдається розібратися, в чому ж справа ...
Нравится
Посмотрел на коробке эту страницу, там только 3 подпроцесса по сообщениям: «OpenRoles», «DeleteButtonClick» и «PageLoad».
Возможно, Вы смотрите на версию страницы с чьими-то доработками.
Шукаю зараз, де формується меню для кнопки "Добавить" для розділу "Администрирование.Элементы организационной структуры"
(те, що читається в AdministrationUnitsGridPageEventsProcess.ScriptChildDataSourceLoadRowsResponseRegisteredExecute)
Игорь, это стандартный механизм для раздела с несколькими карточками для разных типов. В BaseGridPage в скрипте ScriptTaskBaseGridPageInit:
var editPages = GetEditPages(); if (TypeColumnUId != Guid.Empty && Page.DataSource.CurrentStructure.Columns.FindByMetaPath(TypeColumnUId.ToString()) == null) { var typeColumn = Page.DataSource.Schema.Columns.GetByUId(TypeColumnUId); var column = Page.DataSource.CurrentStructure.AddColumnByPath(typeColumn.Name); column.IsVisible = false; column.IsAlwaysSelect = true; } foreach (var item in editPages) { var addMenuItem = CreateAddButtonMenuItem(item.Value, item.Key); Page.AddButton.Menu.Add(addMenuItem); if (!IsContextHelpButtonInitialized) { string formatString = "{0}.on('click', function(el) {{ {1} }}, this)"; var parameters = item.Key.Split('&'); var typeEditPageUId = new Guid(parameters[0]); var typeEntityId = new Guid(parameters[1]); var typeEditPageUIds = TypeEditPageUIds as Dictionary<Guid, Dictionary<string, Guid>>; string script = GetRegisterAddPageScript(typeEditPageUId, typeEditPageUIds[typeEntityId]["SysModuleEditId"], typeEntityId); Page.AddScript(string.Format(formatString, addMenuItem.ClientID, script)); } }
Я вже теж дійшов висновку, що щось не так з типами карточок.
Перевірив запис розділу [Пользователи], - виявилось, що в результаті маніпуляцій з розділами (в робочих місцях) збилися параметри
[Использовать отдельные карточки для работы с записями разного типа]
[Тип записи указан в колонке]
При спробі відновити значення через стандартну форму виходило повідомлення:
Необходимые элементы конфигурации не найдены
Для использования групп необходимы следующие объекты: AdministrativeUsersFolder, AdministrativeUsersInFolder
Подивився на робочій - відсутні такі об'єкти, тому відновив значення через SQL - все запрацювало.
Дякую за підказку :smile:.
Цікаво, а як формувався запис розділу [Пользователи], зважаючи на те, що в оригінальній версії він відсутній у списку робочих місць, і навіть якщо його добавити, то для збереження все одно ще треба створювати два додаткових об'єкти
[AdministrativeUsersFolder] та [AdministrativeUsersInFolder]
які, як видно, насправді не були створені і тим не менше, розділ чудово функціонує без вказаних об'єктів.
Раздел пользователей является системным и его могли создать вручную, а не пользовательскими средствами.