Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запуск фонового задания от имени другого пользователя

Запуск фонового задания от имени другого пользователя
Я
   ZhigaCzar
 
06.10.20 - 09:31
Доброго времени суток, форумчане!
Объясняю ситуацию. Необходимо запускать определенное фоновое задание по нажатию на кнопку. Но запускать необходимо не под тем пользователем, под которым осуществлен вход в 1с, а под другим (т.к. права пользователя не дадут выполнить часть функций исполняемых в фоновом задании).
Подскажите, можно ли каким-либо образом указать пользователя, под которым будет выполнено фоновое задание.

Платформа: 1С:Предприятие 8.3 (8.3.12.1685)
Конфиг: УТ10.2 сильно допиленный.

З.Ы.
Вариант выдать права — не вариант, так же как и дать доступ в консоль заданий.
   acht
 
1 - 06.10.20 - 09:50
Ты хочешь сделать ровно то, для запрета чего собственно и придумали права на данные.
   acht
 
2 - 06.10.20 - 09:51
Перейти в привелигированный режим на сервере не предлагать?
   ДенисЧ
 
3 - 06.10.20 - 09:52
Выдай права.
Ну или в привилегированный модуль беги. Но за такое обычно дают до 5 лет строгого расстрела. С конфискацией и без права.
   arsik
 
4 - 06.10.20 - 09:56
(3) А для чего тогда нужен привилегированный модуль? Именно для таких ситуаций.
   fisher
 
5 - 06.10.20 - 09:57
(3) Почему? Привилегированный режим/модуль - это вполне нормальный вариант. Если там, конечно, нет какого-то криминала типа получения результата выполнения любого запроса или какой другой дырки безопасности.
   Cyberhawk
 
6 - 06.10.20 - 09:58
Создаешь РЗ с нужным методом. Указываешь ему нужного пользователя ИБ. Профит.
   ZhigaCzar
 
7 - 06.10.20 - 09:58
(1) Там выполняются функции внутри транзакции, надо, чтобы выгрузка файлов была корректной, но они не работают под правами пользователя, который будет запускать фоновое задание.
(2) Думаю, что это не устроит начальство ))
(3) Права выдать — точно нет. Насчет привилегированного модуля не думал, но думаю, что вариант не пойдет.
   ZhigaCzar
 
8 - 06.10.20 - 09:59
(5) собственно дырок безопасности там нет, там лишь документы задним числом проводятся )
   fisher
 
9 - 06.10.20 - 10:01
УстановитьПривилегированныйРежим(Истина)
   ДенисЧ
 
10 - 06.10.20 - 10:02
(4) (5) Ну, для начала для того, чтобы ПМ существовал, надо его создать и прописать в нём функции. А если туда будет лезьть кто нипопадя...
   ZhigaCzar
 
11 - 06.10.20 - 10:05
(6) Когда создаешь РЗ в конфигураторе, то там нельзя указать пользователя, под которым будет выполнятся это самое РЗ. Однако можно указать в консоли заданий, но это распространяется только на выполнение из консоли заданий и на выполнение по графику.
При выполнении ФоновыеЗадания.Выполнить(....) запускается все равно под тем пользователем, под которым вызвали функцию.
   Cyberhawk
 
12 - 06.10.20 - 10:07
(11) Очевидно, придется отказаться от конструкции ФоновыеЗадания.Выполнить и заменить ее на однократный вызов предварительно созданного экземпляра РЗ с нужным пользователем ИБ в свойствах
   ZhigaCzar
 
13 - 06.10.20 - 10:12
(12) Пока что лучший вариант ) Спасибо.
   arsik
 
14 - 06.10.20 - 10:12
(10) Ну создаешь свой модуль. Делов то.
Ну и многие путают общий модуль с привилегированными правами и метод УстановитьПривилегированныйРежим.
   fisher
 
15 - 06.10.20 - 10:17
(12) И как можно осуществить "однократный вызов предварительно созданного экземпляра РЗ с нужным пользователем ИБ в свойствах"?
Вроде ж прямых путей нет. Только черезжопные.
   IvanVlad007
 
16 - 06.10.20 - 10:17
(12) +
   ZhigaCzar
 
17 - 06.10.20 - 11:10
Оказывается, что регламентное задание запускается при записи (хтя информация в интернете была такая, что регламентное задание можно запустить лишь с помощью фонового задания). Как сделали: берем РЗ по ключу, ставим туда нужного пользователя и параметры, записываем и профит!
Спасибо всем, особенно (12)
   Cyberhawk
 
18 - 06.10.20 - 11:13
(15) Какие проблемы?
   fisher
 
19 - 06.10.20 - 11:51
(18) У меня никаких. Думал, может чего не знаю.
   Cyberhawk
 
20 - 06.10.20 - 13:44
(19) То есть ты задаешь вопрос, а потом утверждаешь, что ты не не знаешь чего?
   fisher
 
21 - 06.10.20 - 13:54
(20) Ага. Ибо перезапись регламентного задания для его запуска я отношу к черезжопным вариантам. Или ты таки таишь сакральное знание, которым не спешишь поделиться? Тогда прошу - не держи его в себе :)
   Cyberhawk
 
22 - 06.10.20 - 18:06
(21) Зачем перезапись? Создал экземпляр и после запуска - удалил. Не мешая "основному" экземпляру.
   ZhigaCzar
 
23 - 07.10.20 - 08:16
Нашли вариант попроще, т.к. для создания регламентного задания тоже свои права выдавать надо:
Поднимаем COM-соединение с базой под тем пользователем, под которым необходимо запустить фоновое задание и уже там его и запускаем. Проще и безопаснее, на мой взгляд.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.