Добрый день

Добавил пользовательские системные настройки.

Пытаюсь в схеме карточки Обращения Портала получить значение системных настроек.

Terrasoft.SysSettings.querySysSettingsItem(
   "test1", 
   function(value){
     console.error(value);
   }, 
this);

В рабочем месте пользователя портала в консоли получаю "undefined"

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



Флаг "Разрешить для пользователей портала" в системных настройках установлен. Хотя он на первый взгляд ни на что не влияет. Т.к. на стороне портала свободно получаю значение системных настроек без этого флага.

Разграничения прав доступа к системным настройкам нет

Версии 7.11.0 - 7.11.3

 

Нравится

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

иииии ещё есть справочник, который регулирует доступ портальных пользователей на объекты. А поскольку "сист. настройка" и "значение сист. настройки" - 2 объекта в системе, то я бы их тоже добавил в перечень(ну или посмотрел, есть ли они там вообще)

Варфоломеев Данила,

Так в том и проблема, что большая часть значений системных настроек получить указанным способом получается на стороне портала

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

Запрос в браузере возвращает результат нормально https://goldcoachcrm.bpmonline.com/0/ServiceModel/EntityDataService.svc…)

а вот если делать его на php curl  используя функцию http://prntscr.com/i5xuim тогда получаем вместо ответа ОШИБКУ

https://goldcoachcrm.bpmonline.com/0/ServiceModel/EntityDataService.svc…)



Bad Request


Bad Request


HTTP Error 400. The request is badly formed.


 

С чем это может быть связано и как это обойти?

Нравится

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

Добрый день. Посмотрите отправленные запросы через Fiddler и сравните их.

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

Доброго времени суток.

При нажатии на кнопку "Загрузить лицензии" в менеджере лицензий появляется ошибка "Элемент Настройка с кодом 'CustomerID' не найден". В таблице SysSettings настройка с таким кодом есть. При попытке загрузить файл с лицензией ошибка "Ошибка загрузки лицензий". В чем может проблема?

Заранее благодарен.

Нравится

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

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

Ошибка исправлена на более поздних версиях, в вашем случае нужно выполнить скрипт на строне БД:

UPDATE SysSettingsValue SET IsDef = 1 

WHERE SysSettingsId = (SELECT Id FROM SysSettings WHERE Code = 'CustomerId') 

AND SysAdminUnitId = 'A29A3BA5-4B0D-DE11-9A51-005056C00008'

 

Сергей Кy6риш,

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

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

При создании нового раздела, через мастер разделов, выдается ошибка. Прошу помочь. Текст ошибки: Отказано в доступе по пути "C:\inetpub\wwwroot\bpmonline\Terrasoft.WebApp\conf\content\UsrErrandFile.js".

Спасибо.

Нравится

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

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

Данная ошибка возникает по причине того, что не розданы права на запись в папку .\Terrasoft.WebApp\conf пользователю пула IIS.

Если у Вас сайт развернут on-demand, для устранения ошибки обратитесь с службу технической поддержки по адресу support@terrasoft.ru.

Если у Вас сайт развернут on-site, обратитесь, пожалуйста, к Вашему системному администратору с запросом на раздачу прав на запись в папку .\Terrasoft.WebApp\conf пользователю пула IIS.

Одеяненко Юлия,

Юлия, всё исправили. Спасибо.

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

7.11(OnSite)

Задача вывести, значение агригирующей функции COUNT.(Т.е тупо - кол-во записей из таблицы) по правильному

Щас делаю по топорному(count++ при переборе коллекции):

 var esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {rootSchemaName: "Lead" });
 
                  esq.addColumn("Id");
                  esq.addAggregationSchemaColumn("Id", Terrasoft.AggregationType.COUNT, "ID", Terrasoft.AggregationEvalType.ALL);
                  var esqFirstFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrINN", INN);
                  esq.filters.add("esqFirstFilter", esqFirstFilter);
 
                  // this.showInformationDialog("message");
                     esq.getEntityCollection(function (result) {
                     	     window.console.log("Ответ сервера: "+result);
                     	  	 window.console.log(result);
                            if (!result.success) {
                              // обработка/логирование ошибки, например
                               this.showInformationDialog("Ошибка запроса данных");
 
                               return;
                            }
 
                             var count = 0;
                             result.collection.each(function (item) {
                               count++;
                             });
                               this.showInformationDialog(count);
                     }, this);

 

Также работает вот такой способ:

 this.showInformationDialog(result.collection.collection.length);

 

Нравится

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

либо

esq.addAggregationSchemaColumn("Id", Terrasoft.AggregationType.COUNT, "CountAll");

и никакие столбцы больше не добавлять.

Вернётся 1 запись, result.collection.collection.items[0].get("CountAll")



либо

result.collection.getCount() в вашем варианте

Спасибо

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

7.11(OnSite)

Народ, помогите.

В разделе "Лиды", у меня есть справочник стадий и его проекция в виде кейсов.

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

Пример:

Справочник{значение:Квалификация}

Кейс {значение:Квалификация}

Т.е не важно, где произошел клик, должна выполняться одна и та же функция.

Сейчас у меня получается обработать выбор значения из справочника, а вот как реализовать тоже самое по клику на элементе кейса я не знаю как. Я обратил внимание, ,что при клике на элементе кейса, подставляется соответствующее значение в справочник. Т.е думал будет так:

Кейс(Клик)-->Справочник-->Атрибут-->Дествие

Справочник(Клик)-->Атрибут-->Действие

Вот мой код:

    methods: {

            onSearchButtonClick :function(){

                this.showInformationDialog("Click");

            },

            setDisqualification:function(){

                view = "UsrStage";//Справочник стадий

                data = this.get(view)

                

                if(data!==undefined){

                 value = data.Name;

                  switch (value) {

                        case 'Квалификация':

                             this.showInformationDialog(value);

                            break;

                        case 'Переговоры':

                             this.showInformationDialog(value);

                            break;

                        case 'Взращивание':

                            this.showInformationDialog(value);

                            break;

                         case 'Продажа':

                            this.showInformationDialog(value);

                           break;

                        case 'Потребность отсутствует':

                            this.showInformationDialog(value);

                           break;

                        case 'Потребность удовлетворена':

                            this.showInformationDialog(value);

                           break;

                        case 'Дисквалифицирован':

                          this.showInformationDialog(value);

                             break;

                    default:

                        // code

                    }

                }

            }

        },

        rules: {},

        businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,

        attributes: {

                   "LinkForStage": {

                    // Определение зависимости колонки.

                     "dependencies": [

                                       {

                                         // Зависит от колонки Stage.

                                        "columns": [ "UsrStage" ],

                                         // Имя метода-обработчика изменения колонки Stage.

                                         // Метод setProbabilityByStage() определен в свойстве methods

                                         // объекта схемы.

                                        "methodName": "setDisqualification"

                                       }

                                     ]

                                 }

        }

    };

 

Нравится

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

Роман, добрый день!

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

С уважением,

Дмитрий Тёскин

У меня задача обработать нажатие на элемент кейса через код.

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

Вот я и пытаюсь узнать есть ли такая возможность? 

SectionActionsDashboard, метод onActiveStageClick

Варфоломеев Данила,

Спасибо идею понял)

Только получается дублирование кода(

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

При попытке выбрать активности по Ответственному используя Http-запрос выбрасывает ошибку.

Делаю запрос:

https://dev-goldcoachcrm.bpmonline.com/0/ServiceModel/EntityDataService…'

 

и получаю в браузере ошибку: http://prntscr.com/h9v8l8

"Элемент коллекции с именем OwnerId не найден" - Но такое поле есть в Активности.

В чем проблема тогда? 

Нравится

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

Добрый день, без данных самого запроса сложно определить причину ошибки. Рекомендую вам ознакомиться с документацией по ссылке https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/rabota-s-obekt…

В документации есть примеры выборки записей по ответственному.

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