Вопрос

Ошибка при при просмотре Результаты интервью.

1.
Убираем галки в "права доступа к группам таблиц" на Отчеты.
Кнопка "Результаты интервью" активна. Жму вылетает exception
Сообщение об ошибке: Ошибка открытия источника данных "ds_Report". Оригинальное сообщение об ошибке: A column has been specified more than once in the order by list. Columns in the order by list must be unique

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

2. Буду благодарен если сэкономите время .
Интересует следующее.

Создал опрос,забил вопросы,выполнил интервью. Установил права на опрос только для чтения для всех.

Другой пользователь самое ценное, что есть в опросе ))) - вопросы и и сами интервью может спокойно удалить,изменить и так далее. Почему права не наследуются от опроса.

Как сделать что бы так было? Заранее спасибо.

Нравится

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

Здравствуйте, Игорь!

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

Игорь, здравствуйте.
По поводу первой проблемы - в скрипте wnd_ContactInSurveyGridAreaScript на событии dlDataOnDatasetAfterPositionChange замените строку:

btnInterviewResults.IsEnabled = !IsDatasetEmpty(Dataset);

на:

btnInterviewResults.IsEnabled = GetCanReadData('tbl_Report');

По поводу второй проблемы: включите таблицу с интервью (tbl_Interview) в группу таблиц "Опросы". Тогда права доступа для самого опроса и для интервью будут аналогичными:

1.По первому пункту данный хардкод блокирует клавишу.

2.

"Олейник Дмитрий" написал:По поводу второй проблемы: включите таблицу с интервью (tbl_Interview) в группу таблиц "Опросы". Тогда права доступа для самого опроса и для интервью будут аналогичными:

Это не решило проблему. У вас получается или вы добавляете,то вы не можете редактировать вопросы и интервью соответственно?

Игорь, это получится для новых записей. Для старых права останутся прежними (т.е полные права на интервью, т.к. до этого она не администрировалась).
Создайте новый опрос, и проверьте на нём.

Дмитрий так все и делал. Проверял только при создании нового опроса,вопросов и интервью.

Игорь, Вы можете реализовать права на кнопки [Изменить]/[Удалить] реестра "Интервью" в зависимости от прав на опрос таким кодом (например, в скрипте wnd_ContactInSurveyGridAreaScript):

var btnEdit = Window.ComponentsByName('btnEdit');
var btnDelete = Window.ComponentsByName('btnDelete');
var ParentWindow = Window.ParentContainer.ParentWindow;
	if (!ParentWindow){
		return
	}
	var ParentDataset = ParentWindow.ComponentsByName('dlSurvey').Dataset;
 
	var IsCanEdit = GetIsCanEditRecord(ParentDataset, Dataset.ValAsGUID('SurveyID'));
	var IsCanDelete = GetIsRecordIDCanDeleteByDataset(ParentDataset, Dataset.ValAsGUID('SurveyID'));
 
	EnableControl(btnEdit, (IsCanEdit && btnEdit.IsEnabled));
	EnableControl(btnDelete, (IsCanDelete && btnDelete.IsEnabled));

"Бондарь Наталия" написал:Игорь, Вы можете реализовать права на кнопки [Изменить]/[Удалить] реестра "Интервью" в зависимости от прав на опрос таким кодом (например, в скрипте wnd_ContactInSurveyGridAreaScript):

Спасибо Наталья. Ваш код мне понятен. Хотя у меня сейчас мало знаний по terrasoft, чтобы вставить обработку активности клавиш в зависимости от прав установленный на родительский объект опрос,но думаю сложности нет.Описать функцию и вставить ее в нужные функции вызываемые при определенных действиях. Только покупая продукт хотелось чтобы в нем было реализованы хотя бы элементарные вещи.

Я правильно понял что такой функционал просто не реализован в системе? Т.е. спокойно можно изменять детали,хотя главный объект открыт только для чтения.Открыл думал пользователи почитают,так нет они могут добить что угодно, иногда даже и редактировать и удалить.
Например добавить проекту другого пользователя ему документ,так владелец проекта не сможет удалить это документ и даже сам проект уже не сможет удалить из за связи, хотя он заранее планировал что люди буду только читать.

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

Надеюсь что я просто не разобрался как все работает ,если все же такое присутствует,то могу представить работу пользователей:

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

P.S. Еще раз. Буду благодарен всем,кто поможет разобраться с таким функционалом.

Игорь, доступ на кнопки [Добавить]/[Изменить]/[Удалить] деталей в большинстве случаев определяется доступом к записи раздела.
Реализовано это в функции function UpdateButtonsByDataset сервиса scr_BaseGridAreaUtils.

Но не для всех случаев такое распределение прав справедливо. Поэтому, как Вы заметили, для некоторых деталей права устанавливаются отдельно от прав раздела.

Если для каких-то деталей Вам необходимо наследования прав доступа, но его нет - добавьте в функцию инициализации в сервисе скрипта реестра записей детали (например, scr_AddressesGridArea) заполнение BaseGridArea.WorkspaceDataset. Пример можно посмотреть в scr_AddressesGridArea, функция Initialize.

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