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