Имя: Пароль:
1C
1С v8
Проблема с правами доступа из внешней обработки
0 dubolom
 
15.11.21
16:27
Есть один код:

ДокУЦ = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НомерВПределахДня = УстановкаЦенВызовСервера.РассчитатьНомерВПределахДня(ДатаДокумента, Документы.УстановкаЦенНоменклатуры.ПустаяСсылка());
ДокУЦ.Дата = УстановкаЦенКлиентСервер.РассчитатьДатуДокумента(ДатаДокумента, НомерВПределахДня);
Попытка
    ДокУЦ.Записать(РежимЗаписиДокумента.Проведение);
    ДокументСсылка = ДокУЦ.Ссылка;        
Исключение        
    ДокументСсылка = Неопределено;        
КонецПопытки;
Возврат ДокументСсылка;

Он выполняется в форме элемента справочника (в расширении) и отрабатывает корректно. Если же этот код запустить под этим же пользователем из внешней обработки, то при записи документа генерится исключение "У пользователя недостаточно прав на исполнение операции над базой данных".
Есть какая-то разница в правах доступа из расширения и из внешней обработки?
1 dubolom
 
15.11.21
16:30
ДатаДокумента - реквизит формы там и здесь.
2 elvan
 
15.11.21
16:37
Под полными правами работает? Роль "Интерактивное открытие внешних отчетов и обработок" есть?
3 fisher
 
15.11.21
16:40
Как вариант. Внешний обработки запускаются в безопасном режиме. А в безопасном режиме игнорируется переход в привилегированный режим.
4 fisher
 
15.11.21
16:43
А вообще убери попытку и глянь в ЖР на какую таблицу ему прав не хватило.
5 dubolom
 
15.11.21
17:45
(2) Права не полные, на открытие - есть.
6 dubolom
 
15.11.21
17:46
(4) Я "остановкой по ошибке" посмотрел. Не хватает прав на чтение таблицы Документ.УстановкаЦенНоменклатуры.
7 fisher
 
15.11.21
17:49
(6) Ну так а они есть у пользователя?
8 fisher
 
15.11.21
17:50
(7) + В ролях, которые ему назначены?
9 dubolom
 
15.11.21
18:26
(7) Есть. RLS там тоже формально есть, но запрещённых значений нету.
10 dubolom
 
16.11.21
07:55
Более того!
Если этот код поместить в общий модуль и вызывать из формы обработки, то выдаёт такое же исключение, а если из встроенной формы в расширении - то всё проходит благополучно.
11 dubolom
 
16.11.21
08:09
(3) Да, я снова протормозил. Добавил в дополнительные внешние обработки, снял безопасный режим - и всё заработало.
12 dubolom
 
16.11.21
08:19
Но разве безопасный режим сам по себе может блокировать права доступа на таблицы?
13 youalex
 
16.11.21
09:54
(12) последнее предложение в (3)
14 dubolom
 
16.11.21
10:11
(13) Но там нигде нет перехода в привилегированный режим.
15 youalex
 
16.11.21
10:56
(14) и ПривилегированныйРежим()  в момент обращения к таблице = Ложь?
16 dubolom
 
16.11.21
10:58
(15) Неохота проверять сейчас:) Потому что уже решил отключением безопасного режима.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.