Вопрос
Как зарегистрировать раздел на уровне БД если в интерфейсе он не отображается? Используется русская локализация
Ответ
Если в таблицах SysModuleEntity, SysModuleEdit и SysModule отсутствует информация об новом разделе, то поступаем в следующем порядке:
В данной статье представлен минимум при котором раздел должен работать корректно
- I Этап. Создать запись в таблице SysModuleEntity (таблица, где хранится информация объектах разделов):
SysModuleEntity
insert into SysModuleEntity (SysEntitySchemaUId) values ('AF6DD4AD-1398-4FCE-8837-78DC65AE0F9E')
где [SysEntitySchemaUId] - колонка Uid объекта раздела (например, "UsrRK") в таблице SysSchema;
- II Этап. Создать запись в таблице SysModuleEdit (страница редактирования "Page"):
SysModuleEdit
insert into SysModuleEdit (SysModuleEntityId
,UseModuleDetails
,CardSchemaUId
,ActionKindCaption
,ActionKindName
,PageCaption)
values ('8ED522AF-00E1-4595-AC13-643944B005B7'
,1
,'8B22D9BE-4BBC-4B50-80EA-AB6FBB604B7E'
,'Добавить'
,'UsrRK1Page'
,'Card schema: "RK"')
где [SysModuleEntityId] - колонка Id записи таблицы SysModuleEntity из первого этапа (проверка Select Id from SysModuleEntity Where SysEntitySchemaUId='AF6DD4AD-1398-4FCE-8837-78DC65AE0F9E')
[CardSchemaUId] - колонка Uid страницы редактирования объекта (например, "UsrRK1Page") в таблице SysSchema (проверка Select Uid,Name from SysSchema where name like '%UsrRK%'). Нам необходима схема, которая называется "Название объекта + 1Page"
[ActionKindCaption] - Название кнопки в реестре раздела;
[ActionKindName] - Название схемы страницы редактирования;
[PageCaption] - Заголовок схемы страницы редактирования в таблице SysSchema (проверка Select Uid,Name,Caption from SysSchema where name like '%UsrRK1Page%')
- III Этап. Создать запись в таблице SysModule (страница раздела "Section"):
SysModule
insert into SysModule (Caption
,SysModuleEntityId
,FolderModeId
,GlobalSearchAvailable
,Code
,SectionModuleSchemaUId
,SectionSchemaUId
,CardModuleUid
,Image32Id) values (N'RK'
,'8ED522AF-00E1-4595-AC13-643944B005B7'
,'B659D704-3955-E011-981F-00155D043204'
,1
,'UsrRK'
,'DF58589E-26A6-44D1-B8D4-EDF1734D02B4'
,'B3D153C0-92EF-4A53-B868-9395C3E43516'
,'4E1670DC-10DB-4217-929A-669F906E5D75'
,'026742D9-390C-4778-BC46-9FA85C42677A')
где [Caption] - Название раздела (можно брать caption объекта раздела) -
[SysModuleEntityId] - колонка Id записи таблицы SysModuleEntity из первого этапа (проверка Select Id from SysModuleEntity Where SysEntitySchemaUId='AF6DD4AD-1398-4FCE-8837-78DC65AE0F9E')
[Code] - Название объекта раздела (на английском языке);
[SectionModuleSchemaUId] - UId модуля SectionModuleV2 с помощью которой открывается схему раздела (Id для всех разделов одинаковый);
[SectionSchemaUId] - колонка Uid страницы раздела объекта (например, "UsrRK1Section") в таблице SysSchema (проверка Select Uid,Name,Caption from SysSchema where name like '%UsrRK%'). Нам необходима схема, которая называется "Название объекта + 1Section"