Ошибка в процедуре приопределенииназначенияролей общего модуля пользователипереопределяемый

Как исправить проблему Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый?

Всем добра и успехов!
Обновляю свою одинэску.
Бухгалтерия предприятия, редакция 3.0 (3.0.40.42)
1С:Предприятие 8.3 (8.3.8.1652)
Установил несколько релизов, стал ставить релиз 3.0.43.100 и теперь столкнулся с проблемой

{Константа.ПараметрыРаботыПользователей.МодульМенеджераЗначения(205)}: Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.

При проверке ролей для пользователей найдены ошибки:
Роль «ИЛСТ менеджер ЖДПеревозок» содержит недоступное право АдминистрированиеРасширенийКонфигурации.
Роль «ИЛСТ администратор ЖДПеревозок» содержит недоступное право Администрирование.
Роль «ИЛСТ администратор ЖДПеревозок» содержит недоступное право ОбновлениеКонфигурацииБазыДанных.
ВызватьИсключение ЗаголовокОшибки + ТекстОшибки

Как можно это исправить?


  • Вопрос задан

    более трёх лет назад

  • 1257 просмотров

Пригласить эксперта

А почему вы не хотите сразу поставить последнюю версию 3.0.49.23 ? Обновитесь не с *.cfu, из файла *.cf — все обработчики с перехода конфигурации от версии к версии все равно будут запущены.

Видимо в промежуточном релизе был глюк по управлению правами, который стреляет на более свежих платформах (ваша 3.0.43.100 разрабатывалась под 8.3.6.2449 и тогда видимо еще не было расширений конфигурации и соответствующих прав). Как вариант можете поставить платформу 8.3.6 и на ней сделать часть обновлений, а потом продолжить уже на вашей 8.3.8.

Вопрос снят. На всякий случай пишу что сделал:
скопировал ИЛСТ менеджер ЖДПеревозок
В конфигураторе Правка-> поиск->вставил ИЛСТ менеджер ЖДПеревозок ентер.
Снял все права -> f7
и проблема ушла.


  • Показать ещё
    Загружается…

10 июн. 2023, в 00:17

5000 руб./за проект

09 июн. 2023, в 23:05

80000 руб./за проект

09 июн. 2023, в 22:45

1000 руб./за проект

Минуточку внимания

   Kvikk

23.12.15 — 17:07

При обновлении версии программы выскакивает ошибка: {Константа.ПараметрыРаботыПользователей.МодульМенеджераЗначения(205)}: Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.

При проверке ролей для пользователей найдены ошибки:

Роль «Полные права» содержит недоступное право АдминистрированиеРасширенийКонфигурации.

        ВызватьИсключение ЗаголовокОшибки + ТекстОшибки;

В чем может быть причина? может, кто-то сталкивался?

   Amra

1 — 23.12.15 — 17:09

Релиз платформы какой?

   Kvikk

2 — 23.12.15 — 17:10

8.3.6.2152

   ihys

3 — 23.12.15 — 17:34

(0) у роли ПолныеПрава снимаешь флаг в правах «Администрирование расширений конфигурации» в корне объектов.

  

Kvikk

4 — 23.12.15 — 17:50

(3) спасибо! оказывается, была создана еще одна роль с полными правами и этой галкой.

Добрый день!
первый раз, после установи журнала, обновил версию конфигурации с 3.0.43.32 на 3.0.43.50
Обновил, нажал f7. Запустил тонкий клиент БУХ. Был запрос на легальность. Я ответил «ДА»
было 8% выполнения и вылезла ошибка (в прикрепленном файле)
Вот текст ошибки в журнале:

Код
{Константа.ПараметрыРаботыПользователей.МодульМенеджераЗначения(205)}: Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.

При проверке ролей для пользователей найдены ошибки:
Роль "(ВН) Администратор журнала регистрации" содержит недоступное право Администрирование.
ВызватьИсключение ЗаголовокОшибки + ТекстОшибки;

Что делать?

Встроил подсистему 3.56 в типовую УТ 11.2 (для отладки подключаемых обработок).
При попытке обновления служебных метаданных БСП (запустить базу с ключом /С ЗапуститьОбновлениеИнформационнойБазы) появляется ошибка (ее уже исправил, поэтому привожу только способ воспроизведения).
Для исправления в метод ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый добавил по аналогии с имеющимся там кодом строчку

Код

// ИР
 НазначениеРолей.ТолькоДляАдминистраторовСистемы.Добавить(
  Метаданные.Роли.ирПравоАдминистрирование.Имя);

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Область СлужебныйПрограммныйИнтерфейс // Процедура обновляет общие параметры работы пользователей при изменении конфигурации. // // Параметры: // ЕстьИзменения — Булево (возвращаемое значение) — если производилась запись, // устанавливается Истина, иначе не изменяется. // Процедура ОбновитьОбщиеПараметры(ЕстьИзменения = Неопределено, ТолькоПроверка = Ложь) Экспорт УстановитьПривилегированныйРежим(Истина); Если ТолькоПроверка ИЛИ МонопольныйРежим() Тогда СнятьМонопольныйРежим = Ложь; Иначе СнятьМонопольныйРежим = Истина; УстановитьМонопольныйРежим(Истина); КонецЕсли; НазначениеРолей = НазначениеРолей(); ПроверитьНазначениеРолей(НазначениеРолей); ВсеРоли = ВсеРоли(); Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить(«Константа.ПараметрыРаботыПользователей»); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; НачатьТранзакцию(); Попытка Блокировка.Заблокировать(); Параметры = Неопределено; ЕстьТекущиеИзменения = Ложь; СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы(«ПараметрыРаботыПользователей», «НазначениеРолей», НазначениеРолей, ЕстьТекущиеИзменения, ТолькоПроверка, Параметры); Если Не (ТолькоПроверка И ЕстьТекущиеИзменения) Тогда СтандартныеПодсистемыСервер.ОбновитьПараметрРаботыПрограммы(«ПараметрыРаботыПользователей», «ВсеРоли», ВсеРоли, ЕстьТекущиеИзменения, ТолькоПроверка, Параметры); КонецЕсли; ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); Если СнятьМонопольныйРежим Тогда УстановитьМонопольныйРежим(Ложь); КонецЕсли; ВызватьИсключение; КонецПопытки; Если ЕстьТекущиеИзменения Тогда ЕстьИзменения = Истина; КонецЕсли; Если Не (ТолькоПроверка И ЕстьТекущиеИзменения) Тогда СтандартныеПодсистемыСервер.ПодтвердитьОбновлениеПараметраРаботыПрограммы( «ПараметрыРаботыПользователей», «НазначениеРолей»); СтандартныеПодсистемыСервер.ПодтвердитьОбновлениеПараметраРаботыПрограммы( «ПараметрыРаботыПользователей», «ВсеРоли»); КонецЕсли; Если СнятьМонопольныйРежим Тогда УстановитьМонопольныйРежим(Ложь); КонецЕсли; КонецПроцедуры #КонецОбласти #Область СлужебныеПроцедурыИФункции // Проверяет корректность заполнения назначения ролей, а также корректность прав в ролях по назначению. Процедура ПроверитьНазначениеРолей(НазначениеРолей = Неопределено, ПроверитьВсе = Ложь, СписокОшибок = Неопределено) Экспорт Если НазначениеРолей = Неопределено Тогда НазначениеРолей = НазначениеРолей(); КонецЕсли; ЗаголовокОшибки = НСтр(«ru = ‘Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.'»); ТекстОшибки = «»; Назначение = Новый Структура; Для Каждого ОписаниеНазначенияРолей Из НазначениеРолей Цикл Роли = Новый Соответствие; Для Каждого КлючИЗначение Из ОписаниеНазначенияРолей.Значение Цикл Роль = Метаданные.Роли.Найти(КлючИЗначение.Ключ); Если Роль = Неопределено Тогда ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘В метаданных не найдена роль «»%1«», |указанная в назначении %2.'»), КлючИЗначение.Ключ, ОписаниеНазначенияРолей.Ключ); Если СписокОшибок = Неопределено Тогда ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки; Иначе СписокОшибок.Добавить(Неопределено, ОписаниеОшибки); КонецЕсли; Продолжить; КонецЕсли; Роли.Вставить(Роль, Истина); Для Каждого ОписаниеНазначения Из Назначение Цикл Если ОписаниеНазначения.Значение.Получить(Роль) = Неопределено Тогда Продолжить; КонецЕсли; ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Роль «»%1«» указана более чем в одном назначении: |%2, %3.'»), Роль.Имя, ОписаниеНазначенияРолей.Ключ, ОписаниеНазначения.Ключ); Если СписокОшибок = Неопределено Тогда ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки; Иначе СписокОшибок.Добавить(Роль, ОписаниеОшибки); КонецЕсли; КонецЦикла; КонецЦикла; Назначение.Вставить(ОписаниеНазначенияРолей.Ключ, Роли); КонецЦикла; // Проверка ролей внешних пользователей. НедоступныеПрава = Новый Массив; НедоступныеПрава.Добавить(«Администрирование»); НедоступныеПрава.Добавить(«АдминистрированиеРасширенийКонфигурации»); НедоступныеПрава.Добавить(«ОбновлениеКонфигурацииБазыДанных»); НедоступныеПрава.Добавить(«АдминистрированиеДанных»); ПроверитьСоставПравРолей(НедоступныеПрава, Назначение.ТолькоДляВнешнихПользователей, ТекстОшибки, НСтр(«ru = ‘При проверке ролей только для внешних пользователей найдены ошибки:'»), СписокОшибок); ПроверитьСоставПравРолей(НедоступныеПрава, Назначение.СовместноДляПользователейИВнешнихПользователей, ТекстОшибки, НСтр(«ru = ‘При проверке ролей совместно для пользователей и внешних пользователей найдены ошибки:'»), СписокОшибок); // Проверка ролей пользователей. Если ОбщегоНазначенияПовтИсп.РазделениеВключено() Или ПроверитьВсе Тогда Роли = Новый Соответствие; Для Каждого Роль Из Метаданные.Роли Цикл Если Назначение.ТолькоДляАдминистраторовСистемы.Получить(Роль) <> Неопределено Или Назначение.ТолькоДляПользователейСистемы.Получить(Роль) <> Неопределено Тогда Продолжить; КонецЕсли; Роли.Вставить(Роль, Истина); КонецЦикла; НедоступныеПрава = Новый Массив; НедоступныеПрава.Добавить(«Администрирование»); НедоступныеПрава.Добавить(«АдминистрированиеРасширенийКонфигурации»); НедоступныеПрава.Добавить(«ОбновлениеКонфигурацииБазыДанных»); НедоступныеПрава.Добавить(«ТолстыйКлиент»); НедоступныеПрава.Добавить(«ВнешнееСоединение»); НедоступныеПрава.Добавить(«Automation»); НедоступныеПрава.Добавить(«ИнтерактивноеОткрытиеВнешнихОбработок»); НедоступныеПрава.Добавить(«ИнтерактивноеОткрытиеВнешнихОтчетов»); НедоступныеПрава.Добавить(«РежимВсеФункции»); НеразделенныеДанные = НеразделенныеДанные(); ПроверитьСоставПравРолей(НедоступныеПрава, Роли, ТекстОшибки, НСтр(«ru = ‘При проверке ролей для пользователей приложения найдены ошибки:'»), СписокОшибок, НеразделенныеДанные); КонецЕсли; Если Не ОбщегоНазначенияПовтИсп.РазделениеВключено() Или ПроверитьВсе Тогда Роли = Новый Соответствие; Для Каждого Роль Из Метаданные.Роли Цикл Если Назначение.ТолькоДляАдминистраторовСистемы.Получить(Роль) <> Неопределено Или Назначение.ТолькоДляВнешнихПользователей.Получить(Роль) <> Неопределено Тогда Продолжить; КонецЕсли; Роли.Вставить(Роль, Истина); КонецЦикла; НедоступныеПрава = Новый Массив; НедоступныеПрава.Добавить(«Администрирование»); НедоступныеПрава.Добавить(«АдминистрированиеРасширенийКонфигурации»); НедоступныеПрава.Добавить(«ОбновлениеКонфигурацииБазыДанных»); ПроверитьСоставПравРолей(НедоступныеПрава, Роли, ТекстОшибки, НСтр(«ru = ‘При проверке ролей для пользователей найдены ошибки:'»), СписокОшибок); ПроверитьСоставПравРолей(НедоступныеПрава, Назначение.СовместноДляПользователейИВнешнихПользователей, ТекстОшибки, НСтр(«ru = ‘При проверке ролей совместно для пользователей и внешних пользователей найдены ошибки:'»), СписокОшибок); КонецЕсли; Если ЗначениеЗаполнено(ТекстОшибки) Тогда ВызватьИсключение ЗаголовокОшибки + ТекстОшибки; КонецЕсли; КонецПроцедуры // Возвращает назначение ролей, определенное разработчиком. // См. комментарий к процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый. // // Возвращаемое значение: // ФиксированнаяСтруктура — со свойствами: // * ТолькоДляАдминистраторовСистемы — ФиксированноеСоответствие — со свойствами: // * Ключ — Строка — имя роли. // * Значение — Булево — Истина. // * ТолькоДляПользователейСистемы — ФиксированноеСоответствие — со свойствами: // * Ключ — Строка — имя роли. // * Значение — Булево — Истина. // * ТолькоДляВнешнихПользователей — ФиксированноеСоответствие — со свойствами: // * Ключ — Строка — имя роли. // * Значение — Булево — Истина. // * СовместноДляПользователейИВнешнихПользователей — ФиксированноеСоответствие — со свойствами: // * Ключ — Строка — имя роли. // * Значение — Булево — Истина. // Функция НазначениеРолей() Экспорт НазначениеРолей = Пользователи.НазначениеРолей(); Назначение = Новый Структура; Для Каждого ОписаниеНазначенияРолей Из НазначениеРолей Цикл Имена = Новый Соответствие; Для Каждого Имя Из ОписаниеНазначенияРолей.Значение Цикл Имена.Вставить(Имя, Истина); КонецЦикла; Назначение.Вставить(ОписаниеНазначенияРолей.Ключ, Новый ФиксированноеСоответствие(Имена)); КонецЦикла; Возврат Новый ФиксированнаяСтруктура(Назначение); КонецФункции Процедура ПроверитьСоставПравРолей(НедоступныеПрава, ОписаниеРолей, ОбщийТекстОшибки, ЗаголовокОшибки, СписокОшибок, НеразделенныеДанные = Неопределено) ТекстОшибки = «»; Для Каждого ОписаниеРоли Из ОписаниеРолей Цикл Роль = ОписаниеРоли.Ключ; Для Каждого НедоступноеПраво Из НедоступныеПрава Цикл Если ПравоДоступа(НедоступноеПраво, Метаданные, Роль) Тогда ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Роль «»%1«» содержит недоступное право %2.'»), Роль, НедоступноеПраво); Если СписокОшибок = Неопределено Тогда ТекстОшибки = ТекстОшибки + Символы.ПС + ОписаниеОшибки; Иначе СписокОшибок.Добавить(Роль, ЗаголовокОшибки + Символы.ПС + ОписаниеОшибки); КонецЕсли; КонецЕсли; КонецЦикла; Если НеразделенныеДанные = Неопределено Тогда Продолжить; КонецЕсли; Для Каждого СвойстваДанных Из НеразделенныеДанные Цикл ОбъектМетаданных = СвойстваДанных.Значение; Если Не ПравоДоступа(«Чтение», ОбъектМетаданных, Роль) Тогда Продолжить; КонецЕсли; Если ПравоДоступа(«Изменение», ОбъектМетаданных, Роль) Тогда ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Роль «»%1«» содержит право Изменение неразделенного объекта %2.'»), Роль, ОбъектМетаданных.ПолноеИмя()); Если СписокОшибок = Неопределено Тогда ТекстОшибки = ТекстОшибки + Символы.ПС + ОписаниеОшибки; Иначе СписокОшибок.Добавить(ОбъектМетаданных, ЗаголовокОшибки + Символы.ПС + ОписаниеОшибки); КонецЕсли; КонецЕсли; Если СвойстваДанных.Представление = «» Тогда Продолжить; // Не ссылочный объект метаданных. КонецЕсли; Если ПравоДоступа(«Добавление», ОбъектМетаданных, Роль) Тогда ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Роль «»%1«» содержит право Добавление неразделенного объекта %2.'»), Роль, ОбъектМетаданных.ПолноеИмя()); Если СписокОшибок = Неопределено Тогда ТекстОшибки = ТекстОшибки + Символы.ПС + ОписаниеОшибки; Иначе СписокОшибок.Добавить(ОбъектМетаданных, ЗаголовокОшибки + Символы.ПС + ОписаниеОшибки); КонецЕсли; КонецЕсли; Если ПравоДоступа(«Удаление», ОбъектМетаданных, Роль) Тогда ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Роль «»%1«» содержит право Удаление неразделенного объекта %2.'»), Роль, ОбъектМетаданных.ПолноеИмя()); Если СписокОшибок = Неопределено Тогда ТекстОшибки = ТекстОшибки + Символы.ПС + ОписаниеОшибки; Иначе СписокОшибок.Добавить(ОбъектМетаданных, ЗаголовокОшибки + Символы.ПС + ОписаниеОшибки); КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; Если ЗначениеЗаполнено(ТекстОшибки) Тогда ОбщийТекстОшибки = ОбщийТекстОшибки + Символы.ПС + Символы.ПС + ЗаголовокОшибки + ТекстОшибки; КонецЕсли; КонецПроцедуры Функция НеразделенныеДанные() Если Не ОбщегоНазначения.ПодсистемаСуществует(«СтандартныеПодсистемы.РаботаВМоделиСервиса.БазоваяФункциональностьВМоделиСервиса») Тогда Возврат Неопределено; КонецЕсли; Список = Новый СписокЗначений; ВидыМетаданных = Новый Массив; ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.ПланыОбмена, Истина)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.Константы, Ложь)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.Справочники, Истина)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.Последовательности, Ложь)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.Документы, Истина)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.ПланыВидовХарактеристик, Истина)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.ПланыСчетов, Истина)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.ПланыВидовРасчета, Истина)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.БизнесПроцессы, Истина)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.Задачи, Истина)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.РегистрыСведений, Ложь)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.РегистрыНакопления, Ложь)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.РегистрыБухгалтерии, Ложь)); ВидыМетаданных.Добавить(Новый Структура(«Вид, Ссылочный» , Метаданные.РегистрыРасчета, Ложь)); УстановитьПривилегированныйРежим(Истина); МодульРаботаВМоделиСервисаПовтИсп = ОбщегоНазначения.ОбщийМодуль(«РаботаВМоделиСервисаПовтИсп»); МодельДанных = МодульРаботаВМоделиСервисаПовтИсп.ПолучитьМодельДанныхОбласти(); РазделенныеОбъектыМетаданных = Новый Соответствие; Для Каждого ЭлементМоделиДанных Из МодельДанных Цикл ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ЭлементМоделиДанных.Ключ); РазделенныеОбъектыМетаданных.Вставить(ОбъектМетаданных, Истина); КонецЦикла; Для Каждого ОписаниеВида Из ВидыМетаданных Цикл // По видам метаданных. Для Каждого ОбъектМетаданных Из ОписаниеВида.Вид Цикл // По объектам вида. Если РазделенныеОбъектыМетаданных.Получить(ОбъектМетаданных) <> Неопределено Тогда Продолжить; КонецЕсли; Список.Добавить(ОбъектМетаданных, ?(ОписаниеВида.Ссылочный, «Ссылочный», «»)); КонецЦикла; КонецЦикла; Возврат Список; КонецФункции Функция ВсеРоли() Массив = Новый Массив; Соответствие = Новый Соответствие; Таблица = Новый ТаблицаЗначений; Таблица.Колонки.Добавить(«Имя», Новый ОписаниеТипов(«Строка», , Новый КвалификаторыСтроки(256))); Для каждого Роль Из Метаданные.Роли Цикл ИмяРоли = Роль.Имя; Массив.Добавить(ИмяРоли); Соответствие.Вставить(ИмяРоли, Роль.Синоним); Таблица.Добавить().Имя = ИмяРоли; КонецЦикла; ВсеРоли = Новый Структура; ВсеРоли.Вставить(«Массив», Новый ФиксированныйМассив(Массив)); ВсеРоли.Вставить(«Соответствие», Новый ФиксированноеСоответствие(Соответствие)); ВсеРоли.Вставить(«Таблица», Таблица); Возврат ОбщегоНазначения.ФиксированныеДанные(ВсеРоли, Ложь); КонецФункции #КонецОбласти #КонецЕсли

Понравилась статья? Поделить с друзьями:
  • Ошибка в профиле яндекс браузер как убрать
  • Ошибка в профиле что это значит
  • Ошибка в профиле файл настроек поврежден или недействителен
  • Ошибка в профиле ваш профиль открылся некорректно
  • Ошибка в профиле google chrome