Ошибка прав доступа

1. skala12345 12.04.19 09:56 Сейчас в теме
Создал пользователя, создал роль к нему в конфигурации, проставил необходимые RLS права и уже 2 недели бьюсь с ошибкой при добавлении контактного лица, в журнале пишет ошибка регистр сведений. Ключидоступакобьектам, а при добавлении в режиме предприятия пишет, что на фото. Обновление служебных метаданных не помогает. Может кто сталкивался с такой ошибкой??
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
16. DrZombi 290 14.04.19 13:41 Сейчас в теме
(1) РЛС ЗЛО, забей на неё, сделай по простому :)
18. DrZombi 290 17.04.19 11:17 Сейчас в теме
(1) Забил на такое, добавил Пользователя и дал ему доступ делать с ним, что хошь :)
РЛС оно интересно, если 300 человек заносит информацию в одну и туже карточку.
А когда это делает ОДИН человек, то накой РЛС там? :)
2. Дмитрий74Чел 234 12.04.19 10:59 Сейчас в теме
Полный текст ошибки из ЖР в студию
3. Дмитрий74Чел 234 12.04.19 11:00 Сейчас в теме
4. Дмитрий74Чел 234 12.04.19 11:02 Сейчас в теме
И вообще, добавление ролей через конфигуратор ("создал роль к нему в конфигурации") - прошлый век для современных УФ-конфигураций на БСП. Назначение ролей должно выполняться через режим Предприятия, через профили доступа и группы доступа.
7. skala12345 12.04.19 12:58 Сейчас в теме
(4) а интересно, как ты RLS будешь прописывать для каждой роли, если они пересекаются?? Если в одной роли все разрешено, а в другой ты запрет поставил, через RLS, то он не сработает.
5. Дмитрий74Чел 234 12.04.19 11:04 Сейчас в теме
P.s. обновление идентификаторов доступа делали? С галочками на фото знакомы?
Прикрепленные файлы:
6. skala12345 12.04.19 12:56 Сейчас в теме
(5) нет не делал, где это находится? Я программно обновлял!
9. Дмитрий74Чел 234 12.04.19 13:01 Сейчас в теме
(6)
Я программно обновлял!

Ну очень подробное описание, спасибо (сарказм).
13. skala12345 12.04.19 21:59 Сейчас в теме
(9) Ссори, если что не так.

(11) скриншоты приложил, если поможешь буду признателен.
А обновление метаданных делал обработкой с командой:
&НаСервере
Процедура ОбновитьНоваяНаСервере()
Справочники.ИдентификаторыОбъектовМетаданных.ВыполнитьОбновлениеДанных(Истина, ЛОЖЬ,Ложь);
КонецПроцедуры
Прикрепленные файлы:
19. Trec 14.09.20 11:44 Сейчас в теме
(5)Такая же ошибка, рлс типовые - помогла обработка ОбновлениеВспомогательныхДанных из БСП
8. skala12345 12.04.19 12:59 Сейчас в теме
У меня конфигурация 1С Бит экспедирование
10. Дмитрий74Чел 234 12.04.19 13:02 Сейчас в теме
11. Дмитрий74Чел 234 12.04.19 13:02 Сейчас в теме
Короче, давай скриншоты своих пользователь-роль-rls, раз уж писать не умеешь ответы.
12. Den75Ch 12.04.19 13:21 Сейчас в теме
Не всем дано быть Шнуровыми Сергеями Владимировичами
14. Дмитрий74Чел 234 13.04.19 23:38 Сейчас в теме
1) на моем снимке экрана обработка ИнструментыРазработчикаОбновлениеВспомогательныхДанных - ищи в папке tmplts в подпапке БСП. Т.е. надо развернуть дистрибутив БСП.
2) на твоем снимке экрана есть точное место ошибки: УправлениеДоступомСлужебный строка 7925
// Для процедур ПроверитьДоступКОбъекту, ПроверитьДоступКНаборуЗаписей.
Процедура СообщитьОбОшибкеДоступа(Данные, ПередЗаписью, ПравоЧтения, ПравоИзменения, ЭтоНовый)
	
	Если ПередЗаписью Тогда
		Если ПравоЧтения Тогда
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Недостаточно прав для изменения существующей версии:
				           |%1'"), ПредставлениеДанных(Данные));
		Иначе
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Недостаточно прав для чтения существующей версии:
				           |%1'"), ПредставлениеДанных(Данные));
		КонецЕсли;
	Иначе
		Если ПравоЧтения И ПравоИзменения Тогда
			Если ЭтоНовый Тогда
				ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Недостаточно прав для записи новой версии (нет права добавления):
					           |%1'"), ПредставлениеДанных(Данные));
			Иначе
				ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Недостаточно прав для записи новой версии (нет права добавления для сделанных изменений):
					           |%1'"), ПредставлениеДанных(Данные));
			КонецЕсли;
		ИначеЕсли ПравоЧтения Тогда
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Недостаточно прав для записи новой версии (ее невозможно будет изменить):
				           |%1'"), ПредставлениеДанных(Данные));
		Иначе
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Недостаточно прав для записи новой версии (ее невозможно будет прочитать):
				           |%1.'"), ПредставлениеДанных(Данные));
		КонецЕсли;
	КонецЕсли;
	
	ВызватьИсключение ТекстОшибки;
	
КонецПроцедуры
Показать

Итак, суть ошибки в том, что нет прав изменения после записи такого контрагента.
- либо проблема в отсутствии обновления регистров и прочих данных, которые указаны на моем снимке экрана. Другой способ обновления - запустить базу с ключом ЗапуститьОбновлениеИнформационнойБазы (https://its.1c.ru/db/bsp22doc#content:234:1:issogl2_создание_профильных_ролей)
-либо в тесте RLS для права "изменения" (его нет в снимках экрана)
3) текст условия RLS явно нетиповой
- привязываться к названию группы контрагентов - плохо. Стоит кому-то переименовать группу и RLS сломается.Лучше сделать группу предопределенной.
- текст запроса неоднозначный. В смысле и сама основная таблица (которая проверяется) называется "контрагенты" и во вложенных подзапросах тот же синоним "контрагенты". Лучше во вложенных задать иной синоним.
misha226; +1 Ответить
15. skala12345 14.04.19 08:56 Сейчас в теме
Я находил где эта ошибка и обработку эту находил и запускал базу с ключем тоже, RLS надо под типовые переписать? Мне к перевозчикам начальник сказал прикрепиться, я предупредил, что при изменении вообще не сможет доступ иметь.. Во вложенной таблице сделаю другой синоним это не проблема, но я думаю это проблему не решит.
Добавил стандартные роли в группе доступа по изменению контрагентов + их изменил (снял галочки для изменения контрагентов в ролях, чтоб RLS в добавленной роли корректно работала и не пересекались со стандартной) все заработало, но это не выход. Я так понял, что ключи доступа к объектам привязаны к пользователю к регистре и если ключ есть то он записывает в базу, если ключа нет, то нет, мне нужно обновить эти ключи для новых ролей, но я так и не понял как это сделать! В приложенном скрине это твоя собственная обработка, в стандартных найти не могу.
Прикрепленные файлы:
17. Дмитрий74Чел 234 15.04.19 09:09 Сейчас в теме
(15) ты не указал что именно указано в RLS роли "Логист" на изменение.
RLS надо под типовые переписать?
Я просто предполагаю, что раз уж проверка срабатывает из кода БСП (библиотеки стандартных подсистем), то возможно в типовых шаблона RLS этот контроль как-то учтен.
Про обработку: это типовая, из конфигурации БСП. https://dropmefiles.com/OG5H3 (начни с самого нового файла, новой версии обработки)

Я так понял, что ключи доступа к объектам привязаны к пользователю к регистре и если ключ есть то он записывает в базу, если ключа нет, то нет, мне нужно обновить эти ключи для новых ролей, но я так и не понял как это сделать!
Не уверен, что дело обстоит именно так как ты пишешь. Но единственный способ оновить служебные регистры со 100% вероятностью - запуск приложенной обработки со всеми флагами.
Оставьте свое сообщение

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