1. skala12345 12.04.19 09:56 Сейчас в теме

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

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

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

(11) скриншоты приложил, если поможешь буду признателен.
А обновление метаданных делал обработкой с командой:
&НаСервере
Процедура ОбновитьНоваяНаСервере()
Справочники.ИдентификаторыОбъектовМетаданных.ВыполнитьОбновлениеДанных(Истина, ЛОЖЬ,Ложь);
КонецПроцедуры
Прикрепленные файлы:
8. skala12345 12.04.19 12:59 Сейчас в теме
У меня конфигурация 1С Бит экспедирование
10. Дмитрий74Чел 103 12.04.19 13:02 Сейчас в теме
11. Дмитрий74Чел 103 12.04.19 13:02 Сейчас в теме
Короче, давай скриншоты своих пользователь-роль-rls, раз уж писать не умеешь ответы.
12. Den75Ch 12.04.19 13:21 Сейчас в теме
Не всем дано быть Шнуровыми Сергеями Владимировичами
14. Дмитрий74Чел 103 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 сломается.Лучше сделать группу предопределенной.
- текст запроса неоднозначный. В смысле и сама основная таблица (которая проверяется) называется "контрагенты" и во вложенных подзапросах тот же синоним "контрагенты". Лучше во вложенных задать иной синоним.
15. skala12345 14.04.19 08:56 Сейчас в теме
Я находил где эта ошибка и обработку эту находил и запускал базу с ключем тоже, RLS надо под типовые переписать? Мне к перевозчикам начальник сказал прикрепиться, я предупредил, что при изменении вообще не сможет доступ иметь.. Во вложенной таблице сделаю другой синоним это не проблема, но я думаю это проблему не решит.
Добавил стандартные роли в группе доступа по изменению контрагентов + их изменил (снял галочки для изменения контрагентов в ролях, чтоб RLS в добавленной роли корректно работала и не пересекались со стандартной) все заработало, но это не выход. Я так понял, что ключи доступа к объектам привязаны к пользователю к регистре и если ключ есть то он записывает в базу, если ключа нет, то нет, мне нужно обновить эти ключи для новых ролей, но я так и не понял как это сделать! В приложенном скрине это твоя собственная обработка, в стандартных найти не могу.
Прикрепленные файлы:
17. Дмитрий74Чел 103 15.04.19 09:09 Сейчас в теме
(15) ты не указал что именно указано в RLS роли "Логист" на изменение.
RLS надо под типовые переписать?
Я просто предполагаю, что раз уж проверка срабатывает из кода БСП (библиотеки стандартных подсистем), то возможно в типовых шаблона RLS этот контроль как-то учтен.
Про обработку: это типовая, из конфигурации БСП. https://dropmefiles.com/OG5H3 (начни с самого нового файла, новой версии обработки)

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

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 135 000 руб. до 135 000 руб.
Полный день

Программист 1С
Норильск
зарплата от 50 000 руб. до 80 000 руб.
Полный день

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день