При переходе с версии 7.13.4 на 7.15.0, при компиляции возникает ошибка, что в интерфейсе IReportGenerator, не определён метод Generate().При том что в 7.13 всё работает без ошибок.Подскажите в какую сторону копать.Изображение удалено.

Прикрепленные файлы

Нравится

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

Необходимо убедиться, что в самом процессе обновления не возникло ошибок, а до запуска обновления генерация и компиляция выполнялись успешно.

 

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

 

Рекомендую проверить ситуацию с помощью скриптов, которые есть в инструкции по обновлению:

 

Олег Нефедьев, 

Спасибо. в 7.13 добавили интерфейс IReportGenerator в Пакет NUI.Мы же его использовали из  Terrasoft.Configuration.TsiReportGenerator решилось обращением к интерфейсу "Terrasoft.Configuration.TsiReportGenerator.IReportGenerator"

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

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

 

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

Нравится

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

Страница комментария - это схема "CaseRatingFeedbackPage". Там в методе postComment можно добавить необходимую вам логику проверки. Не уверен, подгружается ли в модель страницы оценка пользователя, но в крайнем случае её можно из url'а достать.

Добрый день!

 

Если Вы имеете ввиду возможность сделать поле "Комментарий" на странице благодарности, которая открывается после нажатия на оценку в письме, обязательным, то на данный момент такая возможность отсутствует. Функционал работает таким образом, что сначала проставляется и отправляется оценка, а только после предоставляется возможность заполнить комментарий. А клиент может просто закрыть страницу с комментарием в браузере. Чтобы реализовать необходимую Вам логику, необходимо полностью заменить механизм и логику работы оценки, которая есть сейчас.

На ответственной команде разработки уже зарегистрировано пожелание на реализацию данной возможности в будущих версиях системы.

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

Добрый день! Возникла проблема с добавлением этого пункта меню для фильтров:

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

Проблема в том, что этого пункта просто нет. Раздел привязан к объекту-представлению. В QuickFilterModuleV2 запрос фильтров возвращает null для всех входящих параметров: 

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

 

Нравится

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

Скорее всего проблема возникла из-за ошибок во время создания мастером разделов. Например, не создались некоторые объекты для групп и тд. 

Проще всего попробовать пересоздать раздел, ошибка должна уйти. 



Кроме того, можно создать объекты необходимые для групп вручную. По принципу <Object_Code>Folder и <Object_Code>InFolder. Пример объектов можно найти в базовых пакетах.

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

Добрый день, коллеги! Хотел узнать есть ли возможность переопределить командную строку, чтобы отображать реестр КОНТАКТ не по отображаемому полю ФИО, а по полю МОБИЛЬНЫЙ ТЕЛЕФОН.

 

Попытался переопределить метод getFilters в ContactSectionV2, но при открытие переходит раздела КОНТАКТЫ он вновь сбивает и делает по ФИО. Добавил в раздел КОНТАКТЫ колонку (секцию) МОБИЛЬНЫЙ ТЕЛЕФОН, но все равно переходит на ФИО.

Пример взял отсюда:

https://community.terrasoft.ru/questions/kastomizaciya-stroki-poiska-co…

 

После попробовал переопределить первичную колонку по этому примеру, но при открытие и фильтр отрабатывает корректно, но при открытие любой карточки требует обязательного заполнения МОБИЛЬНЫЙ ТЕЛЕФОН:

https://community.terrasoft.ru/questions/komandnaya-stroka

 

Может кто-то решил подобную проблему?

 

 

 

Нравится

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

Добрый день, Алексей!

В указанном вами примере в коде переопределённого метода есть условие на выполнение фильтра 

if (emailFilter && emailFilter.includes("@")). Скорее всего следует копать именно в этом месте, поскольку вместо вашего фильтра используется базовый.  Рекомендую сделать что-то наподоби регулярного выражения на номер телефона, вместо наведённого в примере символа "@".

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

Добрый день.

 

Версия приложения: 7.15.4.3055

Установлено приложение BpmFileStorage.

При активированной системной настройки - "Использовать файловую систему как хранилище файлов", то при ответе клиенту в обращении с вложенным файлом в детали "Файлы и примечания" (Раздел Обращение) создается файл с размером 0 байт.

При этом на вкладке "Вложения" в активности, которая создается на исходящее письмо файл имеет не нулевой размер.

 

Подскажите, пожалуйста, сталкивался ли кто с данной проблемой?

Нравится

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

Ответ клиента у вас направляется скорее всего через БП. При ответе клиенту чтение файла происходит из БД. в БД у этого файла нулевой размер. Надо самостоятельно написать скрипт для чтения файлов в БП.

Аналогичная проблема у данного дополнения с другими дополнениями, например, https://marketplace.terrasoft.ru/app/downloading-files-one-archive-crea…. Так же дополнение не работает с мобильным приложением.

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

Добрый день! Есть большой интерпретируемый БП, в котором есть элемент вызова другого интерпретируемого процесса. Вот кусок:

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

А вот данные из таблицы "SysProcessElementLog":

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

Почему между БП и элементом добавления данных постоянно образовывается пауза в +-42 секунды? Как её убрать? Сам вызываемый процесс небольшой.

Паузы есть после каждого элемента вызова БП (паузы разные, где-то 2 секунды, где-то 10, а где-то и больше минуты, в зависимости от процессов и соседних элементов), возникают они уже после того как отработал БП. Есть ощущение, что это какая-то кривая сериализация (выполнился за 3 секунды, думает 42 сек). 7.15

Раньше, при использовании компилируемых процессов, такого не было.

Нравится

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

Добрый вечер, Эдуард.

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

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

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

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

Добрый день!



Может кто-то сталкивался с реализацией данной задачи.

Со стороны  Creatio и второй системы Z настраивается интеграция, но одни и те же поля по объектам им необходимо передавать друг другу. Т.е. обе системы являются мастерами. 

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



Вопрос в том, как обойти старт триггера по изменению поля в Creatio, если оно изменено из сис-мы Z?

Нравится

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

Михаил, добрый день! 



Подскажите, пожалуйста, на каком уровне происходит интеграция, опишите процесс подробнее? 

Lev Kuptsov, благодарю за проявленный интерес к оказанию помощи, но вопрос был решен

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

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



Очень хотелось бы узнать, может есть сценарий при котором можно узнать пользователя, который изменил значение интересующего меня поля?

Нравится

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

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

Михаил, для логирования изменения колонок рекомендую настроить журнал изменений в приложении. Детальнее процесс описан в статье:https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/in…



Если ранее журнал изменений не был настроен, то на данном этапе присутствует возможность только узнать пользователя, который в последний раз редактировал запись (по колонке в объекте ModifiedById).

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

Привет, пытаюсь открыть в секции по кнопке форму(через ModalBox.show), но падает ошибка, о том что не может определить ModalBox и соотвественно не вызывается метод show, т.к ModalBox не определен. ModalBox на форму добавлен.

define("OpportunitySectionV2", ["BaseFiltersGenerateModule", "PrintReportUtilities","ModalBox"],

        function(BaseFiltersGenerateModule, ModalBox) {

Нравится

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

У вас ошибка в последовательности объявлений модулей.

Попробуйте так:

define("OpportunitySectionV2", ["BaseFiltersGenerateModule","ModalBox", "PrintReportUtilities"],
        function(BaseFiltersGenerateModule, ModalBox) {

 

У вас ошибка в последовательности объявлений модулей.

Попробуйте так:

define("OpportunitySectionV2", ["BaseFiltersGenerateModule","ModalBox", "PrintReportUtilities"],
        function(BaseFiltersGenerateModule, ModalBox) {

 

Дмитрий Антохин,

Спасибо, помогло)

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

Добрый день.

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

Атрибут, созданный на детали, не работает (тут условие для теста, а так хотелось бы что-то типа NOT_EQUAL this.get("Collection").getItems() ):

"TscCategory": {

                lookupListConfig: {

                    filter: function() {

                        var filters = this.Terrasoft.createFilterGroup();

                        filters.add("TscCategoryFilter", this.Terrasoft.createColumnFilterWithParameter(

                            this.Terrasoft.ComparisonType.EQUAL, "Id", "{C3AFADA6-98A4-7BC3-E053-2E9210ACF375}"));

                        return filters;

                    }

                }

            }, 

 

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

Нравится

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

Попробуйте так:

var filters = this.Terrasoft.createFilterGroup();

var filter = filters .add("Filter01",

                                Terrasoft.createColumnInFilterWithParameters("Id",

                                ["c7a2112b-6351-4d68-b24f-9963cb0b27c9", "9e085bd0-b7a3-46dc-a76f-ed7f9b3dc9fe"]));

filter.comparisonType = Terrasoft.ComparisonType.NOT_EQUAL;

return filters;

Колногоров Роман Андреевич,

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

eduard-t,

посмотри в activityDetail метод getFilters, и переорпделели его на своей детали, если у тебя что то более сложное к примеру работа с коллекцией, то стоит использовать setFilter

Dima Avdoshin,

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

eduard-t,

Добрый день. 

Фильтр может не работать так как Вы возвращаете группу фильтров, а не один фильтр.  Для свойства filter возвращается Terrasoft.BaseFilter, для filters - Terrasoft.FilterGroup.

Более детально по ссылке.

 

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