Проблема с правами доступа

1. 2PRV 7 09.09.16 10:09 Сейчас в теме
Конфигурация "Бухгалтерия государственного учреждения, редакция 2.0 (2.0.44.18)", включено версионирование объектов.
У пользователя есть право на все действия с документом ТребованиеНакладная. Документ успешно создается, записывается и проводится этим пользователем, если это делать стандартными способом (через форму документа). Но если попытаться запустить обработку, которая программно создает этот документ то получим ошибку "Отказ в доступе". В журнале регистрации следующая ошибка:
Метаданные: Регистр сведений. Версии объектов
Отказ права: Изменение
Событие:Доступ. Отказ в доступе

Вот код Обработки:
док=Документы.ТребованиеНакладная0315006.СоздатьДокумент();
	док.Дата=ТекущаяДата();
	док.Записать();

Установка привелигированного режима перед записью не помогает.
Данная обработка из-под пользователя с полными правами успешно выполняется.
Видимо проблема в доступе к регстру сведений ВерсииОбъектов.
Разрешение на изменения в "РегистрСведений.ВерсииОбъектов" есть только у роли ПолныеПрава. Снимать конфигурацию с поддержки ради того, чтобы дать обычному пользователя право на изменение данного регистра не хочется.
Как быть? Почему, если записывать документ через форму документа такой проблемы нет?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. корум 287 09.09.16 11:33 Сейчас в теме
(1) 2PRV, в поддержке есть режим "объект редактируется с сохранением поддержки". Включите его, проблем с обновлением не возникнет.
Создайте дополнительную роль "ДоступДополнительно", разрешите ей изменение регистра сведений, в Предприятии выдайте роль пользователю.

Возникнет проблема с доступом ещё к чему-то, добавите к этой роли.

Дополнительная роль нужна для того, чтобы при обновлении точно не слетела галка у типовой роли на доступ.
4. 2PRV 7 10.09.16 07:27 Сейчас в теме
(3) корум, Спасибо, про данный вариант решения проблемы я знаю, хотелось бы найти более другие способы чем давать разрешения на данный регистр. Ведь в типовой конфигурации как то реализована работа с этим регистром. Вот к примеру, создаю документ через типовую форму, записываю его, после этого в журнале регистрации появляется запись, что были внесены изменения в регистрсведений.ВерсииОбъектов из-под пользователя, у которого нет полных прав. Запускаю из-под этого пользователя обработку и фиг там - Отказано в доступе.
2. 2PRV 7 09.09.16 10:18 Сейчас в теме
Уточнение: внести изменения в существующий документ получается. Не получается создать документ и записать его. - наврал. Внести изменения тоже не получается.
5. 2PRV 7 12.09.16 04:38 Сейчас в теме
Пока докопался до следующего: при записи объекта происходит обращение к ОбщийМодуль.ВерсионированиеОбъектов. Выполняется следующий код:
МенеджерЗаписи = РегистрыСведений.ВерсииОбъектов.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Объект = Объект.Ссылка;
МенеджерЗаписи.НомерВерсии = НомерПредыдущейВерсии(Объект.Ссылка, СведенияОВерсииОбъекта.НомерВерсии);
МенеджерЗаписи.Прочитать();


При выполнении процедуры МенеджерЗаписи.Прочитать(); возникает ошибка
Ошибка при вызове метода контекста (Прочитать)
МенеджерЗаписи.Прочитать();
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.

К регистру сведений у пользователя стоит право на чтение и просмотр.
6. 2PRV 7 12.09.16 06:45 Сейчас в теме
Еще один нюанс: если код обработки
&НаСервере
Процедура Команда1НаСервере()
	док=Документы.НакладнаяНаОтпускМ15.СоздатьДокумент();
	док.Дата=ТекущаяДата();
	док.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
	Команда1НаСервере();
КонецПроцедуры
Показать

добавить в модуль формы документа, то он успешно исполняется!!! В чем разница? почему один и тот же код в одном случае выполняется, а в другом валится с ошибкой об Отсутствии прав???
7. 2PRV 7 12.09.16 09:42 Сейчас в теме
Пробовал дать пользователю Полные права (без административных функций) и не помогло - по прежнему валится с ошибкой. Методом тыка было выяснено, что для функционирования обработки необходимо дать пользователю право Администрирование. Может быть можно решить мою проблему как то еще??? На текущий момент у пользователя следующие роли: Бухгалтер, Интерактивное открытие внешних отчетов и обработок, Использование дополнительных отчетов и обработок.
8. корум 287 12.09.16 10:12 Сейчас в теме
(7) Вариант 1. Перепиши обработку с учетом (6) и успокося. Задача решена, разнообразны пути одинэсовы.
Вариант 2. Сделай роль, выставь права и успокойся, задача решена.

Вариант 3. Страдать и пользовать обработку самому вместо пользователя.
9. 2PRV 7 15.09.16 12:34 Сейчас в теме
(8) корум, Есть еще Вариант 4. Разобраться почему все таки оно не работает!) Как оказалось дело в том, что в 1С Предприятии существует безопасный режим исполнения программного кода. В этом режиме по-умолчанию запускаются все внешние обработки и отчеты для обеспечения безопасного исполнения кода и этот безопасный режим блокирует доступ к некоторому функционалу. В частности не срабатывает установка привелигированного режима.
Изменил ПараметрыРегистрации обработки и все заработало! Ура!
Функция СведенияОВнешнейОбработке() Экспорт 
    ПараметрыРегистрации = Новый Структура;
	ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
	ОбъектыНазначения = Новый Массив;
	ПараметрыРегистрации.Вставить("Наименование", "Подбор имущества в личном пользовании");
	ПараметрыРегистрации.Вставить("Версия", "1.1");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	ПараметрыРегистрации.Вставить("Информация", "Подбор имущества в личном пользовании");
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	ДобавитьКоманду(ТаблицаКоманд,
	"Подбор имущества в личном пользовании",
	"ПодборИмуществаВЛичномПользовании",
	"ОткрытиеФормы");
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	Возврат ПараметрыРегистрации; 
КонецФункции
Показать
natal_tihom; roman77; корум; +3 Ответить
10. корум 287 15.09.16 12:40 Сейчас в теме
(9) 2PRV, ...1ссс... слов нет приличных. Хорошо, что всё хорошо закончилось.
11. progr-2008 118 07.04.17 10:33 Сейчас в теме
На 8.3.8.2322 отказ в доступе при отключенном режиме опасных действий по пользователям, причем только иногда.
12. Artorg 10.07.20 19:17 Сейчас в теме
Большое спасибо автору, что докопался до сути. Была аналогичная проблема с внешней обработкой создания связанных объектов. Ругалось на права в момент записи версии.
Получается, что если обработка запущена в безопасном режиме, то ты не можешь далее в коде установить привилегированный режим. Из-за это и вся проблема.
Оставьте свое сообщение

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