Добрый день.

Стоит следующая задача:
По БП после сохранения карточки лида необходимо открыть карточку продажи. Использую стандартный элемент БП "Открыть страницу редактирования".
Столкнулся с проблемой, что страница продажи не открывается, если предыдущая по БП карточка Лида открыта тоже с использованием элемента БП "Открыть страницу редактирования".

В связи с этим вопрос:
Возможно ли открыть карточку редактирования без использования стандартный элемент БП "Открыть страницу редактирования"

И ещё один вопрос:
Можно ли отключить создание активности при использовании элемента "Открыть страницу редактирования"?

Нравится

1 комментарий

Добрый день!

1. Элемент “Страница редактирования” считается выполненным после сохранения карточки. Т.е. если в процессе последовательно стоят 2 элемента “Страница редактирования” – для того, чтобы открылась вторая страница пользователь должен нажать кнопку [Сохранить] на первой странице.
По другому страницу редактирования открыть не получится.

2. Элементы Вопрос пользователю/Страница редактирования/Автогенерируемая страница при выполнении создают служебную активность, которая выполняет переадресацию пользователя на целевую страницу. Это базовый механизм работы элементов.

Показать все комментарии

В БП создается запись документа, далее идет элемент "Страница редактирования". Никаких условий выполнения нет. После сохранения карточки элемент продолжает висеть с состоянием "Выполняется" и не переходит на следующий шаг. Можно выполнить элемент повторно, или просто зайти в карточку и сохранить - тогда бп идет дальше. Но если изменить несколько полей и сохранить - элемент опять может не выполнится. То же самое с продажей проблем не вызывает. Подскажите в какую сторону копать?

Нравится

2 комментария

Добрый день!
После 7.5 было внесено много исправлений/изменений. Напишите в support для детального анализа.

Оказалось что при сохранении объекта при определенных условиях отрабатывает несколько запросов. Отрабатывают без ошибок, но бп дальше не идет. Если запросы не выполняются - все отлично.

Показать все комментарии

Добрый день.

Версия BPMOnline 7.2

При создании новой записи необходимо установить значение поля объекта в некоторое значение. Поле типа "Справочник", связано с другой таблицей. Пытаюсь делать так:

if (this.isNew) {
    var statusNew = '8A6DEA2E-6F96-488E-B4B4-DDBEA2F225CD';
    var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
        rootSchemaName: 'SynchronizedRuleStatus'
    });
    esq.getEntity(statusNew, function(result) {
        if (result.success && result.entity) {
            this.set('SynchronizedRuleStatus', result.entity.get('Id'));
       }
    }, this);
}

Однако значение поле в карточке отображается как "undefined". Как решить данную проблему?

Заранее благодарен за помощь.

Нравится

3 комментария

А чем не подходит вариант, заместить объект и проставить у колонки значение по умолчанию?

Объект замещать нельзя по некоторым соображениям.

Но проблема уже решена, может кому пригодится:

if (this.isNew) {
    var statusNew = '8A6DEA2E-6F96-488E-B4B4-DDBEA2F225CD';
    var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
        rootSchemaName: 'SynchronizedRuleStatus'
    });
    esq.addColumn('Name');
    esq.addColumn('Id');
    esq.getEntity(statusNew, function(result) {
        if (result.success && result.entity) {
	    var entity = result.entity;
	    if (entity) {
	        var t = {
	            displayValue: entity.get('Name'),
		    value: entity.get('Id')
	        };
	        this.set('SynchronizedRuleStatus', t);
           }
       }
    }, this);
}

Здравствуйте, Артем.

Я бы порекомендовал значение '8A6DEA2E-6F96-488E-B4B4-DDBEA2F225CD'; вынести в системную настройку (типа "Статус по-умолчанию") и тянуть ее оттуда.

Потому что бывают моменты, что может поменятся и сам статус или понадобится сделать перенос на другую площадку, а там статуса с таким ИД может и не оказаться, что приведет к поломке логики и необходимости лезть в схему и править.

Показать все комментарии

Добрый день,
Используя стандартный элемент БП "Страница редактирования" открываю страницу редактирования, создаю новую запись, указываю ей данные, проблема в следующем при создании состояние указываю из справочника "Не начата", но если пользователь при переходе на данный элемент изменяет какие нибудь другие поля и нажимает "Сохранить" активности автоматически присваивается состояние "Завершена", как это изменить?
По БП пользователь должен только ознакомится с данными и при необходимости их поправить, но состояние должно остаться "Не начата", т.к. это активность на следующий день

Нравится

1 комментарий

Здравствуйте!

В настройках этого элемента есть поле "Считать элемент выполненным, если объект соответствует условиям". Вы можете настроить условия, без выполнения которых активность будет считаться невыполненной.

Для решения Вашей задачи Вы также можете использовать следующую последовательность элементов:
1) Страница редактирования.
2) Изменить данные (меняем состояние задачи на "Не начата").
3) Промежуточный обрабатывающий сигнал - ожидаем изменение состояния активности на конечное.

Второе решение - использовать элемент "Задача".

Показать все комментарии

В разделе есть "карточки редактирования", которая создаётся с помощью элемента "клиентский модуль", а вот если мне надо показать страницу редактирования элемента с помощью старого интерфейса, т.е. с помощью "страницы редактирования", как это можно сделать. предположим, я добавила действие в раздел, и хочу, чтобы при его выполнении открывалась карточка старого интерфейса, где в качестве данных - данные выбранного элемента раздела.
Я чего-то заоблачного хочу. или так можно?

Нравится

1 комментарий

Екатерина, добрый день!

Да, можно. Основная идея состоит в том, чтобы определить уникальный идентификатор Вашего окна в таблице SysSchema (поле UId) и на его основании сформировать url, который потом вызвать через window.open:

window.open(url);

Более подробно можно посмотреть на примере реализации метода navigateToConfigurationSettings в схеме SystemDesigner пакета UIv2, который открывает окно управления конфигурацией по соответствующему действию в дизайнере системы, либо же (более сложный вариант) метода openOldLookupConfiguration в схеме LookupSection того же пакета, который открывает окно наполнения справочника в старом интерфейсе.

Показать все комментарии

Коллеги, подскажите, как устранить проблему.
Есть 3 кнопки в AcccountSectionV2. Каждая из них вызывает свой бизнес-процесс, первым элементом в которых стоит открытие страницы редактирования (новой Активности, Счёта или Заказа соответственно). Проблема заключается в том, что после нажатия Отмена на странице редактирования (к примеру, страницы редактирования Счёта) все кнопки в карточке контрагента перестают реагировать на нажатия. По журналу бизнес-процессов видно, что привязанные к кнопкам бизнес-процессы не запускаются, т.е. не отрабатывается код кнопок. Он начинает работать, только если обновить страницу.
Часть кода, создающая кнопки:

{
                                "operation": "insert",
                                "parentName": "CombinedModeActionButtonsCardLeftContainer",
                                "propertyName": "items",
                                "name": "MakeInvoiceButton",
                                "values": {
                                        itemType: Terrasoft.ViewItemType.BUTTON,
                                        caption: "+ Счёт",
                                        style: Terrasoft.controls.ButtonEnums.style.BLUE,
                                        click: {bindTo: "onMakeInvoiceButtonClick"},
                                        "layout": {
                                                "column": 1,
                                                "row": 6,
                                                "colSpan": 1
                                        }
                                }
                        }

Часть кода - запуск привязанного бизнес-процесса:
onMakeInvoiceButtonClick: function() {
                                debugger;
                                var AccountId = this.get("ActiveRow");
                                var processArgs = {
                                        sysProcessName: "UsrOnMakeInvoiceButtonClick",
                                        parameters: {
                                                IncomingAccountId: AccountId
                                        }
                                };
                                ProcessModuleUtilities.executeProcess(processArgs);
                        }

Бизнес-процесс:
Схема

Нравится

15 комментариев

Антон,

что видно в консоли браузера в момент нажатия на эти кнопки?

P.S. Прикрепите, пожалуйста, скриншот процесса.

в момент вызова нового процесса в браузере видно следующее сообщение:

При выполнении запроса возникла ошибка
статус ответа: 400 (Bad Request)
url запроса: http://crm:82/0/ServiceModel/ProcessEngineService.svc/UsrOnMakeNeedCall…null
метод: POST
данные запроса: {}

Похоже, что после запуска предыдущего при повторном запуске система не передаёт ID Открытой карточки клиента в повторный процесс. Однако - в журнале процессов нет второго запуска процесса.

Добрый день Антон!!!

конечно Бизнес-процесс у вас маленький, но если честно цель данного бизнес-процесса непонятно. Что вы хотели данным процессом достичь? Проконтролировать заполнено ли определенное поле и если да, то открыть карточку редактирования счета? Или же вы хотели сначала проконтролировать наполняемость всех полей, и если определенные поля заполнены, открыть на редактирование карточку счета. Если так, то в процессе не хватает действий для проверки. Это первое, а второе когда вы Первый раз запустили процесс, то в Процесс (через входящие параметры) запоминает Id контрагента, и когда вы не заново, а продолжаете процесс, тогда система уже начинает с того места где остановилась и при этом помнит уже все входящие параметры.

Михаил, цель простая - открыть предзаполненную карточку счёта из карточки клиента. В начале процесса проверяю условия - указан ли ID контрагента, по которому нужно открыть счёт, а также чтобы тип этого контрагента был равен "Клиент". В иных случаях счёт нам не нужен.
По сути, это аналог кнопки "Добавить" в детали Счета в карточке контрагента.

Последний Ваш комментарий не понял - я отменил выполнение предыдущего процесса и запускаю новый из той же карточки. Вот новый у меня и не начинается из-за того, что система не передаёт второй раз ID контрагента, карточка которого открыта в настоящий момент

"Антон Кравченко" написал: Вот новый у меня и не начинается из-за того, что система не передаёт второй раз ID контрагента, карточка которого открыта в настоящий момент

Антон вопрос так откуда вы вызываете бизнес-процесс из Раздела или Открытой карточки редактирования. Так как обращение и получение Id контрагента будут разными. Если из раздела, то нужно еще проверить, а не включен ли режим "Выбора нескольких записей" и если да получить массив Id и передать в процесс, если это карточка редактирования то напрямую получить "this.get(this.entitySchema.primaryColumnName)" и все. И еще один совет если в Бизнес-процесс передаются Массив значений, Id и не только то обязательно, прежде чем вызвать процесс, вы добавьте условия проверки на "Существование" и "Заполненность" передаваемых значений а уже после запускайте процесс. И уже на экране у вас уже не будут появляться ошибки, а вы будите видеть, что процесс запустился или нет. И вот если уже не запустился это уже будет означать, что сработал ваш "IF". Я бы так сделал.

Михаил, хорошо, давайте проверим:
1. Код кнопки у меня расположен и в *Page и в *Section. Из Section в процесс передаётся this.get("ActiveRow"), из Page - this.get("ID")
2. Режим "Выбора нескольких записей не включен 100%
3. При проверке открыта карточка контрагента через Section (т.е. слева есть список других контрагентов, а ссылка в браузере выглядит как .../ ... Section ... / UsrAccountType1Page / edit / ID
4. Вы пишете про проверку на существование и заполненность. Чем Вам первое условие в моём процессе не нравится? в нём как раз и проверяю, что переданный ID != Guid.Empty

Я подозреваю, что после запуска процесса система как бы "выходит" из режима, когда выделена одна из записей реестра (т.е. this.get("ActiveRow") возвращает null), а после обновления страницы снова выделяет того контрагента, чья карточка на экране (т.е. this.get("ActiveRow") возвращает ID выделенной записи).
Как можно проверить данное предположение?

"Антон Кравченко" написал:в нём как раз и проверяю, что переданный ID != Guid.Empty

Антон во первых в процесс может, через входящий параметр, передаться значение ("", String.Empty, т.е пустое значение) или передаться значение "undefined". Можно конечно это все проверить на C# в бизнес-процессе, но зачем если это можно сделать на клиенте. На C# нужно будет не забывать про правила конвертации, чтобы синтаксис был правильный. На JavaScript это проще. Это всего лишь моя рекомендация.
Возвращаясь к вашему вопросу хочу сказать, что по умолчанию в конфигурациях BPMOnline есть маленький баг. Но он быстро правиться. Проверяется этот баг очень просто. Открываете карточку редактирования (к примеру Контрагента) из раздела. И на карточке в любом LookupEdit поле выполняете "Выбор из справочника" и при выборе к примеру редактируете выбираемую запись сохраняете и смотрите. Если слева, где список контрагентов, теряется фокус. То тогда да, ваше предположение может быть, что при подачи команды  this.get("ActiveRow") возвращается "null" или "неопределено", то тогда я вам подскажу где этот маленький баг исправить. Я его уже давно обнаружил, еще в 7.3. Проведите эксперимент если фокус потеряется, я вам подскажу как это поправить.

Михаил, фокус не теряется при Вашем способе с LookupEdit, однако в нашей ситуации с кнопками теряется - см. скриншоты

Добрый день Антон!!!

выполните замещение схемы GridUtilitiesV2, исправьте Функцию "ensureActiveRowVisible"
ниже приведен исправленный текст функции. Жирным выделена строка, что добавлена.

            /**
             * Прокручивает реестр, чтобы была видна активная строка.
             * @protected
             */
            ensureActiveRowVisible: function() {
                var grid = this.getCurrentGrid();
                var activeRow = this.get("ActiveRow");
                if (grid && activeRow) {
                    var activeRowDom = grid.getDomRow(activeRow);
                    if (activeRowDom && activeRowDom.dom) {
                        // TODO: Добавлена строка по фиксации активной записи реестра
                        grid.setActiveRow(activeRow);
                        var el = activeRowDom.dom;
                        if (el.scrollIntoViewIfNeeded) {
                            el.scrollIntoViewIfNeeded(false);
                        } else {
                            el.scrollIntoView(false);
                        }
                    }
                }
            },

Выполните пожалуйста замещение схемы и проверьте результат. У меня сейчас фокус никогда не теряется. При замещение схемы не забываем копировать не одну функцию а все. Иначе перестанет работать функционал.

Михаил, доброго утра!
Заместил GridUtilitiesV2, полностью скопировал код из замещаемой в замещающую страницу, исправил функцию ensureActiveRowVisible ... и ничего не изменилось - фокус по-прежнему теряется.
P.S. Вы пишете, что жирным выделена добавляемая в функцию ensureActiveRowVisible строка, но в Вашем коде не вижу строки с жирным шрифтом ..

Добрый день Антон!!!

воспроизвел вашу ситуацию на своей базе данных. Действительно Фокус теряется и информация о текущей записи теряется. Буду сегодня в отладчике искать, где происходит сбой. Как найду выход из данной ситуацию. Опубликую результат с ответом.

Антон самый быстрый способ который я нашел и советую вам его использовать. Это сохранение ID в профиль пользователя. Вот как я сделал и после отмены или закрытия карточки редактирования (вызванная из процесса) фокус сейчас у меня нормально возвращается. вот листинг. так же замещаем схему GridUtilitiesV2.

            /**
             * Восстановление выделенной записи в реестре.
             */
            onAfterReRender: function() {
                if (this.cachedActiveRow && !this.get("MultiSelect"))  {
                    var gridData = this.getGridData();
                    if (gridData && gridData.contains(this.cachedActiveRow)) {
                        this.set("ActiveRow", this.cachedActiveRow);
                    }
                } else if (!this.cachedActiveRow && !this.get("MultiSelect"))  {
                    var profile = this.getProfile();
                    var activeRow = !Ext.isEmpty(profile.ActiveRow) ? profile.ActiveRow : this.Terrasoft.GUID_EMPTY;
                    if (!Ext.isEmpty(activeRow)) {
                        this.set("ActiveRow", activeRow);
                    }
                }
            },
            /**
             * Событие на изменение значения ActiveRow.
             */
            onActiveRowChange: function() {
                this.cachedActiveRow = this.get("ActiveRow") || this.cachedActiveRow;
                if (!Ext.isEmpty(this.cachedActiveRow)) {
                    var profile = this.getProfile();
                    var key = this.getProfileKey();
                    if (profile && key) {
                        profile.ActiveRow = this.cachedActiveRow;
                        this.Terrasoft.utils.saveUserProfile(key, profile, false);
                    }
                }
            },

приведенные выше 2 функции замещаем. и пробуем исполнить с Нуля свой процесс отменить. Проверить, что вернулся фокус и продолжить с остановленного месте или заново начать как вам удобно.

Михаил, отлично! Ваше решение работает) Спасибо большое

Я рад Антон. Что вам помог. Вы первую мою доработку тоже к себе в код включите, полезна будет. А так я рад. Будут еще вопросы, проблемы пишите, буду рад вам помочь.

а я её (первую доработку) там и оставил )

Показать все комментарии

Добрый день.
Помогите с реализацией примера процесса в BpmOnline 7.6 BankSales

1. Необходимо создать новый объект в системе без создания нового раздела.
2. Создать его страницу редактирования.
3. Добавить его как деталь в раздел Физ.Лица.
4. Создать процесс в разделе Физ.Лица. при запуске которого открывается карточка редактирования созданного объекта с заполненным полем выбранного Физ. лица. и после сохранения карточки создается задача на пользователя.

Реализация на текущий момент:
1. Создал объект "Согласование отпуска" с полями Физ.Лицо., Заголовок, Ответственный
2. Создал новую деталь в разделе Физ.Лица с помощью мастера деталей
3. Зарегистрировал созданную мастером страницу редактирования с помощью процедуры
EXEC [dbo].[tsp_RegisterPage]
@ModuleEntityName = N'nfcMatchingAbsent',
@PageName = N'nfcnfcMatchingAbsent1Page',
@TypeColumnUId = NULL,
@TypeValue = NULL,
@AddMenuCaptionRus = NULL,
@AddMenuCaptionEng = NULL,
@CardHeaderCaptionRus = NULL,
@CardHeaderCaptionEng = NULL
4. Создал процесс, и добавил элемент страница редактирования.
5. В поле страница элемента редактирования "Страница редактирования" моя зарегистрированная страница не появилась.
6. Вписал значения страницы и объекта вручную (Id объектов в переменные ObjectSchemaId и PageSchemaId).
7. Установил значение по умолчанию Физ.Лицо
8. Опубликовал процесс.
9. При запуске процесса в консоли возникает ошибка:
В консоли опять ошибка Uncaught TypeError: Cannot read property 'cardSchema' of undefined
:8075/core/e995a30a7af7cc9773586f5211d95c73/Terrasoft/amd/core.js:555 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647
file: http://ччч.ru:8075/0/configuration/75c5ed49bdf66b4c26da63b1d93b3572/ConfigurationBootstrap.js
line: 6064
message: Uncaught TypeError: Cannot read property 'cardSchema' of undefined

Нравится

6 комментариев

Здравствуйте!

"Илья Т." написал:

Добрый день.

Помогите с реализацией примера процесса в BpmOnline 7.6 BankSales

2. Создал новую деталь в разделе Физ.Лица с помощью мастера раздела

Схема детали создается при помощи мастера детали, а не мастера раздела. Схему детали нельзя открыть в бизнес процессе элементом "Страница редактирования"

Есть два решения Вашей задачи.
Первое - пользовательскими инструментами системы:
1) Создайте новый раздел, используя мастер раздела. Создайте поля, которые должны быть на детали.
Данное действие создаст страницу редактирования раздела (которая будет позже вызываться в бизнес процессе).
Созданный раздел не нужно выводить в рабочие места - он будет техническим.

2) Создайте деталь на основе объекта, созданного в первом пункте. Деталь создается с использованием мастера детали.

3) Выведите созданную деталь в нужный раздел, используя мастер раздела в нужном разделе (прошу прощения за тавтологию).

Итог: у Вас есть страница редактирования и деталь, которые смотрят в один объект.

4) В бизнес процессе выберите страницу редактирования созданного раздела.
При выполнении процесса будет открываться страница редактирования раздела. Данные, внесенные пользователем, будут сохранятся в созданном объекте и будут отображаться на детали.

Второе - создать свою страницу редактирования, используя навыки программирования на Java Script, унаследовав, например, базовую страницу редактирования справочников. После этого, созданную страницу необходимо зарегистрировать в качестве страницы редактирования, используя хранимую процедуру [dbo].[tsp_RegisterPage].

Алексей, ошибся, создал деталь с помощью мастера деталей.

И получается что на каждый новый объект нужно создавать технический раздел?
Это очень неэкономный способ. Так как параллельно создается множество иных объектов. И еще существует ограничение по длине названия создаваемого объекта.
И как быть если я хочу отобразить карточку уже существующего объекта? Например страницу редактирования Адреса?

Илья, для этого есть преднастроенная страница.
Преднастроенная страница хранит Id создаваемой записи. После преднастроенной страницы элементом "Изменить данные" созданная запись привязывается к нужному Контакту/Контрагенту.

Алексей, а можно ли как то передавать значения по умолчанию в элемент "преднастроенная страница" без создания промежуточных страниц?
Как показано здесь http://www.community.terrasoft.ru/img/video/lms/28/story.html это также очень затратный способ.

Либо как на видео, либо указывать параметры, как я написал в предыдущем своем посте.

Показать все комментарии

Добрый вечер,
Возможно ли из бизнес процесса открывать страницу редактирования на определенную деталь/вкладку на странице?

Нравится

1 комментарий

Добрый день, Олег!
Такая возможность отсутствует, но Вы можете добавить такую идею, чтобы наши аналитики рассмотрели данную функциональность для реализации в последующих версиях.

Показать все комментарии

Добрый день!

BPM 7.2

Есть типизированный раздел Запросы и две страници редактирования (А, Б)
img1

Раздел создан согласно SDK.
Страницы отображаются и работают нормально.

Проблема в том что страниц нет в списке элемента процесса Страница редактирования
img2

В чем может быть причина?

Нравится

5 комментариев

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу

Здравствуйте, Тарас!

Посмотрите, пожалуйста, есть ли Ваши созданные страницы в таблице VwSysClientUnitSchema. Посмотреть можно напрямую запросом в БД. Также на "Странице редактирования параметров действия", есть фильтрация, которая накладывается на поле "Страница" выбора страниц, посмотреть её можно в из процесса страницы в скрипте CreateControlsScriptTask. Обратите, пожалуйста, внимание заполнены ли все необходимые колонки у Ваших страниц во VwSysClientUnitSchema, которые необходимы для фильтрации, а именно:

var workSpaceFilter = new Dictionary<string, object> {
	{ "comparisonType", FilterComparisonType.Equal },
	{ "leftExpressionColumnPath", "SysWorkspace" },
	{ "useDisplayValue", false },
	{ "rightExpressionParameterValues", new object[] { UserConnection.Workspace.Id } }
};
var packageFilter = new Dictionary<string, object> {
	{ "comparisonType", FilterComparisonType.Equal },
	{ "leftExpressionColumnPath", "SysPackageUId" },
	{ "useDisplayValue", false },
	{ "rightExpressionParameterValues", new object[] { processSchema.PackageUId } }
};
var schemaFilter = new Dictionary<string, object> {
	{ "comparisonType", FilterComparisonType.Equal },
	{ "leftExpressionColumnPath", "UId" },
	{ "useDisplayValue", false },
	{ "rightExpressionParameterValues", null }
};
var extendParentFilter = new Dictionary<string, object> {
	{"comparisonType", FilterComparisonType.Equal},
	{"leftExpressionColumnPath", "ExtendParent"},
	{"useDisplayValue", false},
	{"rightExpressionParameterValues", new object[] {false}}};
Page.PageEdit.PrepareLookupFilter += delegate (object sender, LookupEditEventArgs e) {
	var lookupFilters = (Collection<Dictionary<string, object>>)e.Filters;
	schemaFilter["rightExpressionParameterValues"] = entitySchemaUIds == null ? null : newentitySchemaUIds.Keys.ToArray();
	lookupFilters.Add(packageFilter);
	lookupFilters.Add(schemaFilter);
	lookupFilters.Add(workSpaceFilter);
	lookupFilters.Add(extendParentFilter);
};

"Резниченко Сергей" написал:

Здравствуйте, Тарас!

Посмотрите, пожалуйста, есть ли Ваши созданные страницы в таблице VwSysClientUnitSchema. Посмотреть можно напрямую запросом в БД. Также на "Странице редактирования параметров действия", есть фильтрация, которая накладывается на поле "Страница" выбора страниц, посмотреть её можно в из процесса страницы в скрипте CreateControlsScriptTask. Обратите, пожалуйста, внимание заполнены ли все необходимые колонки у Ваших страниц во VwSysClientUnitSchema, которые необходимы для фильтрации...

Страницы есть в таблице VwSysClientUnitSchema и колонки все заполнение.
Но страницы все равно не отображаютса в списке

Решено.

Проблема была в разделе.

Таблица SysModule, колонка CardSchemaUId должена содержать значение UId страници раздела з таблици VwSysClientUnitSchema.

Здравствуйте, Тарас!

Рад, что проблема решилась. Если будут вопросы, пожалуйста, обращайтесь.

Приятного дня!

Показать все комментарии