Вопрос:

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

Ответ:

Для реализации данной задачи можем предложить воспользоваться функционалом бизнес-процессов в нашем приложении. Достаточно будет создать процесс со следующими элементами:

- стартовый сигнал на "Изменение записи" в объекте "Контрагент";

- чтение данных поля "Ответственный" из объекта "Контрагент", у которого id равен тому параметру, который был записан стартовым сигналом;

- изменение данных у всех записей объекта "Контакт", у которых контрагент равен тому параметру, который был записан стартовым сигналом.

Перед реализацией процесса настоятельно рекомендуем ознакомиться с документацией по дизайну и реализации процессов в нашем приложении. Большое количество статей по этому вопросу есть на Академии:

https://academy.terrasoft.ru/documents/technic-bpms/7-12/dizayner-processov

https://academy.terrasoft.ru/documents/technic-bpms/7-12/sozdanie-biznes-processov

Нравится

Поделиться

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

Вопрос:

Есть кастомная сущность КоммерческоеПредложение (КП), у которой есть связная сущность ПродуктКП (связь 1:N)

В сущности Счет есть справочное поле, которое смотрит на Продажу. У Продажи есть аналогичное поле на КП. Также у Счета есть связная сущность ПродуктВСчете (1:N)

При проставлении ссылки на Продажу у Счета запускается БП, в котором необходимо перетянуть ПродуктыКП в ПродуктыВСчете

Для этого используется блок БП Добавить данные с режимом добавления данных как «Добавить результат выборки». В этом блоке мы выбираем все ПродуктыКП по заданному условию фильтрации: КП = Читать продажу.Первый элемент результирующей коллекции.Основное КП.

Этот блок не работает и продукты не перетягиваются.

Как сделать правильно?

 

Ответ:

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

1. Процесс запусается по сигналу изменения счета (заполнение поля продажа).

2. Читать данные счета.

3. Читать данные продажи (из счета).

4. Добавить данные в продукт в счете .

    4.1 Добавить результат выборки.

    4.2 Выборка по объекту Продукт  в КП .

    4.3 Фильтр: Комерческое предложение = Комерческое предложение из продажи (из пункта 3).

    4.4 Какие значения колонок установить:

        Счет = счет из сигнала или чтения данных 

        Продукт = результат выборки.продукт

Нравится

Поделиться

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

Вопрос

Как добавить ссылку на свой сайт в панели разделов?

Ответ

1) Cоздать новый раздел.

2) В схеме страницы нового раздела (например, UsrNewSection) добавить метод в секцию методов:

methods: {
init: function() {
      window.location.replace("http://stackoverflow.com");
   }
},

 

Нравится

Поделиться

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

Вообще, публикация таких Q&A - это прям отличная идея! В недрах службы поддержки явно накопилась куча полезной информации по интересным запросам в целом.

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

Вопрос:

Имеется ли возможность изменять статус обращения(-ий) с помощью бизнес-процесса и, если можно, то как это осуществить?

Ответ:

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

1. Процесс запускается по сигналу:

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

2. Для обращения, в котором была изменена колонка 'Время разрешения' меняем состояние на 'В работе' в соответствии со значением справочника 'Состояния обращений'

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

С документацией по построению бизнес процессов можно ознакомиться здесь: https://academy.terrasoft.ru/documents/technic-bpms/7-12/elementy-proce…

Нравится

Поделиться

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

Вопрос:

Мы создали бизнес-процесс, в котором документ должен быть завизирован несколькими пользователями. Документ отправляется одновременно всем визирующим. 

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

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

Это признак того, что договор не прошел через какого либо участника визирования...

Ответ:

Как вариант, для реализации данного кейса, можно использовать генератор сигналов.

Пример бизнес процесса: 

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



В данном примере использован элемент "Исключающее “ИЛИ” по событиям"



Его подробное описание: https://academy.terrasoft.ru/documents/technic-bpms/7-12/element-proces…

Для корректного использования данного элемента рекомендуется ознакомиться со статьей по промежуточным событиям на Академии: https://academy.terrasoft.ru/documents/technic-bpms/7-12/elementy-proce…



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

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

Нравится

Поделиться

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

Вопрос

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

Ответ

Вы можете реализовать эту бизнес-задачу, используя функционал элемента "Изменить данные". Для этого Вам необходимо:

1. Перейти в дизайнер кейсов и добавить подпроцесс (см. скриншот_1). Более подробно функционал элемента "Подпроцесс" описан на Академии: https://academy.terrasoft.ru/documents/technic-bpms/7-12/element-keysa-podprocess

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

2. В БП добавить элемент «Вопрос пользователю», и добавить варианты ответов. После чего добавить условные потоки с привязкой ответа. Более подробно функционал элемента "Условные потоки" описан на Академии:https://academy.terrasoft.ru/documents/technic-bpms/7-12/uslovnyy-potok



3. Добавить элемент "Изменить данные", где указать изменение состояние нужного объекта подпроцесс (см. скриншот_2). Более подробно функционал элемента "Изменить данные" описан на Академии: https://academy.terrasoft.ru/documents/technic-bpms/7-12/element-processa-izmenit-dannye

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

 

Нравится

Поделиться

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

Вопрос:

Можно ли настроить отправку email в кейсе так, чтобы присылалась ссылка на запись, по которой стартовал кейс? 

Ответ:

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

Алгоритм построения процесса:

0. Создать параметр процесса с типом Уникальный идентификатор, условно, OpportunityId.

1. Создать параметр процесса с типом Текст, условно, Body.

2. Читать данные Продажа, id = Параметр процесса.OpportunityId

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

4. Отправить Email, режим отправления = Произвольное письмо, в редакторе сообщения добавить блок Текст и с помощью молнии вставить параметр процесса.

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

5. Сохранить процесс

6. В Кейсе раздела добавить шаг подпроцесс, в Параметры процесса OpportunityId = Колонка основной записи.Id

Нравится

Поделиться

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

Вопрос

Как из детали Адреса получить что-то со страницы контрагента. Например, вызывать какую-то функцию или узнать  что в том или ином поле (например, название) или узнать состояние поля (enabled)?

Ответ

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

Например, Вы можете в реализации метода init() кода детали выполнить подписку на сообщение ReloadDetail примерно так:

this.methods.init = function() {
 ...
 this.sandbox.subscribe("ReloadDetail", function(customArgs) {
 // выполнение действий с аргументами функции
 }, [this.sandbox.id]);
}

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

this.methods.myAction = function() {
 Terrasoft.each(this.entitySchemaInfo.details, function(detailInfo) {
 if (detailInfo.name === "addresses") {
 sandbox.publish("ReloadDetail", this, [detailInfo.moduleId]);
 }
 }, this);
}

Передача this в качестве параметра при публикации обеспечивает доступ к объекту карточки в детали, а также ко всем его атрибутам, методам и т.д. - этот объект будет передан в параметре customArgs. Вместо this можно передать предварительно сформированный набор из только необходимых данных.

Сообщение ReloadDetail создавать не нужно, оно уже есть в базовых модулях карточки и детали.

Очень желательно до этого момента уже получить значения необходимых условий, так как после выполнения getCustomItemView() управление передаётся в модуль базовой детали (DetailModule), в котором уже выполняется привязка модели к представлению и рендеринг детали.

Нравится

Поделиться

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

Вопрос

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

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

Ответ

Вам необходимо заместить метод getCellControlsConfig из схемы ConfigurationGridUtilities. За функционал отображение справочного поля как ссылочного отвечает строка config.showValueAsLink = false; которая в базовой реализации всегда устанавливается в false

Нравится

Поделиться

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

Вопрос

Есть некий объект – положим, контрагент, у которого есть параметр 1, параметр 2, параметр 3. У этого объекта есть деталь, в которой отображаются записи этого же типа объекта, например, контрагенты, у которых выполняется условие «параметр 1 + параметр 2 соответствуют основной записи», «параметр 2 + параметр 3 соответствуют основной записи», «параметр 1 + параметр 3 соответствуют основной записи». В детали можно фильтровать по нескольким колонкам. Но вот как сделать UNION, т.е. «просуммировать» несколько таких независимых наборов фильтров?

Ответ

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

Пример реализации можно увидеть в схеме AccountPageV2 (пакет UIv2) – фильтр  emailDetailFilter .

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

Необходимо реализовать пользовательский метод, который будет содержать «filterGroup» (например, «emailDetailFilter») и затем этот метод добавить необходимой сущности.

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

filterGroup имеет по умолчанию условие «И». Если необходимо использовать условие «ИЛИ», то необходимо добавить свойство

filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.OR

Пример изображен ниже

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

 

Нравится

Поделиться

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