Добрый день!

В бизнес-процессе у меня имеется параметр типа Справочник MyEmail со значением по умолчанию и задание-сценарий. Могу ли я методом Get не выполняя esq-запроса передать в задание-сценарий в виде строки это значение по умолчанию? При прямом обращении передает только Guid справочника. Спасибо!

Нравится

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

Михаил, Вы можете добавить элемент чтение данных и вычитать значение Name из справочника по Id и присвоить его в параметр БП в элементе формула. Потом использовать c Get.

Или же в другой параметр процесса внести значение поля Name по умолчанию и работать с ним через Get.

Нет, так как в исходном коде параметры с типом "Справочник" и "Уникальный идентификатор" имеют тип Guid. 

Михаил, Вы можете добавить элемент чтение данных и вычитать значение Name из справочника по Id и присвоить его в параметр БП в элементе формула. Потом использовать c Get.

Или же в другой параметр процесса внести значение поля Name по умолчанию и работать с ним через Get.

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

Есть ли возможность запретить создавать пользователю группы в разделах? Не смог найти в академии по этому поводу ответа, может пропустил что-то

Нравится

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

Добрый день!

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

Добрый день!

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

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

не помогает, на Supervisor проверил

Александр Тыра,

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

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

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

Допустим руководитель входит в раздел, у него есть группа по его филиалу, и он видит только свой филиал так как может просматривать только эту группу.

Знаю что можно через настройки "Прав доступа", но там есть нюанс по которой эта настройка не дает возможности сделать нужное, а вот с группами выходит как нужно, но вот вопрос по видимости

Нравится

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

Александр Тыра,

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

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

Уточните, какой нюанс мешает настроить доступ через права доступа?

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

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

Кроме жирного курсива можно ещё КАПСОМ писать, чтобы заметнее было.wink

Александр, Вы описываете бизнес-логику системы. Всю видимость или невидимость конкретных записей конкретному пользователю задаётся раздачей прав на записи. Их можно выдавать вручную или запрограммировать логику выдачи при помощи бизнес-процесса. Например, при добавлении лида в группу (добавление записи в таблицу LeadInFolder) добавлять или убирать право на чтение или запись на этот лид нужной группе пользователей.

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

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

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

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

вот и я не вижу, жалко

Александр Тыра,

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

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

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

в правах доступа вижу сколько настройки доступа только по колонке "кто создал" и "кому дано право". Если имеете введу " доступ по объектам в конфигураторе.

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

Конфигуратор тут не нужен, права на конкретную запись настраиваются по действию в карточке.

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

но это руками нужно править

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

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

​​​​​​это заказчик). Хотят что бы сразу все

Если хотят, чтобы видели сразу все, пусть добавят доступ группе «Все пользователи». Если хотят ограничивать, нужно выдавать другие права доступа на записи. Их можно выдавать либо вручную из интерфейса, либо различными способами программно.

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

Добрый день.

Дано:

Есть объект Candidate, входящий в сторонний пакет SX. В свойствах объекта создано событие CandidateInserted. В процессе сделано одноимённое сообщение CandidateInserted и идёт обработка в задании-сценарии.

Есть объект Candidate, входящий в пакет BP (пакет моей компании), родительский объект которого находится в пакете SX.

Всё работает.

Надо:

В пакете SX перенести логику из задания-сценария в метод, а в пакете BP переопределить этот метод.

Что сделал:

В пакете SX в объекте Candidate создал метод OnCandidateInserted, куда перенёс весь код из задания сценария.В задании сценарии написал код:

OnSxCandidateInserted();

return true;

В пакете BP в объекте Candidate создал метод OnCandidateInserted. Напротив "Переопределён" поле выбора недоступно.

Что я делаю неправильно?

Где в документации можно прочитать про переопределение методов процесса объекта?

Нравится

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

Добрый день!

В объекте пакета BP не нужно создавать новый метод. Нужно опубликовать объект в пакете SХ, после чего метод будет виден в объекте пакета BP. Вот его и нужно переопределять: ставить галочку

Добрый день!

В объекте пакета BP не нужно создавать новый метод. Нужно опубликовать объект в пакете SХ, после чего метод будет виден в объекте пакета BP. Вот его и нужно переопределять: ставить галочку

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

Так вышло что пришлось быстро в пакете Customer создавать бизнес процессы что бы подправить ошибки тех что в пакетах кинфирурации. И сейчас на этих процессах весят задачи. Как можно эти процессы убрать из пакета Customer? Если просто изменить процессы в которых были ошибки (версии которые замещали процессы в пакете Customer) и удалить временные - то задачи созданные версией процесса в пакете Customer так же удалятся с ним

Нравится

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

Добрый день,

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

Добрый день,

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

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

Добрый день.

Подскажите, пожалуйста, наиболее удобный способ конвертации из DOC/DOCX в RTF и обратно.

Желательно без дополнительного подключения внешних библиотек.

Спасибо!

Нравится

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

Без внешних сборок навряд ли получится разве что дергать онлайн сервисы наподобии google docs или microsoft office online. 

Без внешних сборок навряд ли получится разве что дергать онлайн сервисы наподобии google docs или microsoft office online. 

Григорий Чех,

Понятно. Спасибо.

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

Добрый день !

Существует 2 объекта: Проект и Контрагент. Контрагент и Проект содержат в себе справочное поле "Отрасль".  Также в Проекте заполняется поле Контрагент.

Хочу создать Бпроцесс, устанвливающий значение поля Отрасль в Проекте, если заполнить Контрагента, значением поля Отрасль из контрагента. Но зашла в тупик.

При чтении данных разрешено читать данные поля Проект: Отрасль, Контрагент и id. а как считать значение поля Отрасль в контрагенте ? Если добавить новый элемент для чтения данных контрагента, то как указать, что читать следует лишь в том контрагенте, который используется в проекте с данным id (id проекта который был изменен в данный момент) ?

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

 

Нравится

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

Добрый день!

Ваш процесс должен выглядеть так:







Создала бизнес процесс по примеру из статьи: https://academy.terrasoft.ru/documents/technic-bpms/7-14/kak-chitat-dannye-zapisi-drugogo-obekta   но после запуска процесса ничего не происходит.. ни при создании проекта, ни при изменении. Можно ли где то найти, в чем проблема ?

Здравствуйте. Сначала читаете данные контрагента (либо всех колонок либо необходимых) фильтруя по id из стартового сигнала, берете элемент - http://prntscr.com/o6ffgh

Как то так.

Я бы сделал на событийном слое кодом.

Добрый день!

Ваш процесс должен выглядеть так:







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

Александр, большая Вам благодарность !  Подправила свой процесс, добавив фильтрацию по id как на Вашем примере ! БПроцесс заработал !

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

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

Подскажите это нормально? Можно ли изменить матрицу без создания замещающих объектов?

И еще вопрос - как можно матрицу ролей зашить в пакет и выгрузить?

Нравится

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

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

Либо настройку прав можно перенести через привязку данных. Но это при условии, что у вас есть бекап БД с прода со всеми учетками/группами, т.е. в пакете идет привязка ид групп.

Добрый день! Матрицу ролей можно прописать sql скриптом

Добрый день,

Не замечал такого поведения при изменении ролей. А что за объект у вас создается в кастоме?

 

Тёскин Дмитрий Валерьевич,

Создается объект тот в для которого меняются права (к примеру если меняем доступы для "Контакты" то создается объект "Contact" унаследованный)

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

Либо настройку прав можно перенести через привязку данных. Но это при условии, что у вас есть бекап БД с прода со всеми учетками/группами, т.е. в пакете идет привязка ид групп.

Александр Тыра,

Судя по всему, это стандартное поведение - при активации прав доступа, действительно создается замещающий объект в пакете custom с соответствующими изменениями. Можно перенести эти объекты в ваши пользовательские пакеты и перенести на прод, что бы там они не создавались.

Трефилов Павел Сергеевич,

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

Тёскин Дмитрий Валерьевич,

вяше описал поведение если сделать на Dev и перенести на prod пакет то система ругается что не может изменить пакет в итоге только остается пакет Custom. Неужели матрица только так запоминает изменения?

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

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

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

Не подскажете, есть ли возможность в серверном коде сформировать стандартную строку подключения к SQL Server, используя данные из UserConnection? Нужно динамически сформировать и выполнить сложный запрос, и штатными средствами BPM Online никак не получается подступиться к этой задаче.

Нравится

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

Для таких целей можно использовать CustomQuery в примере ниже sql текст вашего sql

var userConnection = Get<UserConnection>("UserConnection");
string sql =" ......."; 
 
CustomQuery myQuery = new CustomQuery(userConnection);
myQuery .SqlText = sql;
using (DBExecutor dbExecutor = userConnection.EnsureDBConnection())
{
    dbExecutor.CommandTimeout = 0;
    myQuery .Execute();
}
 
return true;

 

Для таких целей можно использовать CustomQuery в примере ниже sql текст вашего sql

var userConnection = Get<UserConnection>("UserConnection");
string sql =" ......."; 
 
CustomQuery myQuery = new CustomQuery(userConnection);
myQuery .SqlText = sql;
using (DBExecutor dbExecutor = userConnection.EnsureDBConnection())
{
    dbExecutor.CommandTimeout = 0;
    myQuery .Execute();
}
 
return true;

 

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

Добрый день!

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

Есть расчетный показатель (a-b). Надо сделать a-b-c-d. Как?

 

Спасибо!

Нравится

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

Есть дополнение «Calculated metrics for bpm'online» с большим разнообразием вариантов. Если и так пробуете в нём и нужного нет, то нужно смотреть в схемах, из которых сделан пакет, как именно выбирается вариант из списка и считает по нему, можно ли добавить свой.

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

Александр, я это дополнение и использую. Просто нет описания как добавить дополнительную формулу...

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

Курятов,

Добрый день! А как вы настраивали это приложение? Что нужно сделать после установки, чтобы расчётные показатели были более продвинутые? Описание в самом приложении очень размытое:

При условии наличия на сайте замещения модуля BootstrapModulesV2 (например, в установленных решениях Calculated charts for bpm'online или Map widget for bpm'online) требуется дополнительная настройка. В пакете Custom необходимо добавить "Замещающий клиентский модуль" > выбрать в поле "Родительский объект" - "BootstrapModulesV2" > в исходный код в квадратные скобки объединить содержимое всех существующих замещений модуля BootstrapModulesV2, сохранить изменения.

А зачем вы используете курсив?

Указанные инструкции не для того, чтобы сделать показатели ещё продвинутее, а чтобы совместить это дополнение с рядом уже установленных других. И не факт, что такое можно сделать на современных версиях системы с учётом запрета замещений модулей в 7.13+.

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

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

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

Курсив включается и выключается по кнопке «I» или по Ctrl+I, всё аналогично с жирным.

Для начала просто установить и проверить, работает ли. Судя по тому, что в описании приложения указана версия 7.11, а сейчас актуальна 7.14, оно может быть недостаточно адаптировано под неё. Если у Вас используется именно такая версия, дело может быть в этом. Лучше обратиться к авторам дополнения, уточнить у них, есть ли поддержка Вашей версии и планируется ли, если ещё нет.

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

да, спрошу у них.

Спасибо про справку по курсиву, но это не работает. Неужели вы думаете, что я не пробовала?) Если это вам интересно, то если нажать "ответить", потом "backspace" до имени при ответе, текст становится курсивным, и нажатием на указанные кнопки курсив не отключается. Если бы это было можно, я бы сразу это сделала. Сейчас пишу не курсивом, потому что в этот раз не стирала текст до вашего имени. К слову, это делалось тоже не намеренно, а случайно. Возможно, в других браузерах этой проблемы нет.

Да, действительно, с курсивом при цитировании так себя ведёт, спасибо.

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