Проблемы при работе с рабочими
местами
Не отображается раздел в рабочем месте (основное приложение)
Раздел выводится в основное рабочее место приложения, но не отображается.
Решение:
- Перелогиниться в приложении, так как происходит кеширование настроек.
- Проверить состояние консоли на наличие ошибок.
- Перепроверить правильность заполнения настроек раздела на уровне базы данных (SysModule, SysModuleEntity, SysModuleEdit). Подробнее: Скрипт проверки таблиц для мастера раздела.
- Уточнить, что это за объект. Если это пользовательский объект, проверить наличие соответствующей лицензии.
Не отображается раздел в рабочем месте (портал)
Раздел выводится в портальное рабочее место, но не отображается под портальным пользователем.
Решение:
- Проверить все пункты из предыдущего раздела.
- Убедиться, что объект добавлен в справочник «Список объектов, доступных пользователям портала».
- Проверить указан ли у раздела признак «Портальный» в колонке Type в SysModule.
Нет возможности вывести раздел в рабочее место
При попытке добавить раздел он недоступен в справочнике выбора разделов.
Решение:
- Проверить какое это рабочее место. Убедиться, что место является портальным или основным.
- Проверить корректность создания раздела на уровне базы данных (SysModule, SysModuleEntity, SysModuleEdit). Подробнее: Скрипт проверки таблиц для мастера раздела.
Ошибка при добавлении раздела в рабочее место
При попытке добавить раздел возникает ошибка «400 (Bad Request)» при выполнении базового REST-запроса AddSectionToWorkplace.
Исправить проблему можно, запустив базовые механизмы добавления раздела, выполнив следующие шаги:
- Зайти в любое рабочее место.
- Добавить любой базовый раздел, например, «Активности».
- Удалить раздел из рабочего места.
- Добавить раздел, при добавлении которого возникала ошибка.
Скрипт проверки таблиц для мастера раздела
Эти скрипты могут помочь в анализе и решении проблем, связанных с мастером разделов.
SELECT sm.Id AS 'SysModule.Id', sm.Caption AS 'SysModule.Caption', sml.Caption AS 'SysModuleLcz.RU.Caption', sm.Code AS 'SysModule.Code', sm.Attribute AS 'SysModule.Attribute', sm.Type AS 'SysModule.Type_IsPortal', '|' AS '|', sm.SysModuleEntityId AS 'SysModuleEntity.Id', sme.SysEntitySchemaUId AS 'SysModuleEntity.SysEntitySchemaUId', sssme.Name AS 'SysModuleEntity.SysEntitySchema.Name', sp.Name AS 'SysModuleEntity.SysEntitySchema.SysPackage.Name', sp.Maintainer AS 'SysModuleEntity.SysEntitySchema.SysPackage.Maintainer', sme.TypeColumnUId AS 'SysModuleEntity.TypeColumnUId', '|' AS '|', smed.TypeColumnValue AS 'SysModuleEdit.TypeColumnValue', smed.Id AS 'SysModuleEdit.Id', smed.CardSchemaUId AS 'SysModuleEdit.CardSchemaUId', sssmed.Name AS 'SysModuleEdit.CardSchema.Name', '|' AS '|', smed.MiniPageModes AS 'SysModuleEdit.MiniPageModes', smed.MiniPageSchemaUId AS 'SysModuleEdit.MiniPageSchemaUId', ssmp.Name AS 'SysModuleEdit.MiniPageSchema.Name', '|' AS '|', sm.SysModuleVisaId AS 'SysModuleVisa.Id', smv.VisaSchemaUId AS 'SysModuleVisa.VisaSchemaUId', sssmv.Name AS 'SysModuleVisa.VisaSchema.Name', smv.UseCustomNotificationProvider AS 'SysModuleVisa.UseCustomNotificationProvider' FROM SysModuleEntity sme WITH(NOLOCK) LEFT JOIN SysModule sm WITH(NOLOCK) ON sm.SysModuleEntityId = sme.Id LEFT JOIN SysModuleLcz sml WITH(NOLOCK) ON sm.Id = sml.RecordId AND sml.SysCultureId = '1A778E3F-0A8E-E111-84A3-00155D054C03' LEFT JOIN SysSchema sssme WITH(NOLOCK) ON sme.SysEntitySchemaUId = sssme.UId LEFT JOIN SysPackage sp WITH(NOLOCK) ON sssme.SysPackageId = sp.Id LEFT JOIN SysModuleEdit smed WITH(NOLOCK) ON sme.Id = smed.SysModuleEntityId LEFT JOIN SysSchema sssmed WITH(NOLOCK) ON smed.CardSchemaUId = sssmed.UId LEFT JOIN SysSchema ssmp WITH(NOLOCK) ON smed.MiniPageSchemaUId = ssmp.UId LEFT JOIN SysModuleVisa smv WITH(NOLOCK) ON sm.SysModuleVisaId = smv.Id LEFT JOIN SysSchema sssmv WITH(NOLOCK) ON smv.VisaSchemaUId = sssmv.UId WHERE sssme.Name = 'Contact' -- поиск по коду объекта --WHERE sm.Code = 'Contact' -- поиск по коду раздела ORDER BY sssme.Name
SELECT sm."Id" AS "SysModule.Id", sm."Caption" AS "SysModule.Caption", sml."Caption" AS "SysModuleLcz.RU.Caption", sm."Code" AS "SysModule.Code", sm."Attribute" AS "SysModule.Attribute", sm."Type" AS "SysModule.Type_IsPortal", '|' AS "|", sm."SysModuleEntityId" AS "SysModuleEntity.Id", sme."SysEntitySchemaUId" AS "SysModuleEntity.SysEntitySchemaUId", sssme."Name" AS "SysModuleEntity.SysEntitySchema.Name", sp."Name" AS "SysModuleEntity.SysEntitySchema.SysPackage.Name", sp."Maintainer" AS "SysModuleEntity.SysEntitySchema.SysPackage.Maintainer", sme."TypeColumnUId" AS "SysModuleEntity.TypeColumnUId", '|' AS "|", smed."TypeColumnValue" AS "SysModuleEdit.TypeColumnValue", smed."Id" AS "SysModuleEdit.Id", smed."CardSchemaUId" AS "SysModuleEdit.CardSchemaUId", sssmed."Name" AS "SysModuleEdit.CardSchema.Name", '|' AS "|", smed."MiniPageModes" AS "SysModuleEdit.MiniPageModes", smed."MiniPageSchemaUId" AS "SysModuleEdit.MiniPageSchemaUId", ssmp."Name" AS "SysModuleEdit.MiniPageSchema.Name", '|' AS "|", sm."SysModuleVisaId" AS "SysModuleVisa.Id", smv."VisaSchemaUId" AS "SysModuleVisa.VisaSchemaUId", sssmv."Name" AS "SysModuleVisa.VisaSchema.Name", smv."UseCustomNotificationProvider" AS "SysModuleVisa.UseCustomNotificationProvider" FROM "SysModuleEntity" sme LEFT JOIN "SysModule" sm ON sm."SysModuleEntityId" = sme."Id" LEFT JOIN "SysModuleLcz" sml ON sm."Id" = sml."RecordId" AND sml."SysCultureId" = '1A778E3F-0A8E-E111-84A3-00155D054C03' LEFT JOIN "SysSchema" sssme ON sme."SysEntitySchemaUId" = sssme."UId" LEFT JOIN "SysPackage" sp ON sssme."SysPackageId" = sp."Id" LEFT JOIN "SysModuleEdit" smed ON sme."Id" = smed."SysModuleEntityId" LEFT JOIN "SysSchema" sssmed ON smed."CardSchemaUId" = sssmed."UId" LEFT JOIN "SysSchema" ssmp ON smed."MiniPageSchemaUId" = ssmp."UId" LEFT JOIN "SysModuleVisa" smv ON sm."SysModuleVisaId" = smv."Id" LEFT JOIN "SysSchema" sssmv ON smv."VisaSchemaUId" = sssmv."UId" WHERE sssme."Name" = 'Contact' -- поиск по коду объекта --WHERE sm."Code" = 'Contact' -- поиск по коду раздела ORDER BY sssme."Name"
В результате выполнения скрипта будут получены данные из всех четырех таблиц для необходимого раздела. Можно выполнить аналогичный скрипт для базового раздела и сравнить данные, что позволит легко выявить ошибку.
Колонка TypeColumnUId в SysModuleEdit отвечает за типизацию страниц мастера. Иными словами, по этой колонке определяется тип страницы.
Чтобы понять, что это за колонка, необходимо открыть метаданные объекта и найти этот UId. После получения информации на какой объект он ссылается, можно сразу искать id из SysModuleEdit.TypeColumnValue в этом объекте.
Дополнительно для корректной работы различных страниц редактирования колонка SysModule.Attribute должна быть заполнена текстовым названием колонки типизации без суффикса Id. Например, это может быть Type или Category.