Здравствуйте. Внедрял подсистемы из БСП в свою конфигурацию. Создал справочник. При удалении элемента справочника в пользовательском режиме ошибка
Ошибка при выполнении обработчика - 'ПередУдалением'
по причине:
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
{ОбщийМодуль.УправлениеСвойствамиСлужебный.Модуль(1335)}: Результат = Запрос.Выполнить().Выгрузить();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения', табличная часть: 'ЗависимостиДополнительныхРеквизитов', поле: 'Значение'; право: 'Чтение'
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
по причине:
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
Ошибка при выполнении обработчика - 'ПередУдалением'
по причине:
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
{ОбщийМодуль.УправлениеСвойствамиСлужебный.Модуль(1335)}: Результат = Запрос.Выполнить().Выгрузить();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка в ограничении доступа к данным.
объект: 'ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения', табличная часть: 'ЗависимостиДополнительныхРеквизитов', поле: 'Значение'; право: 'Чтение'
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
по причине:
Синтаксическая ошибка "Параметр ОграничениеДоступаНаУровнеЗаписейУниверсально не существует"
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса.
Процедура УстановкаПараметровСеанса(ИмяПараметра, УстановленныеПараметры) Экспорт
#Область УниверсальноеОграничение
Если ИмяПараметра = "ПараметрыОграниченияДоступа" Тогда
ПараметрыСеанса.ПараметрыОграниченияДоступа = Новый ФиксированнаяСтруктура(Новый Структура);
УстановленныеПараметры.Добавить("ПараметрыОграниченияДоступа");
Возврат;
КонецЕсли;
Если ИмяПараметра = "ОтключениеОбновленияКлючейДоступа" Тогда
Свойства = Новый Структура;
Свойства.Вставить("Стандартное", Ложь);
Свойства.Вставить("Полное", Ложь);
Свойства.Вставить("ИзмененныеСписки", Новый ХранилищеЗначения(Новый Соответствие));
ПараметрыСеанса.ОтключениеОбновленияКлючейДоступа = Новый ФиксированнаяСтруктура(Свойства);
УстановленныеПараметры.Добавить("ОтключениеОбновленияКлючейДоступа");
Возврат;
КонецЕсли;
ОграничиватьДоступНаУровнеЗаписей = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить();
УниверсальноеОграничение = Константы.ОграничиватьДоступНаУровнеЗаписейУниверсально.Получить();
ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально = УниверсальноеОграничение;
УстановленныеПараметры.Добавить("ОграничениеДоступаНаУровнеЗаписейУниверсально");
Если ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально" Тогда
Возврат;
КонецЕсли;
#КонецОбласти
// Для корректной работы препроцессора в ограничениях доступа, требуется инициализации всех
// параметров сеанса, которые могут быть востребованы в работе препроцессора.
ИнформационнаяБазаЗаблокированаДляОбновления = ЗначениеЗаполнено(
ОбновлениеИнформационнойБазыСлужебный.ИнформационнаяБазаЗаблокированаДляОбновления(Ложь));
#Область УниверсальноеОграничение
Если Не ОграничиватьДоступНаУровнеЗаписей
Или Не УниверсальноеОграничение
Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда
ПараметрыСеанса.СпискиСОтключеннымОграничениемЧтения =
?(ИнформационнаяБазаЗаблокированаДляОбновления
Или Не УниверсальноеОграничение, "Неопределено", "Все");
ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка();
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа();
ПараметрыСеанса.РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = ПустойНаборГруппДоступа;
ПараметрыСеанса.РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
ПараметрыСеанса.РазрешенныйПользователь = ПустойНаборГруппДоступа;
ПараметрыСеанса.ОбщиеПараметрыШаблоновОграниченияДоступа = "";
ПараметрыСеанса.СпискиСОграничениемЧерезКлючиДоступаГруппДоступа = "";
ПараметрыСеанса.СпискиСОграничениемЧерезКлючиДоступаПользователей = "";
ПараметрыСеанса.СпискиСОграничениемПоПолям = "";
УстановленныеПараметры.Добавить("СпискиСОтключеннымОграничениемЧтения");
УстановленныеПараметры.Добавить("ВерсииШаблоновОграниченияДоступа");
УстановленныеПараметры.Добавить("РазрешенныйНаборГруппДоступа");
УстановленныеПараметры.Добавить("РазрешенныйПустойНаборГруппДоступа");
УстановленныеПараметры.Добавить("РазрешенныйНаборГруппПользователей");
УстановленныеПараметры.Добавить("РазрешенныйПользователь");
УстановленныеПараметры.Добавить("ОбщиеПараметрыШаблоновОграниченияДоступа");
УстановленныеПараметры.Добавить("СпискиСОграничениемЧерезКлючиДоступаГруппДоступа");
УстановленныеПараметры.Добавить("СпискиСОграничениемЧерезКлючиДоступаПользователей");
УстановленныеПараметры.Добавить("СпискиСОграничениемПоПолям");
КонецЕсли;
#КонецОбласти
Если Не ОграничиватьДоступНаУровнеЗаписей
Или УниверсальноеОграничение
Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда
ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейИспользуется =
?(ИнформационнаяБазаЗаблокированаДляОбновления
Или УниверсальноеОграничение, "", Ложь);
ПараметрыСеанса.ВсеВидыДоступаКромеСпециальных = "";
ПараметрыСеанса.ВидыДоступаСОтключеннымИспользованием = "";
ПараметрыСеанса.ВидыДоступаБезГруппДляЗначенияДоступа = "";
ПараметрыСеанса.ВидыДоступаСОднойГруппойДляЗначенияДоступа = "";
ПараметрыСеанса.ТипыЗначенийДоступаСГруппами
= Новый ФиксированныйМассив(Новый Массив);
ПараметрыСеанса.ТаблицыСОтдельнымиНастройкамиПрав = "";
ПараметрыСеанса.ИдентификаторыТаблицСОтдельнымиНастройкамиПрав
= Новый ФиксированныйМассив(Новый Массив);
ПараметрыСеанса.ТипыВладельцевНастроекПрав
= Новый ФиксированныйМассив(Новый Массив);
ПараметрыСеанса.ТаблицыРасширенийСОграничениемДоступа = "";
УстановленныеПараметры.Добавить("ОграничениеДоступаНаУровнеЗаписейИспользуется");
УстановленныеПараметры.Добавить("ВсеВидыДоступаКромеСпециальных");
УстановленныеПараметры.Добавить("ВидыДоступаСОтключеннымИспользованием");
УстановленныеПараметры.Добавить("ВидыДоступаБезГруппДляЗначенияДоступа");
УстановленныеПараметры.Добавить("ВидыДоступаСОднойГруппойДляЗначенияДоступа");
УстановленныеПараметры.Добавить("ТипыЗначенийДоступаСГруппами");
УстановленныеПараметры.Добавить("ТаблицыСОтдельнымиНастройкамиПрав");
УстановленныеПараметры.Добавить("ИдентификаторыТаблицСОтдельнымиНастройкамиПрав");
УстановленныеПараметры.Добавить("ТипыВладельцевНастроекПрав");
УстановленныеПараметры.Добавить("ТаблицыРасширенийСОграничениемДоступа");
КонецЕсли;
Если Не ОграничиватьДоступНаУровнеЗаписей
Или ИнформационнаяБазаЗаблокированаДляОбновления Тогда
Возврат;
КонецЕсли;
#Область УниверсальноеОграничение
Если УниверсальноеОграничение Тогда
ДействующиеПараметрыОграниченияДоступа(Неопределено, Неопределено, Ложь, Истина);
Возврат;
КонецЕсли;
#КонецОбласти
ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейИспользуется = Истина;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь());
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗначенияПоУмолчанию.ТипЗначенийДоступа КАК ТипЗначений,
| ЗначенияПоУмолчанию.ВсеРазрешеныБезИсключений КАК ВсеРазрешеныБезИсключений
|ПОМЕСТИТЬ ЗначенияПоУмолчаниюДляПользователя
|ИЗ
| РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию
|ГДЕ
| ИСТИНА В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
| ИЗ
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ПО
| ГруппыДоступаПользователи.Ссылка = ЗначенияПоУмолчанию.ГруппаДоступа
| И ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей
| И СоставыГруппПользователей.Пользователь = &ТекущийПользователь)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗначенияПоУмолчанию.ТипЗначений
|ИЗ
| ЗначенияПоУмолчаниюДляПользователя КАК ЗначенияПоУмолчанию
|
|СГРУППИРОВАТЬ ПО
| ЗначенияПоУмолчанию.ТипЗначений
|
|ИМЕЮЩИЕ
| МИНИМУМ(ЗначенияПоУмолчанию.ВсеРазрешеныБезИсключений) = ИСТИНА";
ТипыЗначенийВсеРазрешеныБезИсключений = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ТипЗначений");
// Установка параметров ВсеВидыДоступаКромеСпециальных, ВидыДоступаСОтключеннымИспользованием.
ВсеВидыДоступаКромеСпециальных = Новый Массив;
ВидыДоступаСОтключеннымИспользованием = Новый Массив;
СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
Для каждого СвойстваВидаДоступа Из СвойстваВидовДоступа.Массив Цикл
ВсеВидыДоступаКромеСпециальных.Добавить(СвойстваВидаДоступа.Имя);
Если НЕ ВидДоступаИспользуется(СвойстваВидаДоступа.Ссылка)
ИЛИ ТипыЗначенийВсеРазрешеныБезИсключений.Найти(СвойстваВидаДоступа.Ссылка) <> Неопределено Тогда
ВидыДоступаСОтключеннымИспользованием.Добавить(СвойстваВидаДоступа.Имя);
КонецЕсли;
КонецЦикла;
ПараметрыСеанса.ВсеВидыДоступаКромеСпециальных = ВсеКомбинацииВидовДоступа(ВсеВидыДоступаКромеСпециальных);
УстановленныеПараметры.Добавить("ВсеВидыДоступаКромеСпециальных");
ВсеВидыДоступаКромеСпециальныхОтключены = (ВсеВидыДоступаКромеСпециальных.Количество()
= ВидыДоступаСОтключеннымИспользованием.Количество());
Если ВсеВидыДоступаКромеСпециальныхОтключены Тогда
ПараметрыСеанса.ВидыДоступаСОтключеннымИспользованием = "Все";
Иначе
ПараметрыСеанса.ВидыДоступаСОтключеннымИспользованием
= ВсеКомбинацииВидовДоступа(ВидыДоступаСОтключеннымИспользованием);
КонецЕсли;
УстановленныеПараметры.Добавить("ВидыДоступаСОтключеннымИспользованием");
// Установка параметров ВидыДоступаБезГруппДляЗначенияДоступа,
// ВидыДоступаСОднойГруппойДляЗначенияДоступа, ТипыЗначенийДоступаСГруппами.
ПараметрыСеанса.ВидыДоступаБезГруппДляЗначенияДоступа =
ВсеКомбинацииВидовДоступа(СвойстваВидовДоступа.БезГруппДляЗначенияДоступа);
ПараметрыСеанса.ВидыДоступаСОднойГруппойДляЗначенияДоступа =
ВсеКомбинацииВидовДоступа(СвойстваВидовДоступа.СОднойГруппойДляЗначенияДоступа);
ТипыЗначенийДоступаСГруппами = Новый Массив;
Для каждого КлючИЗначение Из СвойстваВидовДоступа.ТипыЗначенийДоступаСГруппами Цикл
ТипыЗначенийДоступаСГруппами.Добавить(КлючИЗначение.Значение);
КонецЦикла;
ПараметрыСеанса.ТипыЗначенийДоступаСГруппами = Новый ФиксированныйМассив(ТипыЗначенийДоступаСГруппами);
УстановленныеПараметры.Добавить("ВидыДоступаБезГруппДляЗначенияДоступа");
УстановленныеПараметры.Добавить("ВидыДоступаСОднойГруппойДляЗначенияДоступа");
УстановленныеПараметры.Добавить("ТипыЗначенийДоступаСГруппами");
// Установка параметров ТаблицыСОтдельнымиНастройкамиПрав,
// ИдентификаторыТаблицСОтдельнымиНастройкамиПрав, ТипыВладельцевНастроекПрав.
ВозможныеПрава = УправлениеДоступомСлужебныйПовтИсп.ВозможныеПраваДляНастройкиПравОбъектов();
ОтдельныеТаблицы = ВозможныеПрава.ОтдельныеТаблицы;
ТаблицыСОтдельнымиНастройкамиПрав = "";
ИдентификаторыТаблицСОтдельнымиНастройкамиПрав = Новый Массив;
Для каждого КлючИЗначение Из ОтдельныеТаблицы Цикл
ТаблицыСОтдельнымиНастройкамиПрав = ТаблицыСОтдельнымиНастройкамиПрав
+ "|" + КлючИЗначение.Значение + ";" + Символы.ПС;
ИдентификаторыТаблицСОтдельнымиНастройкамиПрав.Добавить(КлючИЗначение.Ключ);
КонецЦикла;
ПараметрыСеанса.ТаблицыСОтдельнымиНастройкамиПрав = ТаблицыСОтдельнымиНастройкамиПрав;
ПараметрыСеанса.ИдентификаторыТаблицСОтдельнымиНастройкамиПрав =
Новый ФиксированныйМассив(ИдентификаторыТаблицСОтдельнымиНастройкамиПрав);
ПараметрыСеанса.ТипыВладельцевНастроекПрав = ВозможныеПрава.ТипыВладельцев;
ПолныеИмена = Справочники.ИдентификаторыОбъектовРасширений.ПолныеИменаТаблицСДанными();
ТаблицыРасширений = СтрСоединить(ПолныеИмена, ";" + Символы.ПС + "|");
ТаблицыРасширений = ?(ТаблицыРасширений = "", "", "|" + ТаблицыРасширений + ";" + Символы.ПС);
ПараметрыСеанса.ТаблицыРасширенийСОграничениемДоступа = ТаблицыРасширений;
УстановленныеПараметры.Добавить("ТаблицыСОтдельнымиНастройкамиПрав");
УстановленныеПараметры.Добавить("ИдентификаторыТаблицСОтдельнымиНастройкамиПрав");
УстановленныеПараметры.Добавить("ТипыВладельцевНастроекПрав");
УстановленныеПараметры.Добавить("ТаблицыРасширенийСОграничениемДоступа");
КонецПроцедуры
//////////////////////////////////////////////////////////// ///////////////////////////////////////////
// Copyright © 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
//////////////////////////////////////////////////////////// ///////////////////////////////////////////
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот