Почему нельзя удалять колонку объекта, если он администрируется по колонкам
...и что делать, если вы её уже удалили.
В bpm'online 5.X есть возможность администрировать объекты по колонкам, то есть разрешать или запрещать разным пользователям системы видеть информацию в определённом поле карточки и столбце реестра.
При этом есть неочевидная особенность: если раздать по колонке права, а потом колонку удалить, то при попытке зайти в раздел «Администрирование: Пользователи» произойдёт свал. Примерно такой:
Exception Type: Terrasoft.Common.ItemNotFoundException
Exception Source: Terrasoft.Core
Exception Stack Trace:
at Terrasoft.Core.MetaItemCollection`1.GetByUId(Guid uid)
at Terrasoft.WebApp.SysAdminUnitColumnPermissionsGridPageEventsProcess`1.FillData(DataSourceRequest dataSourceRequest)
at Terrasoft.WebApp.BaseVirtualGridPageEventsProcess`1.ScriptGridPageRefreshRowExecute(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessScriptTask.InternalExecute(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessScriptTask.Execute(ProcessExecutingContext context, Func`2 internalExecute)
at Terrasoft.WebApp.BaseVirtualGridPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
at Terrasoft.WebApp.SysAdminUnitColumnPermissionsGridPageEventsProcess`1.ProcessQueue(ProcessExecutingContext context)
Дело в том, что информация о правах хранится в таблице SysEntitySchemaColumnRight и при удалении колонки записи о ней автоматически не удаляются. И при заходе в раздел администрирования система рушится при обращении к уже несуществующему полю, пытаясь отобразить дерево прав пользователя.
Чтобы вернуть работоспособность системе, достаточно удалить все записи о колонке. Смотрим Id из сообщения об ошибке и пишем с ним SQL-запрос:
После его запуска система должна заработать нормально.
PS: если строку удалили, а свал всё равно происходит, то, вероятно, удалено несколько полей. Скопируйте Id (а он будет уже другой), запустите delete-скрипт и так до тех пор, пока не заработает.
Надо же, кто-то еще использует 5.Х... я думала, всех давно перевели на 7-ку. Или что там у вас актуально, 9-ка? :)
Актуальная версия 7.7. Но кто-то сейчас и Х25 использует.