Ошибка "У пользователя недостаточно прав на исполнение операции над базой данных" при программной записи документа

1. AntonH851 88 28.12.20 14:42 Сейчас в теме +5 $m
Добрый день
Столкнулся с такой проблемой: внешняя обработка создает документ Премия, пытается его записать но выдается сообщение об ошибке
"У пользователя недостаточно прав на исполнение операции над базой данных"
Причем если руками создать документ Премия, заполнить его аналогично, записать, то после этого и в обработке начинает создаваться документ без ошибок
В ЖР при возникновении ошибки пишет что отказ доступа на чтение к документу Премия
Событие ПерезЗаписью отрабатывает, до события ПриЗаписи не доходит
Все подписки привязанные к документУ Премия отрабатывают, найти место на котором валится ошибка не удается
Может кто сталкивался с похожим поведением?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. login1020 136 28.12.20 14:48 Сейчас в теме
Ищите RLS, обычно так пишет когда натыкается на RLS в какой-либо роли
3. AntonH851 88 28.12.20 14:50 Сейчас в теме
(2) RLS есть, вот почему при ручном создании документа RLS нормально срабатывает, а при программном создании и записи ругается, хотя записываются одинаковые данные
4. user633533_encantado 11 28.12.20 14:50 Сейчас в теме
Безопасный режим отключите у внешней обработки.
5. AntonH851 88 28.12.20 14:55 Сейчас в теме
(4) Попробовал, ошибка та же
6. ab_initio 95 28.12.20 14:56 Сейчас в теме
А такой если код добавить в обработку:
УстановитьПривилегированныйРежим(Истина);

.................

УстановитьПривилегированныйРежим(Ложь);
9. AntonH851 88 28.12.20 14:58 Сейчас в теме
(6) Такой код там уже есть, но почему то не работает
13. user633533_encantado 11 28.12.20 15:02 Сейчас в теме
(9) Такой код не работает в безопасном режиме.
16. AntonH851 88 28.12.20 15:07 Сейчас в теме
(13) Поставил безопасный режим у обработки = Ложь
снял защиту от опасных действий у пользователя
но ошибка все равно выдается
18. baturo 36 28.12.20 15:09 Сейчас в теме
(16) по журналу регистрации надо смотреть на какой строчке выдается ошибка и её описание. я делал отбор с типом = ошибка
20. AntonH851 88 28.12.20 15:11 Сейчас в теме
(18) в журнале регистрации только такое событие Доступ. Отказ в доступе без указания на место в коде, иначе было бы понятно что делать
21. AntonH851 88 28.12.20 15:12 Сейчас в теме
(20) Причем Действие - Чтение, а почему чтение при записи не понятно
22. baturo 36 28.12.20 15:15 Сейчас в теме
(20) как вариант, можно из отладчика сеанс запустить и попробовать поднять флаг "Останавливаться по ошибке". Должно остановиться на месте с ошибкой.
7. login1020 136 28.12.20 14:56 Сейчас в теме
Причем если руками создать документ Премия, заполнить его аналогично, записать, то после этого и в обработке начинает создаваться документ без ошибок


Это как? порядок действий поясните.
12. AntonH851 88 28.12.20 15:02 Сейчас в теме
(7) Пробую выполнить обработку - ругается, если после этого захожу в список документов Премии, жду создать, заполняю аналогично, документ успешно записывается, и после этого если попробовать выполнить обработку для создания премии, она тоже начинает работать без ошибок.
Момент когда снова начинает выдаваться ошибка в обработке не понятен
15. ab_initio 95 28.12.20 15:05 Сейчас в теме
(12) Пора спросить:
что за конфигурация?
что за платформа?
расширения есть? основные роли в них есть?
режим клиент-серверный или файловый?
17. baturo 36 28.12.20 15:07 Сейчас в теме
(12) в журнале регистрации должно быть написано в каком месте вылетает обработка - номер строки, описание ошибки
26. user1135816 4 31.12.20 11:24 Сейчас в теме
(17) ошибка с правами не отображается в ЖР
8. baturo 36 28.12.20 14:57 Сейчас в теме
У меня была подобная ошибка. Проблема была, конечно, в RLS. Нашёл место где вылетало отладчиком, а затем настроил права доступа для реквизита с ограниченными правами
10. ab_initio 95 28.12.20 14:58 Сейчас в теме
И, чтоб подавить проверки в ПередЗаписью,
ДокументОбъект.ОбменДанными.Загрузка=Истина;
11. baturo 36 28.12.20 15:01 Сейчас в теме
Если у пользователя нет доступа к документу Премия, то он его может создать только под привилегированными правами либо обработчик вынести в привилегированный модуль либо установить вначале блока обработки УстановитьПривилегированныйРежим(Истина);
14. Азбука Морзе 106 28.12.20 15:05 Сейчас в теме
Если при программном заполнении документа вы обращаетесь к базе данных при помощи запросов, то в них необходимо указывать ключевое слово РАЗРЕШЕННЫЕ. И тогда ошибки не будет.
19. baturo 36 28.12.20 15:10 Сейчас в теме
затем на это из конфигуратора смотреть и рефлексировать что это
23. login1020 136 28.12.20 15:31 Сейчас в теме
(12) ради интереса уберите RLS и запустите. Если все ок, значит отладкой идти и искать в какой момент расчета идет обращение к участку с RLS
24. gzharkoj 512 28.12.20 15:56 Сейчас в теме
А что если вы какое-то поле либо не заполняете, либо заполняете не теми данными, по которым и работает ограничение. Вам бы сравнить результаты, созданные вручную и программно.
25. Evrepid 29.12.20 17:22 Сейчас в теме
Согласен с автором топика. есть моменты совсем не объяснимые...
У пользователя несколько ролей одна из Которых "полные права", но RLS все равно запрещает действия с объектом, и не помогает ни привилегированный режим ничего.

Иногда встречается что у пользователя только одна роль "полные права" и тоже недостаточно прав на работу с объектом.
Потом без объяснения причин... все начинает работать.

Такое ощущение, что где то в типовом функционале не инициализированная переменная, которая принимает случайное значение...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот