Всем добрый день. Версия 7.12.

В системе реализовано открытие мини-карточек для просмотра подробных данных, с помощью стандартных вызовов такого типа:

this.openMiniPage({
	recordId: Terrasoft.GUID_EMPTY,
	operation: Terrasoft.ConfigurationEnums.CardOperation.ADD,
	entitySchemaName: "UsrInvoice",
	valuePairs: defaultValues,
	isFixed: true,
	showDelay: 0,
	miniPageSchemaName: "UsrInvoicePage",
});

Схема самой мини-карточки наследуется от BaseMiniPage, вызов происходит в стандартной схеме карточки или детали.

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

В чём может быть причина? Возможно не хватает каких-нибудь параметров?

Нравится

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

Меня смущает параметр 

showDelay == 0

Это время показа карточки до закрытия? Попробуйте его убрать или увеличить.

похоже на задержку перед открытием карточки. Поставил 3 секунды, открылась через 3 секунды, при нуле открывается сразу.

Но всё равно иногда закрывается сама собой.

В версии 7.11 при проставлении в поле миникарточки даты через открывающийся календарь происходило произвольное закрытие этой миникарточки.

Такое же поведение, то есть произвольное закрытие миникарточки, наблюдалось, когда пользователю отображается информационное окно showInformationDialog("Какой то текст"); и пользователь нажимает ОК.

На тот момент модальное окно не полностью поддерживало открытие другого модального окна — например, окна выбора из справочника, информационного диалога или окна с календарем.

В 7.12 могло быть аналогичное поведение миникарточек. Осталось ли такое закрытие в нынешних версиях — лучше проверить, развернув демо-версию и использовав там тот же скрипт.

Диалоговое окно поверх мини-карточки открывается нормально.

Карточки закрываются сами по себе без действий пользователя. Причём всегда одни и те же. Отсюда и вопрос - может быть, что т о в параметрах или содержимом карточки мешает?

Сложно сказать, не понимая, в чём между ними разница. Посмотрите в отладке или в HTTP-запросах в Fiddler, что вообще происходит. У меня похожие странности из-за умирания мыши происходили, но тогда не было бы зависимости от конкретных карточек.

Коллеги, вопрос решён с помощью добавления свойства ShowValueAsLink: false в параметрах справочных полей в diff.

Проблема была связана в целом со всплывающими мини-карточками https://academy.terrasoft.ru/documents/technic-sdk/7-14/sozdanie-mini-kartochki

Добрый день! 

Подскажите, свой-во ShowValueAsLink: false в diff какого объекта добавляется?

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

Всем добрый день. Версия 7.12.

Вопрос - можно ли добавить фильтр на данные в справочнике?

Есть справочник 1, содержащий ещё две справочные колонки (2 и 3). Создавать отдельный раздел или деталь под справочник - ну можно, но они не нужны на практике. Тем не менее, можно ли сделать так, чтобы именно в разделе "Справочники" при заполнении данных справочника 1 можно было фильтровать значения одной справочной колонки (3) по другой (2)?

Нравится

1 комментарий
Лучший ответ

Добрый день.

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

С помощью скриптов зарегистрируйте данную карточку (точно также, как регистрировали бы карточку редактирования детали).

После того, как Вы перелогинитесь в срм, данные в Вашем справочнике можно будет редактировать через карточку редактирования с учетом фильтров:

Добрый день.

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

С помощью скриптов зарегистрируйте данную карточку (точно также, как регистрировали бы карточку редактирования детали).

После того, как Вы перелогинитесь в срм, данные в Вашем справочнике можно будет редактировать через карточку редактирования с учетом фильтров:

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

Коллеги, добрый день!

Версия продукта: 7.14.1.935

Bpm Online Service

Действую согласно статье с академии:

https://academy.terrasoft.ru/documents/technic-sdk/7-14/polzovatelskaya…

В результате фильтрация нежелательных писем все равно не работает и происходит создание обращений по всем письмам.

Могло ли что-то поменяться в 7.14 версии? Возможно учитывать дополнительно какие-то методы?

Значения системных настроек:

1) Состояние нежелательных обращений по умолчанию

Установлен статус = отменено (как и было из коробки)

2) Создавать обращения по нежелательным письмам

Флаг не установлен (как и было из коробки). Полагаю, что это значит false.

Нравится

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

Если есть доступ к серверу, попробуйте отладиться, чтобы выяснить, срабатывает ли функция Check() в созданном для Вашей фильтрации классе, и правильный ли результат она возвращает. 

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

Коллеги, добрый день!

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

Отключил в объекте проверку на заполненность поля на уровне приложения.

Остается видимо еще дополнительная логика на уровне JS и C#, которая соответственно заполняет исполнителя при открытии карточки задачи в режиме создания и + при создании задачи логикой C# (при открытии карточки задачи уже после ее успешного создания поле все равно становится заполненным).

Просьба уточнить как снять заполнение поля на этих двух оставшихся шагах.

С уважением,

Кулиш Александр

Нравится

2 комментария
Лучший ответ

Добрый день!

Проверьте заполнено ли в EntityScheme в поле 'Ответственный' свойство 'Значение по умолчанию'. Если установлено, то нужно зайти в настройки данного свойства и выбрать вариант 'Не устанавливать значение по умолчанию'.

После этого нужно сохранить и опубликовать схему таблицы.

Также обратите внимание, что, если та схема, в которую Вы вносите изменения не самая нижняя в иерархии, то нужно для всех остальных сгенерировать исходный код.

После этого перелогиниться в приложение и проверить заполняется ли поле 'Ответственный' в активностях.

Добрый день!

Проверьте заполнено ли в EntityScheme в поле 'Ответственный' свойство 'Значение по умолчанию'. Если установлено, то нужно зайти в настройки данного свойства и выбрать вариант 'Не устанавливать значение по умолчанию'.

После этого нужно сохранить и опубликовать схему таблицы.

Также обратите внимание, что, если та схема, в которую Вы вносите изменения не самая нижняя в иерархии, то нужно для всех остальных сгенерировать исходный код.

После этого перелогиниться в приложение и проверить заполняется ли поле 'Ответственный' в активностях.

Алла Савельева,

Спасибо! Вопрос решен.

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

Изначально в среде разработки мной был создан пакет, в нем велись все изменения и доработки. Затем пакет выгружался в архив и загружался в продуктив, через штатные средства "Установка и удаление приложений". 

Через какое-то время админы среду разработки обновили из продуктива и я потерял доступ к редактированию своего пакета, потому что на продуктиве система думает, что пакеты,загруженные с помощью "Установка и удаление приложений", являются сторонними.

Вопрос такой. Если я буду использовать SVN и повториться такая же ситуация с обновлением среды разработки, у меня останется доступ к моему пакету?

bpm'online service 7.11.3

Нравится

4 комментария
Лучший ответ

Добрый день!

При установке пакета через "Установка и удаление приложений" он помечается как сторонний и редактировать его можно только сняв галочку InstallType в SysPackage.

Если вы будете разрабатывать используя SVN и переносить в продуктив в SVN (что вообще то не рекомендуется делать), то пакет блокироваться не будет.

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

Добрый день!

При установке пакета через "Установка и удаление приложений" он помечается как сторонний и редактировать его можно только сняв галочку InstallType в SysPackage.

Если вы будете разрабатывать используя SVN и переносить в продуктив в SVN (что вообще то не рекомендуется делать), то пакет блокироваться не будет.

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

Сидоров Александр В.,

А снять галочку InstallType в SysPackage не подскажите как? Я понимаю через БД, верно?

Идрисов Артур Ильдарович,

Да, выполните запрос 

update SysPackage set InstallType=0 where Name='PackageName', где PackageName - название вашего пакета

Сидоров Александр В.,

Благодарю, уже сделал.

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

Добрый день ! BPM'online v 7.13.4.638. Необходимо программно отобразить карточку входящего/исходящего звонка пользователя. Известны номер А (исходящий), номер B (входящий), тип звонка (IN/OUT). Нашел в пакете CTIBase 7.8.0 метод CallPageV2 (схеме отображения карточки звонка). Как увидеть внешнюю форму, которую реализует этот метод, и вызвать метод программно из приложения (API) ?

Нравится

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

CallPageV2 — это не метод, а страница карточки звонка. Если Вы собираетесь открывать её в БП и знаете Id записи об этом звонке, то для этого предусмотрен элемент процесса «Открыть страницу редактирования» с возможностью передать туда параметры. С его же помощью можно и открыть карточку новой записи с нужными значениями в полях.

chapter_process_designer_edit_page.png  

Элемент «Открыть страницу редактирования» содержит список возможных для редактирования страниц, среди которых нет карточки звонка. Это происходит потому, что страница звонка является системным объектом, и в результате не проходит фильтрацию данного элемента. То есть, на уровне БД в таблице SysModule у объекта с Code = «Call» колонка IsSystem = true. Если убрать признак IsSystem, то страница звонка начнет отображаться в списке страниц элемента, однако не рекомендуется этого делать, так как это может быть чревато другими непредсказуемыми последствиями в системе.

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

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

Нравится

3 комментария
Лучший ответ

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

Если событие объекта, то создаете БП, добавляете запуск по событию, далее добавляете элемент "Добавить данные" и создаете обращение с необходимыми предзаполненными полями.

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

Если событие объекта, то создаете БП, добавляете запуск по событию, далее добавляете элемент "Добавить данные" и создаете обращение с необходимыми предзаполненными полями.

Какой у вас продукт? Для примера посмотрите процес создания обращения по входящему письму (Название: Регистрация обращения по входящему письму IncidentRegistrationFromEmailProcess)

Всем спасибо! Сделал.

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

Всем привет!

Стоит следующая задача: заменить фильтр, на основании которого отображается список в виджете "Мои обращения" (Список обращений пользователя портала) на Главной странице портала?

Учитывая, что

1. замещение клиентских модулей запрещено

2. хочется обойтись "малой кровью"

3. делать свой модуль скопировав базовый не рационально для задачи

4. список формируется на основании подгружаемого config

хотелось бы подложить модулю свой конфиг с нужным фильтром, но никак не могу понять, как это сделать. Может кто сталкивался?

Изображение удалено.

 Изображение удалено.

Нравится

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

Эта логика реализована в схеме «Список обращений пользователя портала» (UserCasesListModule) в функции initConfig: function(). Вероятно, проще действительно не трогать базовый, а скопировать, сделать в отдельной схеме свой аналог с нужным фильтром, а затем в дизайнере  панели итогов «Главная страница портала» указать его в свойствах блока.

Зверев Александр,

благодарю за ответ

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

Всем доброго дня. Версия 7.13.2.

Добавил на страницу раздела быстрый фильтр, наподобие того, который реализован в разделе активностей. Фильтрация не по ответственному, по другой колонке, но не суть..

var fixedFilterConfig = {
                    entitySchema: this.entitySchema,
                    filters: [
                        {
                            name: "CategoryServiceVirtual",
                            appendCurrentContactMenuItem: false,
                            caption: "Категория услуги",
                            addNewFilterCaption: "Выбрать категорию услуги",
                            columnName: "CategoryService",
                            // Укажем значение по умолчанию
                            defValue: this.get("CategoryServiceVirtual"),
                            dataValueType: this.Terrasoft.DataValueType.LOOKUP,
                            appendFilter: function(filterInfo) {                            	
								console.log(filterInfo)
							}
                        }
                    ]
                };

Однако нужно чтобы при открытии раздела уже была указана одна из категорий по умолчанию. 

CategoryServiceVirtual - виртуальная колонка со значением в формате {value: guid, displayValue: "Название"}. Но при попытке подставить её значение (а значение точно есть) в defValue фильтра, фильтр остаётся незаполненным.

Изображение удалено.

Как правильно задать значение по умолчанию?

Нравится

1 комментарий
Лучший ответ

Могу ошибаться, но попробуйте добавить в CategoryServiceVirtual свойство - primaryImageValue, присвойте ему просто нулевой guid.

Могу ошибаться, но попробуйте добавить в CategoryServiceVirtual свойство - primaryImageValue, присвойте ему просто нулевой guid.

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

Добрый день!

Можно ли открывать автогенерируемую страницу до создания записи в разделе или сразу после выбора значения в справочном поле?

В зависимости от значения в справочном поле могут сильно отличаться дополнительные обязательные для заполнения параметры. 

Так что думал решить этот момент за счет автогенерируемой страницы.

Один нюанс - логика должна отрабатывать до сохранения записи в разделе.

Нравится

1 комментарий
Лучший ответ

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

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

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

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

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