Слетают роли расширения 1с
Поэтому работа с правами доступа – одна из частотных задач при внедрении типовых решений.
И, конечно, при добавлении новых документов или справочников – также нужно сразу настроить права доступа на них.
В сегодняшнем видео
В видео мы рассмотрим, что нужно знать о системе прав доступа в типовых решениях:
- Возможности расширений конфигурации – работа с ролями
- Объекты типовых конфигураций для организации прав доступа
- Ограничения текущей версии БСП
- Права доступа на функциональность типовых решений с помощью функций БСП
Таким образом, Вы узнаете не только как дорабатывать права доступа, но и как выделить привилегированных пользователей, например, кому запрещена отгрузка ниже плановой себестоимости.
Если Вы хотите разобраться с этим прямо сейчас – у нас есть курс по администрированию 1С:
Не откладывайте свое обучение!
Комментарии / обсуждение (45):
Добрый день. Подскажите, что делаю не так- беру стандартную роль которая отвечает за список выводимых разделов, переношу ее в расширение, в нее переношу описание раздела и снимаю полностью галку. После запуска раздел продолжается отображаться.
Добрый день!
Возможно, в конфигурации есть еще одна роль, которая предоставляет права на просмотр подсистемы, поэтому она и отображается в режиме “1С:Предприятие”.
Еще одно предположение – расширение не было подключено при старте сеанса, например, из-за того, что значение какого-либо из контролируемых свойств в расширении не совпало со значением этого свойства в основной конфигурации.
Добрый день.
Подскажите пожалуйста, в расширении создаю роль и даю права на реквизит документа, который создан в расширении конфигурации, а пользователям назначаю группу доступа с этими правами из расширения.
Но у меня с полными правами нет доступа к объекту, а у пользователя – есть. Причем проблема в том, что новые реквизиты объекта в расширении существуют для пользователя, например, Объект.НовыйРеквизит, как и Элементы.НовыйРеквизит, а вот для меня с полными правами Элементы.НовыйРеквизит не существует при открытии формы. БСП 3.0.3
Скорее всего Ваши полные права “не видят” реквизит из расширения. Заимствуйте полные права в расширение и проверьте, что для нового реквизита есть право доступа.
Добрый день.
Не хватало прав на работу с отдельными документами в Бух 3.0 (Расходный кассовый ордер). Точнее они есть, но уж больно широкие, почти полные. Пришлось добавить в расширение БП 3.0 соответствующую роль с правами на РКО и форму журнала. При открытии формы журнала под новой ролью, состав команд и кнопок не соответствует типовой заимствованной форме. Вроде дал все нужные права, в составе команд ничего не менял, функциональных опций не менял.А вот при добавлении на заимствованную форму новых кнопок – все отражается как надо…
Все проверил, трассировка кода ничего не показывает. Подскажите в каком направлении рыть. Спасибо!
Столкнулся с небольшой проблемкой при создании "своих" ролей в конфигураторе и добавлении их пользователям. Пользователю не добавляются созданные в конфигураторе роли, 1С 8.3, Управляемые формы. Гуглил много, ответа толкового не нашёл, поэтому пришлось разбираться самому и как результат, решил поделиться опытом. Возможно, кому-то пригодится.
Столкнулся с небольшой проблемкой при создании "своих" ролей в конфигураторе и добавлении их пользователям. Гуглил много, ответа толкового не нашёл, поэтому пришлось разбираться самому и как результат, решил поделиться опытом. Возможно кому-то пригодится.
Итак, проблема заключалась в следующем:
В какой-либо конфигурации на управляемых формах создаём свою роль (или несколько ролей, как в примере) (см. рис.1), обновляем конфигурацию. В режиме предприятия создаём профиль групп доступа с нашей новой ролью (см. рис.2), добавляем пользователю этот профиль (см. рис.3) и. ничего не происходит, как-будто у этого пользователя не добавлена наша роль. Заходим в конфигуратор, администрирование, пользователи, заходим в пользователя, смотрим "доступные роли" и видим, что у нашего пользователя не выбрана наша роль (см. рис.4).
Почему так происходит? Всё очень просто, разработчики сделали так, что если пользователь "администратор", то есть у него полные права, то собственно говоря, зачем же ему ещё какие-то роли? Ведь у него же и так полные права!
В целом вполне логично и кстати если пользователь не администратор, то всё работает корректно (см. рис.5 и рис.6). Сложности возникают только в том случае, если мы хотим добавить нашу роль/роли пользователю с полными правами. Можно конечно просто в конфигураторе выбрать у пользователя нашу роль/роли, но всё будет работать ровно до тех пор, пока кто-нибудь не решит перезаписать в режиме предприятия права доступа у этого пользователя, после этого "галочка" у добавленной роли "слетит".
Что же делать и где это происходит?
Идём в общие модули - "УправлениеДоступомСлужебный", находим процедуру "ОбновитьРолиПользователей". В ней есть следующий код:
"НовыеРоли" это Таблица значений, в которой выбраны все роли пользователя, которые мы ему назначили в режиме предприятия (включая "наши" роли). Как видно далее по коду, эта таблица очищается, в неё добавляются "ОбязательныеРолиАдминистратора" (Администратор системы, Полные права) и если выбрано, "ДополнительныеРолиАдминистратора" (Интерактивное открытие внешних отчетов и обработок).
Как мне показалось, самый простой и очевидный вариант, это добавить "наши" роли в таблицу "НовыеРоли". Для этого нам надо как-то отделить эти роли от всех остальных, поэтому у всех добавленных нами в конфигураторе ролей, делаем префикс "Доп_". Те "наши" роли, которые мы выбрали для пользователя, собираем в массив "ВыбранныеДополнительныеРоли" и далее из этого массива добавляем роли в таблицу значений "НовыеРоли". Ниже представлен код:
В заключение добавлю, процедура "ОбновитьРолиПользователей" абсолютна одинакова у многих конфигураций (благодаря "унификации" 1С), смотрел в УНФ 1.6, Бухгалтерия предприятия 3.0, Управление торговлей 11.4 (все конфигурации в нескольких версиях), поэтому сделал расширение, которое по идее должно работать на многих конфигурациях на управляемых формах. Можете скачать и добавить его себе, но предварительно не забудьте, что все добавленные роли должны иметь префикс "Доп_". Расширение написано на версии платформы: 8.3.12.1685. В расширение добавлен один общий модуль "УправлениеДоступомСлужебный", в котором только одна процедура "ОбновитьРолиПользователей" (&Вместо) с добавленным, по описанию выше, кодом. При добавлении расширения, не забываем снять галочки "безопасный режим" и "защита от опасных действий".
Описан готовый механизм решения следующей проблемы:
При добавлении ролей в расширение конфигурации 1С 8.3 нет возможности в режиме предприятия корректно назначить их пользователю с полными правами (Администратору). Т.к. отрабатывает стандартный код общего модуля 1С УправлениеДоступомСлужебный процедуры ОбновитьРолиПользователей, который сбрасывает все роли, переназначая основную (ПолныеПрава) и дополнительную (ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок).
А теперь разберем пример на «простом языке».
Была задача создать новые роли в расширении. Режим совместимости конфигурации ниже 8.3.13 (т.е. нет возможности применения «Основные роли» в том числе). При назначении ролей полноправным пользователям выявлена проблема: роли из расширения конфигурации 1С 8.3 недоступны (по вышеуказанной причине).
2. Решение проблемы с ошибкой при расширении конфигурации
Решение можно реализовать как в текущем, так и в отдельном расширении:
1. Добавить в расширение общий модуль УправлениеДоступомСлужебный:
2. Заменить процедуру ОбновитьРолиПользователей
Копировать код 1С:Предприятия из основной конфигурации. Между строк вставить код:
(!) Тут укажите имя своего расширения, которое содержит ваши роли:
3. Подключите (или обновите) расширение.
4. Назначьте эти роли в режиме 1С:Предприятия (Роли – в Профиле, Профиль – в Группе доступа, Группу доступа – полноправному пользователю).
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Описан готовый механизм решения следующей проблемы:
При добавлении ролей в расширение конфигурации 1С 8.3 нет возможности в режиме предприятия корректно назначить их пользователю с полными правами (Администратору). Т.к. отрабатывает стандартный код общего модуля 1С УправлениеДоступомСлужебный процедуры ОбновитьРолиПользователей, который сбрасывает все роли, переназначая основную (ПолныеПрава) и дополнительную (ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок).
А теперь разберем пример на «простом языке».
Была задача создать новые роли в расширении. Режим совместимости конфигурации ниже 8.3.13 (т.е. нет возможности применения «Основные роли» в том числе). При назначении ролей полноправным пользователям выявлена проблема: роли из расширения конфигурации 1С 8.3 недоступны (по вышеуказанной причине).
2. Решение проблемы с ошибкой при расширении конфигурации
Решение можно реализовать как в текущем, так и в отдельном расширении:
1. Добавить в расширение общий модуль УправлениеДоступомСлужебный:
2. Заменить процедуру ОбновитьРолиПользователей
Копировать код 1С:Предприятия из основной конфигурации. Между строк вставить код:
(!) Тут укажите имя своего расширения, которое содержит ваши роли:
3. Подключите (или обновите) расширение.
4. Назначьте эти роли в режиме 1С:Предприятия (Роли – в Профиле, Профиль – в Группе доступа, Группу доступа – полноправному пользователю).
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Как мы и обещали в предыдущей статье, мы постепенно наращиваем функциональность механизма расширений и улучшаем диагностику их работоспособности.
Добавление собственных ролей
Раньше существовала возможность изменять роли типовой конфигурации, заимствуя их и добавляя в них объекты, созданные в расширении. Теперь в расширениях вы можете создавать собственные роли.
Мы видим два основных сценария использования собственных ролей. Во-первых, они могут потребоваться для создания атомарных или комплексных наборов прав на те объекты, которые расширение привносит в конфигурацию. Без какой-либо привязки к уже существующим в конфигурации ролям.
Во-вторых, с их помощью можно создавать атомарные или комплексные наборы прав на объекты конфигурации, которые учитывают специфику доработки.
Роли, созданные в расширениях, вы можете добавить пользователю только программно. Например, таким образом:
Пользователь, роли которого дополнены расширением, отображается в конфигураторе со специальным новым значком.
В конфигураторе вы можете удалить роли пользователя, которые добавлены ему расширениями. Но не по-одиночке, а только все вместе. Для этого у пользователя на вкладке Прочее появился пункт Роли, добавленные расширениями конфигурации. Для удаления ролей нужно снять отметку с этого пункта.
Если добавившее роль расширение в какой-то момент перестаёт проходить проверку применимости и становится неактивным, то роль, добавленная из него, продолжает быть доступной через коллекцию РолиПользователя как обычный объект метаданных. С помощью встроенного языка вы можете удалить её из ролей пользователя, или добавить в набор ролей другого пользователя.
Если же вы удаляете расширение, то все добавленные им роли также удаляются из списков ролей пользователей.
Расширение ролей конфигурации
- Устанавливать права для новых собственных объектов;
- Устанавливать права для собственных реквизитов и табличных частей по умолчанию.
Ограничения собственных и заимствованных ролей
Проверка возможности применения
Некоторое конкретное расширение не всегда может быть применено к некоторой конкретной конфигурации. Например потому, что оно само по себе содержит ошибки в модулях. Или потому, что не совпадают значения контролируемых свойств заимствованных объектов.
Первая проблема легко решается ещё до запуска с помощью проверки модулей расширения. А вот о второй проблеме вы могли узнать только после запуска приложения и подключения расширения. Если в этот момент что-то не так с объектами, к которым выполняется обращение, то платформа сообщала об этом и не подключала расширение.
Для того чтобы снизить трудоёмкость разработки расширений, мы проанализировали сложившуюся ситуацию, немного изменили поведение системы, и реализовали ряд проверок.
Теперь новые средства диагностики позволят вам проверить применимость расширений ещё до их реального запуска вместе с конфигурацией.
При запуске клиентского приложения
В Конфигураторе
Первое место, в котором доступна диагностика, это конфигуратор. Здесь, в окне Расширения конфигурации мы добавили две новых команды: Проверка возможности применения и Проверка возможности применения всех расширений.
Эти команды проверяют применимость выбранного расширения (или всех расширений) к данной информационной базе. При этом проверка учитывает даже те изменения в расширениях и конфигурации, которые выполнены, но не применены к информационной базе.
Аналогичную проверку вы можете выполнить и при пакетном запуске конфигуратора. Для этого мы добавили новый параметр командной строки /CheckCanApplyConfigurationExtensions.
Во встроенном языке
Второе место, в котором вам доступна такая диагностика, это встроенный язык. В МенеджерРасширенийКонфигурации мы добавили новый метод ПроверитьВозможностьПримененияВсех(). А в объект РасширениеКонфигурации - метод ПроверитьВозможностьПрименения(). С помощью этих методов вы можете проверить применимость всех (или одного) расширений информационной базы в текущей области данных по порядку загрузки с учётом уже участвовавших в проверке расширений.
Важной и интересной возможностью здесь является то, что метод ПроверитьВозможностьПрименения() позволяет вам проверить применимость новой версии расширения ещё до того, как она будет загружена непосредственно в информационную базу. Новую версию расширения вы можете передать этому методу в виде двоичных данных.
В стандартной обработке «Управление расширениями конфигурации»
И, наконец, последнее место, где доступна новая диагностика, это стандартная обработка Управление расширениями конфигурации. Здесь мы добавили флажок Проверять применимость при добавлении и загрузке расширений. Если он установлен, а по-умолчанию это так, то применимость будет проверяться перед добавлением или перед загрузкой расширения.
Кроме этого в меню Еще мы добавили две команды, которые позволят вам проверить применимость тех расширений, которые уже имеются в списке.
Читайте также: