Буквально два дня назад у одного и только одного пользователя в системе переставли открываться сервисы Задачи, Контрагенты и Контакты.

При попытке открыть эту закладку появляется сообщение об ошибке:

Ошибка открытия источника данных "ds_Account"
Оригинальное сообщение об ошибке: Dynamic SQL Error
SQL error code=-204
Table unknown
vw_Account
At line 14, column 15
can't format message 13:796 -- message file C:\Program Files\Terrasoft CRM X25\firebird.msg not fount
Error Code: 249

Аналогично для источников ds_Contacts и ds_Task.

Пробовал в администрировании сбрасывать и заново устанавливать права доступа, ситуация не меняется. Остальные сервисы работают нормально. То есть открываем Проекты, там все показывает, кроме Клиента и Контакта.

Нравится

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

Может попробовать забрать и снова раздать права на эти разделы.

Здравствуйте, Алексей!
Для решения возникшей у Вас проблемы могу посоветовать зайти в TSAdmin.exe, открыть таблицу, например, tbl_Account и пересохранить ее (для этого добавьте в название таблицы например пробел, потом уберите его и сохраните таблицу). Таблица пересохранится, что в результате приведет к пересозданию View-представления vw_Account на сервере.
Аналогичные действия выполните для таблиц tbl_Contacts и tbl_Task.
После этого перезапустите рабочее приложение Terrasoft CRM и протестируйте работосопосбность системы.

Также советую скопировать файл Firebird.msg из папки Firebird (с серверной машины) на клиенскую машину. Таким образом, на клиентской машине должны быть два файла fbclient.dll и Firebird.msg.

Желаю удачи!

Мельникова Екатерина

При попытке пересохранить tbl_Account получил вот это сообщение об ошибке.

violation of FOREIGN KEY constraint "PCONTACT_ID" on table "tbl_Contact"
Foreign key reference target does not exist
violation of FOREIGN KEY constraint ""
Error Code: 146
ALTER TABLE "tbl_Account" ADD CONSTRAINT "FAccountPrimaryContactID2"
FOREIGN KEY ("PrimaryContactID") REFERENCES "tbl_Contact" ("ID")

Проверил отношения, все заполнено верно. Поле ID в tbl_Contact присутствует. Странно...

При пересохранении tbl_Task получил вот это сообщение:

violation of FOREIGN KEY constraint "PCONTACTGROUP_ID" on table "tbl_ContactGroup"
Foreign key reference target does not exist
violation of FOREIGN KEY constraint ""
Error Code: 146
ALTER TABLE "tbl_Task" ADD CONSTRAINT "FTaskOwnerGroupID"
FOREIGN KEY ("OwnerGroupID") REFERENCES "tbl_ContactGroup" ("ID")

Тоже все проверил, все должно быть в норме.

tbl_Contact пересохраняется нормально. И кстати, этот сервис у пользователя заработал еще до того, как е его пере сохранил.

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

Горелов Виталий
Компания Лабитек

Да, совершенно верно. Были ошибки в ссылках на таблицы. Исправил, сервисы пересохранил. Как только появится возможность, я тут же проверю заработали ли сервисы у пользователя.

После исправления ошибок в ссылках, таблицы пересохранились нормально. Но система ведется себя странно. Пользователь входит, сообщений об ошибках нет, но все датасеты пустые и наверху в заголовке окна террасофта, где пишется в скобках ФИО контакта - Террасофт 3.1 - Террасофт (Иванов Иван Иванович) - теперь в скобках пишет "Null".
То есть теперь заголовок окна выглядит так:

Террасофт 3.1 - Террасофт (Null)

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

:-) Террасофт 3.1 - Террасофт (Null)
значит пользователь не имеет прав доступа на строку своего контакта (в разделе Администрирование , пользователь создается с привязкой к определённому контакту) , дайте ему права на чтение этой строки

Так в том-то и дело, что в Администрировании в Террасофт у пользователя стоят все галочки на группе таблиц Контакты. И конкретно на этот контакт в Детали "Доступ" указанному пользователю разрешено Запись и Чтение.

"Барабанов Алексей Александрович" написал:Так в том-то и дело, что в Администрировании ...

Если всё настроено правильно , то найти ошибку можно только отслеживая по профайлеру , запросы к БД , а потом отрабатывать их непосредственно на базе.

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