Отключение иконки выгрузки в эксель.

Добрый день.

Нужно запретить некоторой группе пользователей выгрузку в эксель. Делаю так:

Self.ScriptControl.CodeObject.grdData.CanExport = !GetIsUserContactInGroupCode(UserID, 'BLOCK EXPORT');

Во всех окнах, кроме одного, кнопка пропадает. В одном - кнопка остается, но не работает (значение CanExport = false и на несколько уровней стека вызова выше не меняется нигде).

Что я делаю не так?

Нравится

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

Добрый день, Елена!
Попробуйте к свойству 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 - отработало корректно.

Чистился ли каталог с кешем?

  • account_grd_1.png
  • account_grd_2.png

Добрый день!
версия 3.3.2.47

грид на детали раздела контактов wnd_ContactsInAccountGridArea
кэш чистится. Почему-то эта проблема только в одном окне.

сервисы

Добрый день, Лена.
Причина, скорее все в именно в бинарных файлах. Актуальная сборака сейчас в используемой Вами версии 3.3.2.280. Обратитесь в службу поддержки для получения ссылки на скачивание файлов.

Свой скриншот с использованием сервиса wnd_ContactsInAccountGridArea прилагаю.account_grd_3.png

Мы пока не можем перейти на новые бинарники. Так же, уточню ещё раз, что в других окнах выгрузка в эксель скрыта при выставлении этого параметра, так что может дело всё-таки не в бинарных файлах?

Елена, добрый день, еще раз!
В пределах версии 3.3.2 Вы можете переходить на любую сборку бинарников, в том числе и на самую последнюю (ну разве что, если Ваши бинарники не "крякнуты" и это может помешать их обновлению) :wink:
Напишите, пожалуйста, запрос по адресу support@terrasoft.ru с просьбой предоставить ссылку на скачивание новой версии бинарных файлов.

Проблема точно не в конфигурации.

на версии 3.3.2.277 так же не работает.

Елена, а что Вам возвращает выражение 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 скрывается как для пользователя с правами администратора так и для обычного пользователя.

Скриншоты прилагаю.


gridcanexport_1.png


gridcanexport_2.png


gridcanexport_3.png

Для 100% уверенности предлагаю передать нам Вашу конфигурацию в виде резервной копии.

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