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

Нравится

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

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

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

Добрый день!

Вопрос по 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" ну и при установке пакета выбирайте в дропдауне "Версия пакета"

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

Добрый день!

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

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

Спасибо!

Нравится

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

Добрый день!

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

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

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

Добрый день!

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

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

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

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

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

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

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

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

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

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

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

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

Нравится

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

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

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

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

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

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

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

Добрый день.

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

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

Спасибо.

Нравится

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. Я обращаюсь к базе данных для того чтобы узнать состоит ли наш пользователь в определенной группе. Если такой имеется, то отрабатывает флаг с помощью которого потом отрабатывает отдельная логика. Но такой подход не срабатывает с таблицей 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


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

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

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

Есть задача скрыть редактирование поля страны в детали по организационным ролям(супервайзер, руководители, менеджеры), закрыть право на редактирование для менеджеров.
Пробывал разные варианты через конфигурацию и добавления правил, все равно не работает.
Версия 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

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

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

Нравится

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

Добрый день!

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

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