|
Запуск фонового задания от имени другого пользователя
|
Я
|
|
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 | |
ZhigaCzar 17 - 06.10.20 - 11:10 | Оказывается, что регламентное задание запускается при записи (хтя информация в интернете была такая, что регламентное задание можно запустить лишь с помощью фонового задания). Как сделали: берем РЗ по ключу, ставим туда нужного пользователя и параметры, записываем и профит!
Спасибо всем, особенно ( 12) |
Cyberhawk 18 - 06.10.20 - 11:13 | |
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-соединение с базой под тем пользователем, под которым необходимо запустить фоновое задание и уже там его и запускаем. Проще и безопаснее, на мой взгляд.
|