Полезное Разные интересные примеры и важные решения Управление видимостью меню (подменю) Иногда, чтобы отобразить/скрыть левое меню/подменю недостаточно использовать в контроллере привязку к привилегиям. Когда нужно реализовать свои проверки, например включен ли функционал в настройках системы, можно использовать следующий пример: Отображение меню Канбан при условии что есть нужные привилегии, а так же в настройках он включен. Создаем атрибут, где будем проверять, включен ли Канбан в настройках системы: /// public class KanbanEnabledAttribute : BasePermissionAttribute { /// public override bool HasPermission() { return Locator.GetServiceNotNull().Settings.EnableKanban; } } Далее в котроллере проставляем указанный атрибут: /// [AnyPermission(CRMPermissionProvider.CRMAccessPermissionId, CRMPermissionProvider.SalesAccessPermissionId)] [RouteArea(RouteProvider.AreaName)] public class KanbanController : BPMController { /// /// Канбан по сделкам /// /// /// [KanbanEnabled] [ContentItem(Name = "SR.M('Канбан')", Image24 = Common.Web.RouteProvider.ImagesFolder + "kanban.svg")] [FilterMenuItem(Id = CRMMenuItems.Kanban, /*Type = typeof(ICOMonthlyPayment),*/ FilterEditAction = "EditFilters")] public ActionResult Index(long? filterId = null) { // TODO } } После этого меню Канбан отображается не только исходя из прав (привилегий) пользователя, но и в соответствиями с настройками системы. Точки расширения IMenuItemRenderer и IMenuCustomItems для подменю не работают! Запросы в БД Приведем несколько полезных запросов в БД для очистки старых данных и прочих служебных вкусностей. Для примера используется база ELMA (заменить на свое). Удаление сообщений об ошибках в ленте: /****** Скрипт для команды SelectTopNRows из среды SSMS ******/ delete FROM [ELMA].[dbo].[Feed] where Subject like '%Ошибка в процессе%' or Subject like '%Ошибка выполнения%' Удаление сообщений об ошибках в архиве ленты: /****** Скрипт для команды SelectTopNRows из среды SSMS ******/ delete FROM [ELMA].[dbo].[FeedArchive] where Subject like '%Ошибка в процессе%' or Subject like '%Ошибка выполнения%' Удаление записей о выполнении взаимоотношений: /****** Скрипт для команды SelectTopNRows из среды SSMS ******/ delete FROM [ELMA].[dbo].[EntityActionHistory] where [ActionTypeUid] = '786919b5-d160-426a-a578-f74b503cf966' Удаление записей о выполнении, добавлении комментариев, изменении времени: /****** Скрипт для команды SelectTopNRows из среды SSMS ******/ delete FROM [ELMA].[dbo].[EntityActionHistory] where [ActionTypeUid] = 'fa413130-d92d-41e4-9fba-b133c43fe02a' or [ActionTypeUid] = '3e3e8dd9-b4ea-4ad8-9aa1-19b4fe27ff80' or [ActionTypeUid] = '786919b5-d160-426a-a578-f74b503cf966' Разработка компонентов и модулей Утилитка сборки решений для стора Для автоматизации сборки компонентов для стора можно использовать следующую утилиту (положить, например в каталог Dev): Для ELMA3 - ITino.ELMA.StoreGenerator3.exe Для ELMA4 - ITino.ELMA.StoreGenerator4.exe (Дополнительно ей потребуется библиотека CommandLine.dll ) После этого необходимо в проект серверного модуля добавить два файла: Store.png и Store.xml. Пример последнего: Module Free IEE BPM | Интеграция с геосервисами и картами Интеграция с сервисами геокодинга и отображения карт: • Яндекс.Карты • Google Maps • 2ГИС • Azure Maps • MapBox TechSU LLC https://www.randmgroup.ru false GoogleApi ITino.ELMA.GIS ITino.ELMA.GIS.Web Сделать батник для сборки всего нашего хозяйства: rmdir /Q /S %~dp0!Store.Release mkdir %~dp0!Store.Release rmdir /Q /S %~dp0!Packages mkdir %~dp0!Packages # Предваритаельн особрать пакеты нашего решения ..\PackageManager\EleWise.ELMA.Packaging.Console.exe packSln C:\ELMA-Enterprise\Dev\WebApplication\Modules\ITino.ELMA.Release.sln -v 4.1.39.28604 -out !Packages -NoSelfUpdate -NoProjectDependencies -ProjectNames ITino.ELMA.GIS;ITino.ELMA.GIS.Web # Собрать компоненты для стора ITino.ELMA.StoreGenerator.exe -s C:\ELMA-Enterprise\Dev\WebApplication\Modules\ITino.ELMA.Release.sln -v 4.1.39.28604 -o !Store.Release -p !Packages -e ..\Packages # Удалить хлам - утилита сама не может - не дает GC del /Q /S /F C:\Users\<ПодКемЗашли>\AppData\Local\Temp\*.* После этого мы должны получить нужный(е) компоненты в каталоге Store.Release.