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

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 Ответить 1
7. IsKurtis 09.08.24 21:50 Сейчас в теме
(6) Спасибо, реально помогло. Только у меня запросил "Администратор системы" и "полные права"
Оставьте свое сообщение

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