При попытке зайти в систему как обычно, через NuiLogin.aspx выдает ошибку:

POST http://localhost:82/ServiceModel/AuthService.svc/Login 404 (Not Found)

При этом при использовании Login.aspx заходит без проблем.
Подскажите в чем дело?

Нравится

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

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

Предположительно некорректно развернут сайт.
Попробуйте переразвернуть приложение согласно инструкции https://academy.terrasoft.ru/documents/sales-enterprise/7-10/ustanovka-…

Похоже на то что в конфигах указаны https хотя сайт развернут в ис поверх http, протоколы должны соответствовать.
Статья:
https://academy.bpmonline.com/documents/marketing/7-9/switching-http-ht…

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

Во время брожения по исходным кодам наткнулся:

this.sandbox.publish("MoveScopeToCombinedMode", this, ["MoveScopeToCombinedMode"]);

Уж очень интригующе называются литералы :)
Кто ни будь знает суть происходящего... "скоупы" можно/нужно перемещать между режимами ?

Нравится

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

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

Напишите название модуля в котором нашли такой код, а также версию и название продукта.

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

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

7.8 - 7.10

this.getHistoryStateInfo().workAreaMode;

по прежнему дает противоречивые результаты:
"1" в Separate режиме, и в Combined режиме (при закрытом вертикальном реестре).
"2" - только в случае если вертикальный реестр в Combined режиме открыт.

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

примерный юзкейс:
Есть некие проверки доступности кнопок/полей/пунктов вертикального меню, пунктов меню "Действия", основанные на принадлежности текущего пользователя к орг.юнитам, функц.полям.
Если мы имеем Combined режим - нам достаточно провести их единожды на уровне секции, после переключаясь по карточкам через событийную модель контролировать уже рассчитанные значения аттрибутов. В самой-же карточке такой функционал так же обязан быть, на случай если она будет открыта в Separate режиме, но так же и желательно иметь возможность определить режим, иначе в Combined режиме каждый раз при загрузке схемы (переключение карточек) эта логика будет выполняться.
А вот например определение принадлежности пользователя к функ.ролям, орг.юнитам - это запросы в БД

Нравится

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

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

Добрый день, Илья!

Дело в том, что workAreaMode завязан на ссылку в адресной строке, а она меняется при скрытии реестра, что и вызывает данное поведение. К сожалению, других способов определить режим пока что нет, но архитектурные работы в этом направлении ведутся, возможно, для этого случая добавят новый mode == 3.

"Кот Владимир Владимирович" написал:добавят новый mode == 3.

Это будет выглядеть разумно:
workAreaMode = 1 (Separate Mode)
workAreaMode = 2 (Combined Mode without Section Registry) Вертикальный реестр скрыт
workAreaMode = 3 (Combined Mode with Section Registry) Вертикальный реестр открыт

Хотя на самом деле непонятно зачем собственно различать между собой 2 и 3 :)

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

this.values.IsSeparateMode

Принимает соответственно true и false (Проверил, вроде работает корректно)

PS: Кто ни будь из официальной поддержки - можете подтвердить надежность этого признака ?

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

Отлично. Большое спасибо за оперативное подтверждение.
Эх, если-б раньше знать сей "трюк", скольких костылей - можно было бы избежать.

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

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

Нравится

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

Добавить в конфигурации замещающий объект, указав что замещаем Город (City), добавить нужные колонки, в разделе справочников, настроить колонки, выведя добавленные вами. Готово.

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

В дополнение рекомендую ознакомиться со статьей: https://academy.terrasoft.ru/documents/technic-sdk/7-9/dobavlenie-novog…

Я пытался создать замещающий клиентский модуль для справочника City. Сделал, как описано. Задать желаемое имя не удается. После сохранения имя становится LookupEditPage. Прописал исходный код с изменениями. Добавить модуль BusinessRuleModule в список зависимостей не удается, его нет в списке.

// В список зависимостей модуля добавить модуль BusinessRuleModule.
define("CityPageV2", [], function() {
return {
// Название схемы объекта страницы редактирования.
entitySchemaName: "City",
// Настройка визуализации дополнительного поля на странице редактирования.
diff: /**SCHEMA_DIFF*/[
// Метаданные для добавления поля [Место встречи].
{
// Тип операции — добавить.
"operation": "insert",
// Имя родительского элемента схемы, в котором размещается элемент.
"parentName": "Header",
// Имя параметра родительского элемента.
"propertyName": "items",
// Имя элемента схемы, над которым производится действие (название колонки).
"name": "UsrDistrict",
// Объект, свойства которого будут установлены либо объединены со свойствами элемента схемы.
"values": {
// Заголовок поля.
"caption": {"bindTo": "Resources.Strings.District"},
// Расположение поля.
"layout": {
// Номер столбца.
"column": 2,
// Номер строки.
"row": 5,
// Диапазон занимаемых столбцов.
"colSpan": 12,
// Диапазон занимаемых строк.
"rowSpan": 1
}
}
}
]/**SCHEMA_DIFF*/
};
});

Весь исходный код вышел в ошибки.

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

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

Почта: support@terrasoft.ru

Пытаюсь создать замещающий клиентский модуль для справочника CallTopic. Затрудняюсь с выбором родительской страницы. CallTopicPageV2 в списке нет. Указал Страницу редактирования базового справочника, но сохраняет под именем NUIBaseLookupEditPage.

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

Добрый день!

А как можно добраться до настройки колонок в реестре обращений портала самообслуживания?

Спасибо

Нравится

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

И сопутствующий вопрос - как добраться до настройки итогов в разделе портала?

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

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

На данный момент есть обходной вариант:

1. В основном интерфейсе системы (не в интерфейсе портала) для списочного представления раздела [Обращения] настроить отображение колонок нужным образом и сохранить для всех пользователей (Прошу учесть, что при добавлении справочных полей в реестр, вероятно может потребоваться раздать права доступа на объекты на которые данная колонка ссылается).
В результате информация будет записана в профиль пользователя (таблица SysProfiledata, запись с кодом CaseSectionGridSettingsGridDataView).

2. Выполнить SQL – скрипт (он скопирует настройки из настроек по умолчанию обычных пользователей в настройки для всех пользователей портала).
update SysProfileData set ObjectData =
(select top 1 ObjectData from SysProfileData where [Key] like 'CaseSectionGridSettingsGridDataView' and ContactId is null order by ModifiedOn desc)
where [Key] like 'PortalCaseSectionGridSettingsGridDataView'and ContactId is null

3. Если клиент On-site выполнить Redis -> flushall, обновить страницу браузера (Empty Cache And Hard Reload)

4. При необходимости перенастроить обратно реестр основной системы для пользователей системы выполнив пункт 1.

Что касается вопроса по аналитике на портале, то сам дашборд выводится на портал через раздел «Настройка главной страницы портала» в дизайнере системы.
Главное, необходимо на данный дашборд раздать права пользователям портала, как минимум, на чтение. Есть еще один момент, в дашборде должна выводится информация, на которую у пользователей портала есть права. Если на какое-то значение (объект должен быть добавлен в справочник «Список объектов, доступных пользователям портала» и розданы права на чтение) у пользователей портала прав не будет, то он видеть данные он также не будет.

Как пример, Вы можете посмотреть настройки любого базового дашборда в разделе «Настройка главной страницы портала».

Спасибо за подробное описание!

"Михайленко Михаил" написал:Что касается вопроса по аналитике на портале, то сам дашборд выводится на портал через раздел «Настройка главной страницы портала» в дизайнере системы.

Имелись в виду настройки в самом реестре, чтобы показать количество записей.

"Михайленко Михаил" написал:она будет реализована в последующих версиях, скорее всего вместе с изменением архитектуры портала

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

Добрый день, Владимир!

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

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

Логика добавления в таблицу SysProfileData для пользователей портала заключается в добавлении корректных ключей и значения ObjectData без привязки к ContactID (тоесть для всех).

В случае с Итогами, ключа для пользователей портала нет в системе (его необходимо добавить предварительно необходимо вывести итоги для раздела обращение в рабочей среде):

insert into SysProfileData ([key],ObjectData,SysCultureId) values ('Section-PortalCase-MainGrid-Summary', (select top 1 ObjectData from SysProfileData where [Key] like 'Section-Case-MainGrid-Summary' order by ModifiedOn desc) ,'1A778E3F-0A8E-E111-84A3-00155D054C03')

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

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

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

Метод getActions в Combined режиме - не выполняеться из набора методов секции, он заимствуется из текущей открытой карточки и выполняется в контексте секции ? (Полный бред)
Банально остается только один способ выполнять пункты меню в Combined режиме - это описывать в секции именно одноименные!(с карточкой) методы, на которые биндятся пункты меню.

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

Почему функция getActions берется из объявления карточки, а выполняется в контексте секции ?

PS: Как вариант - предусмотреть, чтобы например getActions объявленный в секции - был бы всегда последний в цепочке наследований (можно было бы в нем разруливать, перебинживать и т.д.), или вообще применялся getActions из карточки, если в секции он не объявлен.

Нравится

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

Действительно :twisted:

Завтра это сегодня, но только завтра.

Логика работы getActions следующая:
- если карточка редактирования открывается в рамках реестра, нажали кнопки Изменить, то getActions будет работать в рамках реестра
- если создается новая запись или открывается карточке редактирования по прямой ссылке, то getActions работает вне контекста реестра

"Терещук Павел" написал:- если карточка редактирования открывается в рамках реестра, нажали кнопки Изменить, то getActions будет работать в рамках реестра

т.е. если карточка в режиме редактирования - то объявление getActions все равно будет заимствовано из карточки но выполняется в контексте секции ?
(так собственно и работает)

"Терещук Павел" написал:- если создается новая запись или открывается карточке редактирования по прямой ссылке, то getActions работает вне контекста реестра

ну на самом деле это не так - проверено в отладчике, поведение в точности такое же:
объявление getActions все равно будет заимствовано из карточки но выполняется в контексте секции

т.е. если карточка в режиме редактирования - то объявление getActions все равно будет заимствовано из карточки но выполняется в контексте секции ?

(так собственно и работает)


Совершено верно.

"Севостьянов Илья Сергеевич" написал:Терещук Павел пишет:
- если создается новая запись или открывается карточке редактирования по прямой ссылке, то getActions работает вне контекста реестра

ну на самом деле это не так - проверено в отладчике, поведение в точности такое же:
объявление getActions все равно будет заимствовано из карточки но выполняется в контексте секции

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

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

Версия 7.9.2 sales.

Задача в общем виде такая: по входящему звонку открывать карточку соответствующего контакта (определять по номеру звонящего).

Можно ли "перехватить" звонок, может быть есть какой-нибудь метод в CTIBase, который выполняется при поступлении звонка?

Есть же например в CtiPanelModelUtilities метод onCallCustomer, куда можно встроить аналогичный "перехват" исходящего звонка.

Нравится

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

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

Можно создать бизнес процесс, который будет отрабатывать по статовому сигналу создания записи звонка с направлением "Входящий". Для Webitel/Oktell вообще не должно возникнуть проблем, с Asterisk и прочими нужно будет попробовать, не факт, что карточка будет сразу открываться нужному пользователю.

Илья, так а на клиенте нет что ли никаких методов? Показываются же например уведомления.

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

Денис, в схеме CtiPanelPage есть метод onCallStarted, он срабатывает при старте звонка, можно завязаться на него, проверить если у входящего параметра call направление = входящий открывать карточку.

Также есть неплохая документация по методам, используемым в интеграции -
https://academy.terrasoft.ru/documents/technic-sdk/7-9/integraciya-s-te…

"Мотков Илья" написал: в схеме CtiPanelPage есть метод onCallStarted

Илья, не нашёл что-то такой схемы.

В CtiPanel, CtiPanelModelUtilities,CtiPanelModule - такого метода тоже не находится.

Правда, телефония на тестовом сервере не подключена.

Денис, давно смотрел эти схемы, возможно ошибся, может называться onCommutationStarted.

Илья, да, есть такой метод. Только он похоже не непосредственно в CtiPanel определён, а в какой-то из связанных схем.

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

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

у Лида есть кейс, в котором на стадии распределения появляется задача "Распределите лид, определите стратегию взращивания лида", при нажатии на которую запускается БП Распределение лида.
Как можно реализовать аналогичное? Где можно посмотреть как это реализовано?

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

BPM'Online 7.10.0.1742

Нравится

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

Любовь, здравствуйте!

Описанная логика реализована в процессе "Распределение лида 7.8.0". Процесс запускается вручную. Можно сделать копию процесса, в которой элемент "Страница распределения" заменить элементом "Задача".
Предварительно в справочник "Результаты активностей" необходимо добавить три возможных результата:

  1. Интерес отсутствует
  2. Перевод в продажу
  3. Распределить позднее

Каждой записи необходимо добавить признак "Использовать только в процессе".

Далее в копии процесса необходимо удалить элемент "Преднастроенная страница" (предварительно очистив связи) и заменить его элементом задача. В исходящих условных потоках выберите результаты, в зависимости от которых, процесс пойдет по одной из веток.

Из DCM процесс можно будет вызвать как подпроцесс.

Если я не правильно трактовал задачу, пожалуйста, уточните ее.

"Демьяник Алексей" написал:

Любовь, здравствуйте!

Описанная логика реализована в процессе "Распределение лида 7.8.0". Процесс запускается вручную. Можно сделать копию процесса, в которой элемент "Страница распределения" заменить элементом "Задача".

Предварительно в справочник "Результаты активностей" необходимо добавить три возможных результата:

  1. Интерес отсутствует
  2. Перевод в продажу
  3. Распределить позднее

Каждой записи необходимо добавить признак "Использовать только в процессе".

Далее в копии процесса необходимо удалить элемент "Преднастроенная страница" (предварительно очистив связи) и заменить его элементом задача. В исходящих условных потоках выберите результаты, в зависимости от которых, процесс пойдет по одной из веток.

Из DCM процесс можно будет вызвать как подпроцесс.

Если я не правильно трактовал задачу, пожалуйста, уточните ее.


Алексей, спасибо за подробный алгоритм.

Поясню, что я имела в виду.
процесс "распредение лида" был приведен в качестве примера.
вообще у нас реализован свой процесс над другой сущностью . В рамках нашего процесса есть шаги, на которых пользователь должен заполнять некоторые поля. Допустим,на одном шаге 5 полей, на другом 3 и т.д. Поэтому не хочется открывать страницу редактирования полностью, а хочется открыть свою преднастроенную страничку, где только эти 5 (или 3) полей, чтоб пользователь четко видел то, что он должен заполнить и чтобы не отвлекать его остальной информацией.
но проблема в том, что преднастроенные страницы в виде задачи не отображаются в активностях, а нам нужно сделать так, чтобы как -то они отображались.
и вот я увидела кейс лида, в рамках которого есть задача "Распределите лид, определите стратегию взращивания лида", и по клику на нее открывается преднастроенная страница(судя по всему просто запускается процесс Распределения). Мне показалось, что таким образом можно решить мою проблему(отображать преднастроенную страницу в активности).
поэтому хотела узнать
1) где именно прописывается тот факт, что клик по задаче "Распределите лид, определите стратегию взращивания лида" запускает процесс распределения
2) можно ли как-то вывести преднастроенные/автогенерируемые страницы в активности (или только как вы описали через результаты активностей, но мне этот вариант не подходит, так как нужно заполнять не одно, а несколько полей и набор полей будет разным на разных шагах)

Добрый день, Любовь!

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

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

Это самый оптимальный вариант, пока ожидаем реализации в платформе.
При этом он довольно просто реализуется.
Описывайте поэтапную логику в JavaScript со скрытием/демонстрацией полей.

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

Как выяснилось, создав деталь с редактируемым реестром - мы лишаемся 2-х очень важных инстументов, по отношению к простой детали с реестром:
1) В настройке колонок, мы более не можем выводить колонки с просмотром внутрь по справочным полям объекта детали (JOIN-колонки, даже не знаю как правильно их назвать по мат.части :))
2) выводя колонки, которые являются колонками установленными в целевых объектах как "Отображаемое значение", мы теряем "гиперссылочность" оных (оно и понятно, клик нынче приводит к редактированию поля)
Что сводит их использование в очень узкую нишу...

Но буйна головушка, не дает покоя на этот счет.
Может быть все таки - как-то можно пропатчить сей функционал, использовать в детялях с ред.реестром - гиперссылочные поля (например установив их "нередактируемость"), выводить колонки с "просмотром внутрь" по справочным полям (опять же не доступных для редактирования через реестр само собой) ?

Нравится

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

+1, хотелось бы увидеть данный функционал в коробке.

UPD. О, хорошие новости.

Добрый день, Илья!

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

Кот Владимир, разработчик технической поддержки компании Террасофт.

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

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

Нравится

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

Здравствуйте, Алла!

К сожалению, пользовательскими средствами сейчас такую логику реализовать нельзя, возможный вариант - заместить saveRowChanges в ConfigurationGridUtilities. Донесли до разработчиков ядра информацию о недочете, приоритет у данного кейса высокий, в одном из следующих релизов будет.

Данная проблема и обходные пути решения обсуждались тут:
http://www.community.terrasoft.ru/forum/topic/25239

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