Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программно дать право на "Вывод" (сохранение файла) на команду &НаКлиенте
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
AnryMc
Пользователь без права "Вывод" (нет права печатать и сохранять в файл).

В одном документе программно формируется файл.

Как дать право на сохранение только этого файла?

Причем: Процедура &НаКлиенте
AnryMc
В Серверном Привилегированном модуле делаю

//добавить роль:

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ВыбПользователь);
ПользовательИБ.Роли.Добавить(Метаданные.Роли.Бухгалтер);
ПользовательИБ.Записать();

//удалить роль:

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ВыбПользователь);
ПользовательИБ.Роли.Удалить(Метаданные.Роли.Бухгалтер);
ПользовательИБ.Записать();


У пользователя роли появляются
НО!
РольДоступна("Бухгалтер") = ЛОЖЬ

Как ОБНОВИТЬ (динамически)
роли доступные Текущему пользователю в Текущем сеансе????
alexxbely
AnryMc @ 16.02.24, 10:09 необходимо зарегистрироваться для просмотра ссылки ,
а якщо спробувати
УстановитьПривилегированныйРежим(Истина)
**тут робимо що треба
УстановитьПривилегированныйРежим(Ложь)
alex-l1904
alexxbely @ Сегодня, 10:21 необходимо зарегистрироваться для просмотра ссылки ,

із довідки
"В клиент-серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий."
AnryMc
alex-l1904 @ Сегодня, 13:08 необходимо зарегистрироваться для просмотра ссылки ,

На клиенте доступна файловая система ("Документы" - данного пользователя операционной системы") в которую нужно сохранить файл пользователю клиентской части...
Агент (сервер) находится на другом компьютере откуда папка "Документы" пользователя недоступны да и на том компе нет его учетки.
Метод УстановитьПривилегированныйРежим - не работает на тонком клиенте
alexxbely
Цитата(alex-l1904 @ 19.02.24, 13:08) необходимо зарегистрироваться для просмотра ссылки
alexxbely @ Сегодня, 10:21 ,

із довідки
"В клиент-серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий."


З вашим зауваженням повністю згоден, але тут жодного слова ані про клієнт-сервер, ані про тонкий клієнт.
sava1
поправить процедуру проверки - проще, чем извращаться.
права читаются при входе - в текущем сеансе пользователя они не будут применены
AnryMc
Цитата(alexxbely @ 19.02.24, 17:33) необходимо зарегистрироваться для просмотра ссылки
З вашим зауваженням повністю згоден, але тут жодного слова ані про клієнт-сервер, ані про тонкий клієнт.


Цитата(AnryMc @ 16.02.24, 10:09) необходимо зарегистрироваться для просмотра ссылки
Причем: Процедура &НаКлиенте



AnryMc @ Сегодня, 9:23 необходимо зарегистрироваться для просмотра ссылки ,

+

Цитата(AnryMc @ 16.02.24, 11:47) необходимо зарегистрироваться для просмотра ссылки
В Серверном Привилегированном модуле делаю




Цитата(sava1 @ 19.02.24, 18:59) необходимо зарегистрироваться для просмотра ссылки
поправить процедуру проверки - проще, чем извращаться.
права читаются при входе - в текущем сеансе пользователя они не будут применены



Задача:
Дано: Есть пользователь без прав "Вывод данных". База клиент - сервер (тонкий клиент). Агент сервера стоит на другом компе в сети чем клиент.
Нужно: Сделать кнопочку (команду) по которой клиент может сохранить некий файл в доступную ему на клиентском компьютере директорию.
sava1
Цитата(AnryMc @ 20.02.24, 8:28) необходимо зарегистрироваться для просмотра ссылки
Нужно: Сделать кнопочку (команду) по которой клиент может сохранить некий файл в доступную ему на клиентском компьютере директорию.


добавить свою команду и ее обработчик. Как роль может влиять на сохранение/чтение файла? тут скорее ограничения ОС
AnryMc
Цитата(sava1 @ 20.02.24, 11:21) необходимо зарегистрироваться для просмотра ссылки
добавить свою команду и ее обработчик. Как роль может влиять на сохранение/чтение файла? тут скорее ограничения ОС


У роли пользователя нет права "Вывод данных" - соответственно он не может сохранить файл и копирование только одного реквизита / ячейки и прочие ограничения.
sava1
право вывод влияет на Табл. документ. как оно может повлиять на программное сохранение файла?
AnryMc
Цитата(sava1 @ 20.02.24, 11:59) необходимо зарегистрироваться для просмотра ссылки
как оно может повлиять на программное сохранение файла


Цитата
Вывод — вывод на печать, запись и копирование в буфер обмена


Не верите - попробуйте...

P.S. Кстати проверяется просто. Любой отчет (табличный документ) стать на любую ячейку - "три точки" вверху справа - ВОПРОС: Доступно ли Файл - сохранить как...???

P.P.S.
Кусок кода (работает если у роли есть право "Вывод данных"
&НаКлиенте

//...

    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    
    Диалог.Заголовок = "Виберіть місце збереження та ім'я для файлу вивантаження";
    Диалог.ПолноеИмяФайла = КаталогДокументов()+"Вивантаження.XLSX";
    Фильтр = "XLSX-файл (*.XLSX)|*.XLSX";
    Диалог.Фильтр = Фильтр;
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Расширение = "XLSX";
    Диалог.Каталог = КаталогДокументов();
    
    Если Диалог.Выбрать() Тогда
        
        Элемент = Диалог.ПолноеИмяФайла;

               //Темп_ТД - ТАБЛИЧНЫЙ ДОКУМЕНТ
        
           Темп_ТД.Записать(Элемент, ТипФайлаТабличногоДокумента.XLSX);


Если у роли нет права "Вывод данных" -

Цитата
Помилка вивантаження файлу: C:\Users\ХХХХХХХХХХ\Documents\Вивантаження.XLSX :: {Справочник.ККККККК.Форма.ФормаСписка.Форма(833)}: Помилка при виклику методу контексту (Записать): Виведення заборонено
sava1
Цитата(AnryMc @ 16.02.24, 9:09) необходимо зарегистрироваться для просмотра ссылки
В одном документе программно формируется файл.

Как дать право на сохранение только этого файла?

Причем: Процедура &НаКлиенте


Где здеся интерактивные действия пользователя с выбором директории, формой отчета и т.д.?


по поводу вывода ТД

перед сохранением
ТабДокумент.Вывод = ИспользованиеВывода.Разрешить;
AnryMc
Цитата(sava1 @ 20.02.24, 12:40) необходимо зарегистрироваться для просмотра ссылки
Где здеся интерактивные действия пользователя с выбором директории,


Цитата(AnryMc @ 20.02.24, 12:06) необходимо зарегистрироваться для просмотра ссылки
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);

Диалог.Заголовок = "Виберіть місце збереження та ім'я для файлу вивантаження";
Диалог.ПолноеИмяФайла = КаталогДокументов()+"Вивантаження.XLSX";
Фильтр = "XLSX-файл (*.XLSX)|*.XLSX";
Диалог.Фильтр = Фильтр;
Диалог.МножественныйВыбор = Ложь;
Диалог.Расширение = "XLSX";
Диалог.Каталог = КаталогДокументов();

Если Диалог.Выбрать() Тогда


Цитата(sava1 @ 20.02.24, 12:40) необходимо зарегистрироваться для просмотра ссылки
перед сохранением

ТабДокумент.Вывод = ИспользованиеВывода.Разрешить;



Цитата(AnryMc @ 20.02.24, 12:06) необходимо зарегистрироваться для просмотра ссылки
Кусок кода (работает если у роли есть право "Вывод данных"

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.