Внедрение БСП

1. yea_1899596 25.01.23 03:21 Сейчас в теме
Здравствуйте. Внедрял подсистемы из БСП в свою конфигурацию. Создал справочник. При удалении элемента справочника в пользовательском режиме ошибка
Ошибка при выполнении обработчика - 'ПередУдалением'
по причине:
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
{ОбщийМодуль.УправлениеСвойствамиСлужебный.Модуль(1335)}: Результат = Запрос.Выполнить().Выгрузить();

по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения', табличная часть: 'ЗависимостиДополнительныхРеквизитов', поле: 'Значение'; право: 'Чтение'
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
по причине:
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. chg 25.01.23 04:33 Сейчас в теме
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса.
Процедура УстановкаПараметровСеанса(ИмяПараметра, УстановленныеПараметры) Экспорт
	
	#Область УниверсальноеОграничение
	Если ИмяПараметра = "ПараметрыОграниченияДоступа" Тогда
		ПараметрыСеанса.ПараметрыОграниченияДоступа = Новый ФиксированнаяСтруктура(Новый Структура);
		УстановленныеПараметры.Добавить("ПараметрыОграниченияДоступа");
		Возврат;
	КонецЕсли;
	
	Если ИмяПараметра = "ОтключениеОбновленияКлючейДоступа" Тогда
		Свойства = Новый Структура;
		Свойства.Вставить("Стандартное",      Ложь);
		Свойства.Вставить("Полное",           Ложь);
		Свойства.Вставить("ИзмененныеСписки", Новый ХранилищеЗначения(Новый Соответствие));
		ПараметрыСеанса.ОтключениеОбновленияКлючейДоступа = Новый ФиксированнаяСтруктура(Свойства);
		УстановленныеПараметры.Добавить("ОтключениеОбновленияКлючейДоступа");
		Возврат;
	КонецЕсли;
	
	ОграничиватьДоступНаУровнеЗаписей = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить();
	УниверсальноеОграничение = Константы.ОграничиватьДоступНаУровнеЗаписейУниверсально.Получить();
	
	ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально = УниверсальноеОграничение;
	
	УстановленныеПараметры.Добавить("ОграничениеДоступаНаУровнеЗаписейУниверсально");
	Если ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально" Тогда
		Возврат;
	КонецЕсли;
	#КонецОбласти
	
	// Для корректной работы препроцессора в ограничениях доступа, требуется инициализации всех
	// параметров сеанса, которые могут быть востребованы в работе препроцессора.
	ИнформационнаяБазаЗаблокированаДляОбновления = ЗначениеЗаполнено(
		ОбновлениеИнформационнойБазыСлужебный.ИнформационнаяБазаЗаблокированаДляОбновления(Ложь));
	
	#Область УниверсальноеОграничение
	Если Не ОграничиватьДоступНаУровнеЗаписей
	 Или Не УниверсальноеОграничение
	 Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда
		
		ПараметрыСеанса.СпискиСОтключеннымОграничениемЧтения =
			?(ИнформационнаяБазаЗаблокированаДляОбновления
				Или Не УниверсальноеОграничение, "Неопределено", "Все");
		
		ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка();
		
		ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа   = ВерсииШаблоновОграниченияДоступа();
		ПараметрыСеанса.РазрешенныйНаборГруппДоступа       = ПустойНаборГруппДоступа;
		ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = ПустойНаборГруппДоступа;
		ПараметрыСеанса.РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
		ПараметрыСеанса.РазрешенныйПользователь            = ПустойНаборГруппДоступа;
		ПараметрыСеанса.ОбщиеПараметрыШаблоновОграниченияДоступа = "";
		ПараметрыСеанса.СпискиСОграничениемЧерезКлючиДоступаГруппДоступа  = "";
		ПараметрыСеанса.СпискиСОграничениемЧерезКлючиДоступаПользователей = "";
		ПараметрыСеанса.СпискиСОграничениемПоПолям = "";
		
		УстановленныеПараметры.Добавить("СпискиСОтключеннымОграничениемЧтения");
		УстановленныеПараметры.Добавить("ВерсииШаблоновОграниченияДоступа");
		УстановленныеПараметры.Добавить("РазрешенныйНаборГруппДоступа");
		УстановленныеПараметры.Добавить("РазрешенныйПустойНаборГруппДоступа");
		УстановленныеПараметры.Добавить("РазрешенныйНаборГруппПользователей");
		УстановленныеПараметры.Добавить("РазрешенныйПользователь");
		УстановленныеПараметры.Добавить("ОбщиеПараметрыШаблоновОграниченияДоступа");
		УстановленныеПараметры.Добавить("СпискиСОграничениемЧерезКлючиДоступаГруппДоступа");
		УстановленныеПараметры.Добавить("СпискиСОграничениемЧерезКлючиДоступаПользователей");
		УстановленныеПараметры.Добавить("СпискиСОграничениемПоПолям");
	КонецЕсли;
	#КонецОбласти
	
	Если Не ОграничиватьДоступНаУровнеЗаписей
	 Или УниверсальноеОграничение
	 Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда
		
		ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейИспользуется =
			?(ИнформационнаяБазаЗаблокированаДляОбновления
				Или УниверсальноеОграничение, "", Ложь);
		
		ПараметрыСеанса.ВсеВидыДоступаКромеСпециальных             = "";
		ПараметрыСеанса.ВидыДоступаСОтключеннымИспользованием      = "";
		ПараметрыСеанса.ВидыДоступаБезГруппДляЗначенияДоступа      = "";
		ПараметрыСеанса.ВидыДоступаСОднойГруппойДляЗначенияДоступа = "";
		
		ПараметрыСеанса.ТипыЗначенийДоступаСГруппами
			= Новый ФиксированныйМассив(Новый Массив);
		
		ПараметрыСеанса.ТаблицыСОтдельнымиНастройкамиПрав = "";
		
		ПараметрыСеанса.ИдентификаторыТаблицСОтдельнымиНастройкамиПрав
			= Новый ФиксированныйМассив(Новый Массив);
		
		ПараметрыСеанса.ТипыВладельцевНастроекПрав
			= Новый ФиксированныйМассив(Новый Массив);
		
		ПараметрыСеанса.ТаблицыРасширенийСОграничениемДоступа = "";
		
		УстановленныеПараметры.Добавить("ОграничениеДоступаНаУровнеЗаписейИспользуется");
		УстановленныеПараметры.Добавить("ВсеВидыДоступаКромеСпециальных");
		УстановленныеПараметры.Добавить("ВидыДоступаСОтключеннымИспользованием");
		УстановленныеПараметры.Добавить("ВидыДоступаБезГруппДляЗначенияДоступа");
		УстановленныеПараметры.Добавить("ВидыДоступаСОднойГруппойДляЗначенияДоступа");
		УстановленныеПараметры.Добавить("ТипыЗначенийДоступаСГруппами");
		УстановленныеПараметры.Добавить("ТаблицыСОтдельнымиНастройкамиПрав");
		УстановленныеПараметры.Добавить("ИдентификаторыТаблицСОтдельнымиНастройкамиПрав");
		УстановленныеПараметры.Добавить("ТипыВладельцевНастроекПрав");
		УстановленныеПараметры.Добавить("ТаблицыРасширенийСОграничениемДоступа");
	КонецЕсли;
	
	Если Не ОграничиватьДоступНаУровнеЗаписей
	 Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда
		Возврат;
	КонецЕсли;
	
	#Область УниверсальноеОграничение
	Если УниверсальноеОграничение Тогда
		ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Ложь, Истина);
		Возврат;
	КонецЕсли;
	#КонецОбласти
	
	ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейИспользуется = Истина;
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь());
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ЗначенияПоУмолчанию.ТипЗначенийДоступа КАК ТипЗначений,
	|	ЗначенияПоУмолчанию.ВсеРазрешеныБезИсключений КАК ВсеРазрешеныБезИсключений
	|ПОМЕСТИТЬ ЗначенияПоУмолчаниюДляПользователя
	|ИЗ
	|	РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию
	|ГДЕ
	|	ИСТИНА В
	|			(ВЫБРАТЬ ПЕРВЫЕ 1
	|				ИСТИНА
	|			ИЗ
	|				Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
	|					ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
	|					ПО
	|						ГруппыДоступаПользователи.Ссылка = ЗначенияПоУмолчанию.ГруппаДоступа
	|							И ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей
	|							И СоставыГруппПользователей.Пользователь = &ТекущийПользователь)
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ЗначенияПоУмолчанию.ТипЗначений
	|ИЗ
	|	ЗначенияПоУмолчаниюДляПользователя КАК ЗначенияПоУмолчанию
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗначенияПоУмолчанию.ТипЗначений
	|
	|ИМЕЮЩИЕ
	|	МИНИМУМ(ЗначенияПоУмолчанию.ВсеРазрешеныБезИсключений) = ИСТИНА";
	
	ТипыЗначенийВсеРазрешеныБезИсключений = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ТипЗначений");
	
	// Установка параметров ВсеВидыДоступаКромеСпециальных, ВидыДоступаСОтключеннымИспользованием.
	ВсеВидыДоступаКромеСпециальных        = Новый Массив;
	ВидыДоступаСОтключеннымИспользованием = Новый Массив;
	
	СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
	
	Для каждого СвойстваВидаДоступа Из СвойстваВидовДоступа.Массив Цикл
		ВсеВидыДоступаКромеСпециальных.Добавить(СвойстваВидаДоступа.Имя);
		
		Если НЕ ВидДоступаИспользуется(СвойстваВидаДоступа.Ссылка)
		 ИЛИ ТипыЗначенийВсеРазрешеныБезИсключений.Найти(СвойстваВидаДоступа.Ссылка) <> Неопределено Тогда
			
			ВидыДоступаСОтключеннымИспользованием.Добавить(СвойстваВидаДоступа.Имя);
		КонецЕсли;
	КонецЦикла;
	
	ПараметрыСеанса.ВсеВидыДоступаКромеСпециальных = ВсеКомбинацииВидовДоступа(ВсеВидыДоступаКромеСпециальных);
	
	УстановленныеПараметры.Добавить("ВсеВидыДоступаКромеСпециальных");
	
	ВсеВидыДоступаКромеСпециальныхОтключены = (ВсеВидыДоступаКромеСпециальных.Количество()
		= ВидыДоступаСОтключеннымИспользованием.Количество());
	
	Если ВсеВидыДоступаКромеСпециальныхОтключены Тогда
		ПараметрыСеанса.ВидыДоступаСОтключеннымИспользованием = "Все";
	Иначе
		ПараметрыСеанса.ВидыДоступаСОтключеннымИспользованием
			= ВсеКомбинацииВидовДоступа(ВидыДоступаСОтключеннымИспользованием);
	КонецЕсли;
	
	УстановленныеПараметры.Добавить("ВидыДоступаСОтключеннымИспользованием");
	
	// Установка параметров ВидыДоступаБезГруппДляЗначенияДоступа,
	// ВидыДоступаСОднойГруппойДляЗначенияДоступа, ТипыЗначенийДоступаСГруппами.
	ПараметрыСеанса.ВидыДоступаБезГруппДляЗначенияДоступа =
		ВсеКомбинацииВидовДоступа(СвойстваВидовДоступа.БезГруппДляЗначенияДоступа);
	ПараметрыСеанса.ВидыДоступаСОднойГруппойДляЗначенияДоступа =
		ВсеКомбинацииВидовДоступа(СвойстваВидовДоступа.СОднойГруппойДляЗначенияДоступа);
	
	ТипыЗначенийДоступаСГруппами = Новый Массив;
	Для каждого КлючИЗначение Из СвойстваВидовДоступа.ТипыЗначенийДоступаСГруппами Цикл
		ТипыЗначенийДоступаСГруппами.Добавить(КлючИЗначение.Значение);
	КонецЦикла;
	ПараметрыСеанса.ТипыЗначенийДоступаСГруппами = Новый ФиксированныйМассив(ТипыЗначенийДоступаСГруппами);
	
	УстановленныеПараметры.Добавить("ВидыДоступаБезГруппДляЗначенияДоступа");
	УстановленныеПараметры.Добавить("ВидыДоступаСОднойГруппойДляЗначенияДоступа");
	УстановленныеПараметры.Добавить("ТипыЗначенийДоступаСГруппами");
	
	// Установка параметров ТаблицыСОтдельнымиНастройкамиПрав,
	// ИдентификаторыТаблицСОтдельнымиНастройкамиПрав, ТипыВладельцевНастроекПрав.
	ВозможныеПрава = УправлениеДоступомСлужебныйПовтИсп.ВозможныеПраваДляНастройкиПравОбъектов();
	ОтдельныеТаблицы = ВозможныеПрава.ОтдельныеТаблицы;
	ТаблицыСОтдельнымиНастройкамиПрав = "";
	ИдентификаторыТаблицСОтдельнымиНастройкамиПрав = Новый Массив;
	Для каждого КлючИЗначение Из ОтдельныеТаблицы Цикл
		ТаблицыСОтдельнымиНастройкамиПрав = ТаблицыСОтдельнымиНастройкамиПрав
			+ "|" + КлючИЗначение.Значение + ";" + Символы.ПС;
		ИдентификаторыТаблицСОтдельнымиНастройкамиПрав.Добавить(КлючИЗначение.Ключ);
	КонецЦикла;
	
	ПараметрыСеанса.ТаблицыСОтдельнымиНастройкамиПрав = ТаблицыСОтдельнымиНастройкамиПрав;
	
	ПараметрыСеанса.ИдентификаторыТаблицСОтдельнымиНастройкамиПрав =
		Новый ФиксированныйМассив(ИдентификаторыТаблицСОтдельнымиНастройкамиПрав);
	
	ПараметрыСеанса.ТипыВладельцевНастроекПрав = ВозможныеПрава.ТипыВладельцев;
	
	ПолныеИмена = Справочники.ИдентификаторыОбъектовРасширений.ПолныеИменаТаблицСДанными();
	ТаблицыРасширений = СтрСоединить(ПолныеИмена, ";" + Символы.ПС + "|");
	ТаблицыРасширений = ?(ТаблицыРасширений = "", "", "|" + ТаблицыРасширений + ";" + Символы.ПС);
	
	ПараметрыСеанса.ТаблицыРасширенийСОграничениемДоступа = ТаблицыРасширений;
	
	УстановленныеПараметры.Добавить("ТаблицыСОтдельнымиНастройкамиПрав");
	УстановленныеПараметры.Добавить("ИдентификаторыТаблицСОтдельнымиНастройкамиПрав");
	УстановленныеПараметры.Добавить("ТипыВладельцевНастроекПрав");
	УстановленныеПараметры.Добавить("ТаблицыРасширенийСОграничениемДоступа");
	
КонецПроцедуры

////////////////////////////////////////////////////////////­///////////////////////////////////////////
// Copyright © 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
////////////////////////////////////////////////////////////­///////////////////////////////////////////
Показать
3. laperuz 47 25.01.23 05:38 Сейчас в теме
Параметр сеанса ОграничениеДоступаНаУровнеЗаписейУниверсально в конфигурацию добавлен?
5. user1928911 15.04.23 15:39 Сейчас в теме
(3) Параметр сеанса ОграничениеДоступаНаУровнеЗаписейУниверсально в конфигурацию добавлен? где добавлять ?? и куда и что
4. user1928911 15.04.23 15:37 Сейчас в теме
Параметр сеанса ОграничениеДоступаНаУровнеЗаписейУниверсально в конфигурацию добавлен? где добавлять ?? и куда
6. user1822263 30.04.23 15:21 Сейчас в теме
При обновлении возникла аналогичная ошибка. Решилась удалением всех ролей администратора, кроме "Администрирование" и "Полные права"
IsKurtis; ludena; +2 Ответить
7. IsKurtis 09.08.24 21:50 Сейчас в теме
(6) Спасибо, реально помогло. Только у меня запросил "Администратор системы" и "полные права"
Оставьте свое сообщение

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