Добрый день.
Нужно запретить некоторой группе пользователей выгрузку в эксель. Делаю так:
Self.ScriptControl.CodeObject.grdData.CanExport = !GetIsUserContactInGroupCode(UserID, 'BLOCK EXPORT');
Во всех окнах, кроме одного, кнопка пропадает. В одном - кнопка остается, но не работает (значение CanExport = false и на несколько уровней стека вызова выше не меняется нигде).
Что я делаю не так?
Нравится
Добрый день, Елена!
Попробуйте к свойству CanExport элемента формы grdData через Window.ComponentsByName('grdData').
Например: для раздела Контрагенты в сервисе Accounts\General\Main Grid\scr_AccountsGridArea на событие OnPrepare окна, в обработчик function wnd_AccountsGridAreaOnPrepare(Window) добавьте
Self.ComponentsByName('grdData').CanExport = false;
или, что то же самое:
Window.ComponentsByName('grdData').CanExport = false;
Добрый день, Елена!
Скажите, пожалуйста, какие бинарные файлы Вы используете?
В каком разделе приложения? (сервис грида).
Перед публикацией своего ответа, я у себя проверил на сбрках 3.3.2.266 и 3.4.0.139 - отработало корректно.
Чистился ли каталог с кешем?
Добрый день!
версия 3.3.2.47
грид на детали раздела контактов wnd_ContactsInAccountGridArea
кэш чистится. Почему-то эта проблема только в одном окне.
Добрый день, Лена.
Причина, скорее все в именно в бинарных файлах. Актуальная сборака сейчас в используемой Вами версии 3.3.2.280. Обратитесь в службу поддержки для получения ссылки на скачивание файлов.
Свой скриншот с использованием сервиса wnd_ContactsInAccountGridArea прилагаю.
Мы пока не можем перейти на новые бинарники. Так же, уточню ещё раз, что в других окнах выгрузка в эксель скрыта при выставлении этого параметра, так что может дело всё-таки не в бинарных файлах?
Елена, добрый день, еще раз!
В пределах версии 3.3.2 Вы можете переходить на любую сборку бинарников, в том числе и на самую последнюю (ну разве что, если Ваши бинарники не "крякнуты" и это может помешать их обновлению) :wink:
Напишите, пожалуйста, запрос по адресу support@terrasoft.ru с просьбой предоставить ссылку на скачивание новой версии бинарных файлов.
Проблема точно не в конфигурации.
Елена, а что Вам возвращает выражение GetIsUserContactInGroupCode(UserID, 'BLOCK EXPORT'); ?
В отладчике отдельно пробовали смотреть? Это не базовая функция, в коробке ее нет, у себя протестировать не могу.
Вы пробовали задавать видимость кнопки прямо?
Self.ComponentsByName('grdData').CanExport = false;
Развернул у себя 3.3.2.47, не могу добиться такого же эффекта, чтобы кнопка не отображалась на мою попытку ее скрыть. После Self.ComponentsByName('grdData').CanExport = false; она исправно исчезает.
Пример работающей функции IsUserInGroup, принимает два параметра UserID и GroupID:
function IsUserInGroup(UserID, GroupID){ var ds_UserInGroup = Services.GetNewItemByUSI('ds_UserInGroup'); ApplyDatasetFilter(ds_UserInGroup, 'UserID', UserID, true); ApplyDatasetFilter(ds_UserInGroup, 'GroupID', GroupID, true); ds_UserInGroup.Open(); var Result = !ds_UserInGroup.IsEmptyPage; ds_UserInGroup.Close(); return Result; }
Добрый день. Естественно, пробовала. Значение true, соответственно, значение кнопки false (и это я тоже смотрела в отладчике на несколько функций выше в стеке вызова, о чем написала в первом сообщении).
У администратора иконка пропадает, у обычных пользователей - нет, но при нажатии ничего не происходит.
Добрый день, Елена.
Пробую у себя на версии крнфигурации 3.3.2.39, бинарные файлы 3.3.2.266 - стабильно корректно отрабатывает. Кнопка Export скрывается как для пользователя с правами администратора так и для обычного пользователя.
Скриншоты прилагаю.
Для 100% уверенности предлагаю передать нам Вашу конфигурацию в виде резервной копии.