карты
Технические вопросы
Разработка

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

Нравится

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

Проблема решилась. Ошибка возникла из-за удаления унаследованной группы "Адреса", к которой была привязана карта.

Показать все комментарии
WorkspaceConsole SVN Revision Ревизия
Технические вопросы
7.x

Добрый день!

Вопрос по BPM'Online 7.8 - существует ли техническая возможность взять с SVN-репозитория пакет определенной ревизии, например, через WorkspaceConsole?

Условно, есть на SVN пакет MyCustom, его разрабатывали, вносили изменения, делали коммиты, и сейчас он имеет ревизию, пусть, 15. Как можно загрузить в конфигурацию, скажем, 13-ю ревизию этого пакета?

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

Нравится

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

Здравствуйте, Алексей
Приложение всегда работает с последней версией пользовательских пакетов. Так уж настроен его механизм работы с SVN.
Не уверен насчет правильности подхода, который предложу, но можно попробовать настроить приложение для разработки в файловой системе, как указано в статье https://academy.terrasoft.ru/documents/technic-sdk/7-8-0/rabota-s-serve…
Тогда исходный код схем из SVN будет выгружаться в папку
[Путь к каталогу с установленным приложением]\Terrasoft.WebApp\Terrasoft.Configuration\Pkg\[Имя пакета]
Затем используя, например, Tortuise откатить пакет до нужной ревизии. Скопировать файлы с исходным кодом в отдельный каталог. Вернуть пакет в актуальную ревизию. Заместить файлы с исходниками в скопировнными ранее.
Возможно, получится не только с файлами с исходным кодом, но и с j-son файлами схем, надо пробовать.
Возможно, простое замещение файлов не поможет, и придется переносить содержимое файлов. Надо пробовать.
Надеюсь, мой ответ хоть как-то проможет.

PS поскольку рабочая ширина сайта академии очень маленькая, то содержимое таблиц читается не во всех браузерах. Просто скопируйте содержимое статьи в MS Word, например.

Роман, спасибо большое за Ваш ответ! Буду пробовать.

Единственный теоретический вариант, который приходит на ум, это взять и скопировать нужную ревизию в новую, средствами svn(в данном случае в 16 скопировать 13). А новая ревизия отобразится в конфигурации.
Только это неправильно идеологически конечно и нужно тестировать.

Алексей, можно узнать, у Вас что-нибудь получилось?

"Роман Симута" написал:Тогда исходный код схем из SVN будет выгружаться в папку

Там не будет метаданных да и структура банально не та что в SVN.
В 7.10 вроде как появился нормальный экспорт/импорт пакетов в ФС, но пока еще пишут доку, обещали через 3 недели (неделю назад) :)
По сути вопроса - единственный нормальный способ - такой:
В SVN репе делаете чекаут нужной ревизии в отдельную папку в branches
потом искомую папку (как правило номер версии платформы, н/п 7.9.0) переименовываете в скажем 7.9.0_old
а каталог с чекаутом нужной ревизии в искомый 7.9.0
Ну и потом обновляете пакет из конфигуратора (Это если надо обновить установленный)
Если надо просто засетапить конкретную ревизию - то прям каталог чекаута назовите как ни будь "7.9.1" ну и при установке пакета выбирайте в дропдауне "Версия пакета"

Показать все комментарии
источник лида
маркетинг
Технические вопросы
7.x

Добрый день!

bpm'online marketing прекрасно отслеживает источник лида, если переход с другого сайта перешел прямо на Landing. Однако, если посетитель пришёл на наш сайт, погулял по нему, а затем попал на Landing, то источником становится уже сам наш сайт.

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

Спасибо!

Нравится

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

Добрый день!

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

solut.lv – только что в техподдержку послал картинки с доказательствами.

"Мария Ватулина" написал:

Добрый день!

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

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

В рамках обращения №0342850 было предоставлено решение.

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

Показать все комментарии
filter set
select query
представление реестра
Технические вопросы
Разработка

Доброго времени суток, коллеги!

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

Т.е. работают 4 фильтра в наборе объединенные оператором AND:
1) Проверяется, что статус ≠ выполнена;
2) Проверяется, что поле “Документ” не пусто;
3) Проверяется существование указанном в задаче документе наличие положительной визы руководителя направления;
4) Проверяется отсутствие в данном документе виз с пустым полем “Установил” или неположительным результатом визирования.

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

а) Включены все фильтры – кол-во записей в представлении 14;
б) Включены фильтры 1 и 2 и 3 – кол-во записей в представлении 14;
в) Включены фильтры 1 и 2 и 4 – кол-во записей в представлении 20;
г) В ситуации, когда включен только 3 фильтр - кол-во записей в представлении 0 (НОЛЬ!);

И это при указанном в наборе фильтров параметре AND. Т.е. получается, что мы смягчаем условия поиска, а получаем меньшее кол-во записей.

Может кто-то сталкивался с подобным и сможет подсказать, в чем дело.

Нравится

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

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

Показать все комментарии
combobox
Технические вопросы
7.x

Здравствуйте!
Добавил в деталь Платежные реквизиты, свойство "Основной", чтобы в Счете при выборе Контрагента по умолчанию подставлялся реквизит с признаком Основной.
Как получить я понял:

var esq = Ext.create('Terrasoft.EntitySchemaQuery', {
                                                rootSchemaName: "AccountBillingInfo"
                                        });
                                        esq.addColumn("Account");
                                        esq.addColumn("qrtIsMain");
                                        esq.addColumn("Name");
                                        esq.filters.add("AccId", Terrasoft.createColumnFilterWithParameter(
                                                Terrasoft.ComparisonType.EQUAL, "Account", this.get("qrtAccount").Id));
                                        esq.filters.add("IsMain", Terrasoft.createColumnFilterWithParameter(
                                                Terrasoft.ComparisonType.EQUAL, "qrtIsMain", true));
                                        esq.getEntityCollection(function(result) {
                                                if (result.success) {
                                                        Terrasoft.each(result.collection.getItems(), function(item) {
                                                                //self.set("qrtClientBilling", item.get("Id"));
                                                                //self.setValue("qrtClientBilling", item.get("Id"));
                                                        });
                                                }
                                        });

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

Нравится

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

Для того чтобы установить новые значения для колонки записи (объекта) из клиентской части приложения необходимо использовать Terrasoft.InsertQuery. К сожалению, статьи по добавлению данных в конфигурационных схемах в документации разработчика пока нет.
Единственный пример, который может вам помочь, приведен в статье по созданию детали с выбором из справочника. Правда здесь используется пакетный запрос, аггрегирующий несколько запросов InsertQuery.
Стаья находится здесь:
https://academy.terrasoft.ru/documents/technic-sdk/7-8-0/sozdanie-detal…

Обратите внимание на этот кусок кода из примера

                // Добавление выбранных продуктов.
                addCallBack: function(args) {
                    // Экземпляр класса пакетного запроса BatchQuery.
                    var bq = this.Ext.create("Terrasoft.BatchQuery");
                    var OrderId = this.get("MasterRecordId");
                    // Коллекция выбранных в справочнике документов.
                    this.selectedRows = args.selectedRows.getItems();
                    // Коллекция, передаваемая в запрос.
                    this.selectedItems = [];
                    // Копирование необходимых данных.
                    this.selectedRows.forEach(function(item) {
                        item.OrderId = OrderId;
                        item.DocumentId = item.value;
                        bq.add(this.getDocumentInsertQuery(item));
                        this.selectedItems.push(item.value);
                    }, this);
                    // Выполнение пакетного запроса, если он не пустой.
                    if (bq.queries.length) {
                        this.showBodyMask.call(this);
                        bq.execute(this.onDocumentInsert, this);
                    }
                },
 
                //Возвращает запрос на добавление текущего объекта.
                getDocumentInsertQuery: function(item) {
                    var insert = Ext.create("Terrasoft.InsertQuery", {
                        rootSchemaName: this.entitySchemaName
                    });
                    insert.setParameterValue("Order", item.OrderId, this.Terrasoft.DataValueType.GUID);
                    insert.setParameterValue("Document", item.DocumentId, this.Terrasoft.DataValueType.GUID);
                    return insert;
                },

Всем спасибо за помощь, всё получилось...

"Владимир Соколов" написал:

Здесь я давал решение:

http://www.community.terrasoft.ua/forum/topic/21807

... отдельное спасибо за пример

Показать все комментарии
задачи расписание
Технические вопросы
7.x

Добрый день.

Может кто сталкивался. По умолчанию в расписании стоит фильтр "Ответственный". Соответственно автор активности не видит поставленные задачи сотрудникам.

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

Спасибо.

Нравится

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

Добрый день!

Фильтр по ответственному на самом деле выполняет фильтрацию по детали "Участники" активности.

Соответственно для того, чтобы автор увидел активности, добавьте его в участники.

Если же Вы в любом случае хотите модифицировать базовый преднастроеный фильтр, пример находится ниже:
https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/kak-dobavit-v-…

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

Здравствуйте, Юлиан!

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

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

Здравствуйте.
Наш директор зарегистрировался как клиент в нашу систему bpmonline на свою робочую почту. И теперь все письма, которые он шлет менеджерам просто по Gmail и не относятся к работе bpmonline, видно если зайти через админа в bpmonline. Директор не хочет, чтобы его почту могли читать сотрубники компании. Как сделать так, чтобы его переписка не подтягивалась в карточку его контакта в историю в Email?

Нравится

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

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

Реализовано в версии 7.8.0 - деталь Email на странице редактирования раздела "Контакты" скрывается, если у контакта тип "Сотрудник" или тип контрагента контакта "Наша компания".

Таким образом переписка между двумя сотрудниками скрыта.

Показать все комментарии
SysAdminUnitInRole
Технические вопросы
7.x

Добрый день. Подскажите пожалуйста, как можно обойти доступ к SysAdminUnitInRole. Я обращаюсь к базе данных для того чтобы узнать состоит ли наш пользователь в определенной группе. Если такой имеется, то отрабатывает флаг с помощью которого потом отрабатывает отдельная логика. Но такой подход не срабатывает с таблицей SysAdminUnitInRole. (Проверял на другой таблице OrderProduct все отработало).

setCurrentUserGroup(){
var roleId = "CB438514-6C60-4500-B9C7-CE9F60822088"
var currId = Terrasoft.SysValue.CURRENT_USER.value;
var select = this.Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "SysAdminUnitInRole"
});
select.addColumn("Id");
var filterId = select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", currId);
select.filters.add("FilterId", filterId);
var filterGroupId = select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "sysAdminUnitRole", roleId);
select.filters.add("FilterGroupId", filterGroupId);
var that = this;
select.getEntityCollection(function(result) {
// берем результаты выборки
if (result.success){
var collection = result.collection;
if (collection.getCount()){
that.set("IsSecurity", false);
}
}
}, this);
}

Нравится

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

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

Посмотрите пример из базовой конфигурации:
http://www.community.terrasoft.ru/forum/topic/11726#comment-51431

"Безродный Андрей" написал:

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

Посмотрите пример из базовой конфигурации:

http://www.community.terrasoft.ru/forum/topic/11726#comment-51431


Огромное спасибо.

Показать все комментарии
7.6
Enabled
rules
организационные роли
Технические вопросы
7.x

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

Есть задача скрыть редактирование поля страны в детали по организационным ролям(супервайзер, руководители, менеджеры), закрыть право на редактирование для менеджеров.
Пробывал разные варианты через конфигурацию и добавления правил, все равно не работает.
Версия bpm7.6.

Как лучше мне это сделать?

Нравится

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

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

Вы можете видимость поля задать бизнес правилом. Параметр видимости будет определяться в момент открытия страницы редактирования (Вам необходимо переопределить метод onEntityItialized()). Замещенный метод onEntityItialized() должен вызывать родительский, а также проверять вхождение пользователя в роли (используйте ESQ по объекту SysAdminUnitInRole). Обратите внимание, что один пользователь может входить в несколько ролей.

Сформировал запрос к таблице SysAdminUnitInRole по своей Id

SELECT *
FROM            dbo.SysAdminUnit sa LEFT JOIN
                         dbo.SysAdminUnitInRole saur ON sa.Id = saur.SysAdminUnitId
WHERE sa.Id = 'мой Id'

Вернуло 3 строки - это означает, что в меня есть 3 роли?

Да, это значит что Администратор с sa.Id = 'мой Id' входит в три роли
Если вы выполните

SELECT saur.SysAdminUnitId, saur.SysAdminUnitRoleId
FROM            dbo.SysAdminUnitInRole saur
Where saur.SysAdminUnitId = 'мой Id'

То увидите айдишники ролей

Спасибо за подсказку, пытался вывести название ролей:

SELECT saur.SysAdminUnitId, saur.SysAdminUnitRoleId, s.Name
FROM            dbo.SysAdminUnitInRole saur Left JOIN
                         dbo.SysAdminUnit s ON saur.SysAdminUnitId = s.Id
WHERE saur.SysAdminUnitId = 'мой Id'

Результат имя моего контакта. Может я неправильно делаю?

так ваш запрос и выводит имя контакта из s.Name (SysAdminUnit)

можно сделать так

select s.Name 
from SysAdminUnit s
where s.id in (
select saur.SysAdminUnitRoleId
from dbo.SysAdminUnitInRole saur
where saur.SysAdminUnitId = 'мой Id'
)

Вот только одна запись похоже тоже будет вашим контактом, т.к. есть соответствие одинаковых id в SysAdminUnitInRole

Показать все комментарии
Технические вопросы
7.x

Добрый день!
Вопрос простой: каким образом можно отобразить текущее значение параметра бизнес-процесса пользователю? Например, у меня есть параметр с именем CurrentSum и я хочу в диалоговом окне отобразить его пользователю на некотором шаге процесса. Каким образом можно это сделать? Заранее признателен

Нравится

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

Добрый день!

Параметр процесса можно передать с помощью элемента Формула в любой удобный параметр другого элемента.
Это может быть автогенерируемая страница с текстовым полем, этом может быть параметр [Подсказка пользователю] в элементе Страница редактирования/Выполнить задачу/Вопрос пользователю.

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