Здравствуйте,
используем Terrrasoft CRM 3.3.2.. в связке с Oktell. У ряда пользователей есть права на лицензии Terrasoft Oktell Call Centre Operator 3.X. И при входе таких пользователей в систему появляется сообщение:
"Ошибка открытия конфигурации. Лицензия модуля 'call' не найдена". Запустить систему не получается.

Перезаказ лицензий не помогает. Контакты и Контрагенты пользователей не изменялись.
Если одному из этих пользователей в разделе администрирование дать права Администратора (повесить соответствующую галочку), то сообщение об ошибке уходит и удается войти в систему. Т.е. лицензии работают только для администраторов.

Подскажите, в чем может быть причина?

Нравится

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

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

Причина данной ошибки только одна - права доступа. Дело в том, что пользователи с правами администратора читают данные на прямую из таблиц базы данных и не имеет значения какие запреты Вы им поставите в системе. А если пользователь не имеет прав администратора, то он будет проверятся системой на наличие необходимых прав. Собственно, из-за этого Вы и наблюдаете такую ситуацию у себя сейчас. В данном случае Вам необходимо проверить, чтоб каждый пользователь, который участвует в лицензировании имел права доступа на чтение всех контактов, привязанных к этим пользователям. Также каждый пользователь должен иметь права доступа на чтение всех контрагентов, которые привязаны к контактам, так как не все пользователи могу быть привязаны к одному и тому же контрагенту. Обращаю внимание на тот факт, что права должны иметь именно все пользователи, а не только тот, который привязан к контакту/контрагенту, упомянутому выше.

Здравствуйте, Валерий. Спасибо за разъяснения.

1. Что касается прав.
- У группы "Все пользователи" есть права на чтение таблиц tbl_Contact и tbl_Account
- У группы "Все пользователи" есть права на чтение абсолютно всех контактов системе, в том числе и контактов пользователей. В подтверждение следующий запрос возвращает 0 строк.

select * from tbl_Contact c 
where not exists (select cr.ID from tbl_ContactRight cr
join tbl_AdminUnit au on au.ID=cr.AdminUnitID
where c.ID=cr.RecordID and au.Name = 'Все пользователи' and cr.CanRead=1)

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

select * from tbl_Account a 
where not exists (select ar.ID from tbl_AccountRight ar
join tbl_AdminUnit au on au.ID=ar.AdminUnitID
where a.ID=ar.RecordID and au.Name = 'Все пользователи' and ar.CanRead=1)

- Кроме того все пользователи системы включены в группу "Все пользователи"

Может быть я что то еще упустила при проверке прав?

2. Дело в том, что поломка лицензий произошла после обновления таблицы tbl_Contact. Было добавлено новое поле. При этом сначала конкурентные лицензии перестали работать у пользователей С правами администратора. Затем после перезапроса лицензий получилась противоположная ситуация, и лицензии перестали работать у пользователей БЕЗ прав администратора.

Попробовала:
- Откатить сервис tbl_Contact на версию до изменений - не помогло
- Восстановила базу для теста из старого бэкапа, сделанного до внесения изменений в таблицу и снова пересохранила таблицу . Т.е. попробовала сделать другие изменения в таблице, а не добавление конкретного поля. Лицензии также перестали работать.

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

Здравствуйте, Анна.
Ситуация требует более тщательного анализа, чем обсуждение на Community. Благодарим за предоставленную базу. Вопросом занимается мой Коллега. По результату сразу сообщим.

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