Добрый день.

Создал реестр. Кнопка ДОБАВИТЬ неактивна.
Соответственно, невозможно создать новую запись.
Подскажите, пожалуйста, как сделать кнопку активной.

Продукт Terrasoft 3.4.1

Нравится

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

Права на добавление в "Права доступа к группам таблиц"

Дмитрий, спасибо за ответ. В правах доступа установлены максимальные права на требуемый реестр (см. файл).
Не работает.

а другие кнопки?

Другие кнопки тоже не активны. Но это ни о чем не говорит, так как невозможно проверить, будут ли эти кнопки активны при выборе записи. Так как в реестре нет ни одной записи, то это невозможно проверить.

Ну то что нет возможности проверить - это вы махнули. Можно добавить запись в SQL напрямую, а посмотреть в Террасофте.
У меня несколько идей почему это может быть (если ни одна не поможет, то пересоздайте реестр (лучше полностью, прям с таблицы) или в тех.поддержку):
1) Проверьте принадлежит ли пользователь группе, которой вы дали права.
2) И еще может быть, что вы не дали свойства на добавление датасету. Проверьте в администраторе стоят ли у датасета свойства "Добавление" и "Генерировать запрос на вставку".
3) В каком положении IsEnabled кнопки в гриде в администраторе или где-то в скрипте не завалялась строчка?

btnAdd.IsEnabled = false;

или

frmButtons.IsEnabled = false;

Александр, спасибо.
Проверил все 3 пункта. Все нормально.
Написал в техподдержку.

как вариант еще: не назначен датасет для dlData в сервисе грида

С датасетом тоже все нормально.
Буду пересоздавать раздел.

Ответ из службы поддержки:

В скриптах реестра, в методе инициализации, реестрам задавался атрибут ParentItemFieldName вручную, чего делать не следует, так как если экземпляр реестра размещается на детали, атрибут задастся автоматически. Поэтому, Вы можете закомментить строки в скриптах wnd_OfferingsGridAreaScript и scr_PriceListsGridArea:

// SetAttribute(Window, 'ParentItemFieldName', 'EditionID');

Все заработало. Спасибо

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

Какой функцией (скриптом) воспользоваться, чтобы в окне детали установить доступность кнопок "Добавить", "Удалить" и т.п. в зависимости от прав на запись в базовом реестре?

Нравится

1 комментарий

Добрый день, Станислав!

В окнах всех реестров, унаследованных от wnd_BaseGridArea, реализовано такое поведение кнопок, при котором доступ зависит от прав пользователя на собственно таблицу, из которой считываются данные в реестр (а не таблицу родительского раздела, в котором размещена деталь).
Если же нужно реализовать такую модель, чтобы детали раздела были доступны на редактирование в зависимости от доступа пользователя на запись в реестре раздела, придется написать соответствующие функции в скрипте окна реестра детали, которые будут выполнять анализ прав и устанавливать доступность кнопок. Примеры для анализа доступа по группам таблиц см. в скрипте scr_Access, названия функций:

GetCanReadData(TableUSI)
GetCanInsertData(TableUSI)
GetCanCopyData(Dataset)
GetCanDeleteData(Dataset)
GetCanEditData(Dataset)

Для анализа уровня доступа по записям можно воспользоваться функцией (в том же скрипте):
GetIsRecordIDAccessAllowedByTable(Table, RecordID, AccessLevelFieldName)

Желаю успехов!

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