Имя: Пароль:
1C
1С v8
Ошибка "Нарушение прав доступа!" при проведении документа во внешней обработке
,
0 kadr_arz
 
30.08.22
15:20
Подскажите в чем проблема?

При проведении во внешней обработке документа выходит ошибка:

Нарушение прав доступа!
{ВнешняяОбработка.ПеремещенияПоЧекамККМ.МодульОбъекта(204)}:        тмпДокОб.Записать(Режимзаписидокумента.Проведение);    
{ВнешняяОбработка.ПеремещенияПоЧекамККМ.Форма.Форма.Форма(126)}:        ТабДокПеремещения = ТекОбъект.ПечатнаяФормаПеремещения(МассивОбъектов,ТабДокПеремещения);
{ВнешняяОбработка.ПеремещенияПоЧекамККМ.Форма.Форма.Форма(133)}:    ПеремещениеНаСервере(ТабДокПеремещения);

по причине:
Нарушение прав доступа!

Перед этим обработка этот документ успешно записывает.
Права у пользователя есть. Он его потом открывает и проводит.
1 Beduin
 
30.08.22
15:21
(0) Внешняя обработка тоже под этим пользователем стартует?
2 ZDenis
 
30.08.22
15:27
(0) Перед тмпДокОб.Записать(Режимзаписидокумента.Проведение) Сделай сообщить чтобы увидеть какой именно документ ругается. Может в нем идут движения по какому -то другому регистру к которому доступа нет.

"Перед этим обработка этот документ успешно записывает."

Т.е. там идет такая конструкция?
тмпДокОб.Записать();
тмпДокОб.Записать(Режимзаписидокумента.Проведение);
?
3 kadr_arz
 
30.08.22
15:53
Обработка создает новый документ перемещения, записывает его, а потом проводит. При проведении выходит эта ошибка.
Пользователь его потом открывает и проводит без ошибки.
4 ZDenis
 
30.08.22
15:59
(3) Между записывает и потом проводит что-то еще изменяется в документе значит, что влияет на алгоритм проведения. А возможно и наоборот в форме при записи (проведении) еще что-то происходит и это дает провести.
5 Святофор
 
30.08.22
15:59
может там в форме перед записью типа УстановитьПривилегированныйРежим(Истина)
6 Святофор
 
30.08.22
16:00
>Пользователь его потом открывает и проводит без ошибки

пусть попробует провести документ из списка, не открывая
7 Smallrat
 
30.08.22
16:04
(0) потому что из внешней обработки не включается привилегированный режим, который часто используется при проведении документов.
8 kadr_arz
 
30.08.22
16:17
вначале сразу делал
тмпДокОб.Записать(Режимзаписидокумента.Проведение);
и выходила ошибка
9 Smallrat
 
30.08.22
16:40
10 kadr_arz
 
30.08.22
17:09
(7) УстановитьПривилегированныйРежим(Истина) не помогло
11 Кир Пластелинин
 
30.08.22
17:14
проверить роли на данный документ, т.к. интерактивное проведение и обычное - немного разные в контексте прав вещи.
12 МКК
 
30.08.22
17:19
Версионирование включено? Можно записать документ без проведения программно, потом открыть в пользовательской части и снова записать, посмотреть какие реквизиты изменились
13 Святофор
 
30.08.22
17:21
>интерактивное проведение и обычное - немного разные в контексте прав вещи

но интерактивного без обычного не бывает. в контексте наличия прав

если проводит из формы - скорее всего есть оба
14 Кир Пластелинин
 
30.08.22
17:26
(13) да. точно. перепутал. просто проведение без интерактивного может быть
15 Smallrat
 
30.08.22
17:30
(10) дело в том, что многие документы в типовых при проведении используют включение привилегированного режима где-нибудь по ходу проведения, в модуле объекта/менеджера/общих модулях без этого режима работать проведение не будет - у пользователя нет нужных прав на объекты.
Если обработка используется просто по кнопке открыть - то привилегированный режим не включается вообще, поэтому проведение ломается. Нужны либо полные права либо делать обработку для интеграции в справочник внешних обработок и ставить внутри флаг БезопасныйРежим = Ложь;
16 СеменовСемен
 
30.08.22
17:56
нужен опасный режим
17 kadr_arz
 
30.08.22
19:47
обработка открывается по кнопке открыть