Публикация

Ошибка получения элемента по USI 'tbl_Call'

Периодически возникает ошибка:
"Ошибка получения элемента по USI 'tbl_Call'. Лицензия для модуля 'Call' не найдена «Call Stack»"
Например, при просмотре истории по контакту.

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

Нравится

Поделиться

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

Вячеслав, таким образом Вы лишили права тех пользователей, у которых есть лицензия на модуль 'Call', видеть историю по звонкам.
Мой вариант решения:
В функции InitializeContactHistoryDetail() в scr_ContactsWorkspace добавить код:

var SelectCall = ContactsWorkspace.ContactHistoryDataset.SelectQuery.ItemsByCode('SelectCall');
	if (!Connector.Attributes('HasCallLicense')) {
		ContactsWorkspace.ContactHistoryDataset.SelectQuery.Remove(SelectCall);
	}

Здравствуйте! У меня похожая ситуация. Создала новые пользовательские фильтры для фильтрации контрагентов по наличию звонка, по теме звонка, по дате и т.д. Скриншот во вложении.
У пользователей, не имеющих лицензию на модуль "Call", при первом (после запуска Террасофт) открытии раздела контрагенты наблюдаю сообщение "Ошибка получения элемента по USI 'tbl_Call'. Лицензия для модуля 'Call' не найдена «Call Stack»". Можно ли этого избежать? И как? Заранее спасибо.

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

Собственно Вы сами ответили на свой вопрос:

"Аллилуева Анна Андреевна" написал:У пользователей, не имеющих лицензию на модуль "Call"

Лицензии Call Centre активируют 2 модуля: Сall и Tapi.
Если лицензий нет, то весь функционал, который будет связан с модулем Call не будет работать, не исключая при этом и фильтры.

Арсений, спасибо. Дело в том, что я понимаю, что причина ошибки в отсутствии лицензии Call Centre у некоторых пользователей. Но вопрос немного в другом.
Как избежать этой ошибки пользователям, не имеющим лицензию Call Centre ?
И при этом сохранить возможность использования указанных фильтров для пользователей, обладающих лицензией Call Centre?

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

К сожалению, для фильтров sq нельзя применить код, по примеру как написала Оля Раловец:

"Раловец Ольга" написал:В функции InitializeContactHistoryDetail() в scr_ContactsWorkspace добавить код:
var SelectCall = ContactsWorkspace.ContactHistoryDataset.SelectQuery.ItemsByCode('SelectCall');
if (!Connector.Attributes('HasCallLicense')) {
ContactsWorkspace.ContactHistoryDataset.SelectQuery.Remove(SelectCall);
}

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

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

Здравствуйте! "создать папку" - речь идет о создании динамической группы (скриншот ниже) ? я правильно понимаю?

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

И не совсем понимаю, как бы мне это помогло? Ведь ошибка появляется не в момент применения фильтра, а когда пользователь первый раз заходит в раздел Контрагенты - например в группу все контрагенты, без наложения какой-либо фильтрации.

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

Арсений, можете чуть подробнее объяснить, какую именно логику будут отрабатывать эти исполняемые файлы? И каким образом это повлияет на возможность обновления системы?

Да, конечно!

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

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

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