Версия для печати темы (https://pro1c.org.ua/index.php?s=bb3283f8357f30f662aa5bdd20c2c464&showtopic=67483)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Программно дать право на "Вывод" (сохранение файла) на команду &НаКлиенте
Автор: AnryMc 16.02.24, 9:09
Пользователь без права "Вывод" (нет права печатать и сохранять в файл).
В одном документе программно формируется файл.
Как дать право на сохранение только этого файла?
Причем: Процедура &НаКлиенте
Автор: AnryMc 16.02.24, 10:47
В Серверном Привилегированном модуле делаю
//добавить роль:
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ВыбПользователь);
ПользовательИБ.Роли.Добавить(Метаданные.Роли.Бухгалтер);
ПользовательИБ.Записать();
//удалить роль:
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ВыбПользователь);
ПользовательИБ.Роли.Удалить(Метаданные.Роли.Бухгалтер);
ПользовательИБ.Записать();
У пользователя роли появляются
НО!
РольДоступна("Бухгалтер") = ЛОЖЬ
Как ОБНОВИТЬ (динамически) роли доступные Текущему пользователю в Текущем сеансе????
Автор: alexxbely 19.02.24, 9:21
AnryMc @ 16.02.24, 10:09
,
а якщо спробувати
УстановитьПривилегированныйРежим(Истина)
**тут робимо що треба
УстановитьПривилегированныйРежим(Ложь)
Автор: alex-l1904 19.02.24, 12:08
alexxbely @ Сегодня, 10:21
,
із довідки
"В клиент-серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий."
Автор: AnryMc 19.02.24, 12:40
alex-l1904 @ Сегодня, 13:08
,
На клиенте доступна файловая система ("Документы" - данного пользователя операционной системы") в которую нужно сохранить файл пользователю клиентской части...
Агент (сервер) находится на другом компьютере откуда папка "Документы" пользователя недоступны да и на том компе нет его учетки.
Метод УстановитьПривилегированныйРежим - не работает на тонком клиенте
Автор: alexxbely 19.02.24, 16:33
Цитата(alex-l1904 @ 19.02.24, 13:08)
alexxbely @ Сегодня, 10:21 ,
із довідки
"В клиент-серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий."
З вашим зауваженням повністю згоден, але тут жодного слова ані про клієнт-сервер, ані про тонкий клієнт.
Автор: sava1 19.02.24, 17:59
поправить процедуру проверки - проще, чем извращаться.
права читаются при входе - в текущем сеансе пользователя они не будут применены
Автор: AnryMc 20.02.24, 8:28
Цитата(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 20.02.24, 10:21
Цитата(AnryMc @ 20.02.24, 8:28)
Нужно: Сделать кнопочку (команду) по которой клиент может сохранить некий файл в доступную ему на клиентском компьютере директорию.
добавить свою команду и ее обработчик. Как роль может влиять на сохранение/чтение файла? тут скорее ограничения ОС
Автор: AnryMc 20.02.24, 10:50
Цитата(sava1 @ 20.02.24, 11:21)
добавить свою команду и ее обработчик. Как роль может влиять на сохранение/чтение файла? тут скорее ограничения ОС
У роли пользователя нет
права "Вывод данных" - соответственно он не может сохранить файл и копирование только одного реквизита / ячейки и прочие ограничения.
Автор: sava1 20.02.24, 10:59
право вывод влияет на Табл. документ. как оно может повлиять на программное сохранение файла?
Автор: AnryMc 20.02.24, 11:06
Цитата(sava1 @ 20.02.24, 11:59)
как оно может повлиять на программное сохранение файла
Цитата
Вывод — вывод на печать, запись и копирование в буфер обмена
Не верите - попробуйте...
P.S. Кстати проверяется просто. Любой отчет (табличный документ) стать на любую ячейку - "три точки" вверху справа - ВОПРОС: Доступно ли Файл - сохранить как...???
P.P.S.
Кусок кода (работает если у роли есть право "Вывод данных"
&НаКлиенте
//...
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Виберіть місце збереження та ім'я для файлу вивантаження";
Диалог.ПолноеИмяФайла = КаталогДокументов()+"Вивантаження.XLSX";
Фильтр = "XLSX-файл (*.XLSX)|*.XLSX";
Диалог.Фильтр = Фильтр;
Диалог.МножественныйВыбор = Ложь;
Диалог.Расширение = "XLSX";
Диалог.Каталог = КаталогДокументов();
Если Диалог.Выбрать() Тогда
Элемент = Диалог.ПолноеИмяФайла;
//Темп_ТД - ТАБЛИЧНЫЙ ДОКУМЕНТ
Темп_ТД.Записать(Элемент, ТипФайлаТабличногоДокумента.XLSX);
Если у роли нет права "Вывод данных" -
Цитата
Помилка вивантаження файлу: C:\Users\ХХХХХХХХХХ\Documents\Вивантаження.XLSX :: {Справочник.ККККККК.Форма.ФормаСписка.Форма(833)}: Помилка при виклику методу контексту (Записать): Виведення заборонено
Автор: sava1 20.02.24, 11:40
Цитата(AnryMc @ 16.02.24, 9:09)
В одном документе программно формируется файл.
Как дать право на сохранение только этого файла?
Причем: Процедура &НаКлиенте
Где здеся интерактивные действия пользователя с выбором директории, формой отчета и т.д.?
по поводу вывода ТД
перед сохранением
ТабДокумент.Вывод = ИспользованиеВывода.Разрешить;
Автор: AnryMc 20.02.24, 12:01
Цитата(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)
Кусок кода (работает если у роли есть право "Вывод данных"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua