Как доработать производительный RLS

18.10.21

Администрирование - Роли и права

Неоднократно в последнее время поступали задачи, когда требовалось доработать новый производительный RLS. В своей статье Ретунский Александр, программист компании АО «Корпоративные ИТ-проекты» (официальный партнер ИнфоСофт) опишет последовательность действий при доработке нового RLS, ключевые моменты и сложности, с которыми столкнулся. В Интернете статей или инструкций, которые подробно и просто описывают – как доработать производительный RLS, не так много и автор делиться своим опытом. В данной статье не будут описаны различия и плюсы/минусы между стандартным и производительным RLS, в Интернете по этому вопросу есть много информации.

 

Задачи, требующие доработок RLS

            Опишу типы задач, в которых потребовалась доработка RLS и приведу примеры реальных задач. В последующих разделах подробно раскрою каждую задачу.

  1. Объект должен учитывать типовое ограничение доступа (реальная задача: типовой документ «Реестр платежей» должен содержать типовое ограничение доступа: «Организация»);
  2. Расширение типового ограничения доступа на другие реквизиты объекта (реальная задача: типовой документ «Перемещение товаров» должен учитывать типовое ограничение доступа: «Организация» по реквизитам: «Организация» и «ОрганизацияПолучатель»); более подробно как организовать работу между филиалами с включенным RLS будет рассказано в следующей статье.
  3. Новое ограничение доступа на типовые объекты (реальная задача: добавить новое ограничение: «Группы финансового учета расчетов» для документа: «Реализация товаров и услуг»).
  4. Объект должен учитывать ограничение доступа через другой объект (реальная задача: добавить новое ограничение «Группы финансового учета расчетов» из объекта «Договоры контрагента» для документа «Заказ клиента»).

 

Объект должен учитывать типовое ограничение доступа

            Чтобы объект учитывал типовое ограничение доступа (организация, склад и т.д.), необходимо выполнить ряд следующих действий:

  1. В первую очередь новый объект нужно добавить в определяемы тип:

- все объекты добавляем в: ВладелецЗначенийКлючейДоступа

- документы в: ВладелецЗначенийКлючейДоступаДокумент

- справочники в: ВладелецЗначенийКлючейДоступаОбъект

- регистры сведений и регистры накопления в: ВладелецЗначенийКлючейДоступаНаборЗаписей

- регистры расчета в: ВладелецЗначенийКлючейДоступаНаборЗаписейРегистраРасчета

  1. В общий модуль «УправлениеДоступомПереопределяемый» в процедуру «ПриЗаполненииСписковСОграничениемДоступа» добавить объект (метаданные).
  2. В общий модуль «УправлениеДоступомПереопределяемый» в процедуру «ПриЗаполненииВидовОграниченийПравОбъектовМетаданных» в запрос - добавить объект и вид доступа.
  3. Добавить новую роль на чтение нашего объекта. Добавить права на – «Чтение», «Просмотр» объекта.

Скопировать в новую роль типовой шаблон RLS - ДляОбъекта(ПолеОбъекта)

Для права «Чтение» для полей <Прочие поля> добавить ограничение: #ДляОбъекта("")

  1. Добавить новую роль на изменение/добавление нашего объекта. Добавить все права, кроме удалений.

Скопировать в новую роль типовой шаблон RLS - ДляОбъекта(ПолеОбъекта)

Для права «Изменение», «Добавление» для полей <Прочие поля> добавить ограничение: #ДляОбъекта("")

  1. В модуль менеджера объекта добавить (при её отсутствии):

#Область ДляВызоваИзДругихПодсистем и процедуру

 Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

в модуле процедуры заполнить - Ограничение.Текст запросом с нужными видами доступа.

  1. В форму объекта добавить код в начало процедуры ПриЧтенииНаСервере:
// СтандартныеПодсистемы.УправлениеДоступом

Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда

МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");

МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);

КонецЕсли;

// Конец СтандартныеПодсистемы.УправлениеДоступом
  1. В форму объекта добавить код в конец процедуры ПослеЗаписиНаСервере:
// СтандартныеПодсистемы.УправлениеДоступом

УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);

// Конец СтандартныеПодсистемы.УправлениеДоступом
  1. В пользовательском режиме при создании новых профилей/ групп доступа (с ограничениями)  обязательно нужно учитывать, чтобы не добавить типовую роль, на которой отключен RLS (отсутствуют шаблоны ограничений). В следующих статьях я подробно опишу об ограничениях типового RLS.
  2. Запустить конфигурацию с параметром: «/c обновление информационной базы» или запустить обработку – «Инструменты разработчика. Обновление Вспомогательных Данных» (можно скачать на сайте ИТС).
  3. В пользовательском режиме удалить запись из регистра сведений «Параметры ограничений доступа» (через возможности – «Еще»). В «НСИ и администрирование» - «Настройки пользователей и прав» - «Ограничение доступа на уровне записей», запустить процедуру обновления доступа на уровне записей. При выполнения данной процедуры будут появляться ошибки, если они есть в ограничениях доступа объектов.

 

Реальная задача: типовой документ «Реестр платежей» должен содержать типовое ограничение доступа: «Организация»:

  1. Добавим документ «Реестр платежей» в определяемый тип: ВладелецЗначенийКлючейДоступа
  2. Добавим документ «Реестр платежей» в определяемый тип: ВладелецЗначенийКлючейДоступаДокумент
  3. В общий модуль «УправлениеДоступомПереопределяемый» в конец процедуры «ПриЗаполненииСписковСОграничениемДоступа» добавил код:
Списки.Вставить(Метаданные.Документы.РеестрПлатежей, Истина);
  1. В общий модуль «УправлениеДоступомПереопределяемый» в процедуру «ПриЗаполненииВидовОграниченийПравОбъектовМетаданных» в конец запроса добавим следующий код:
|Документ.РеестрПлатежей.Чтение.Организации

|Документ.РеестрПлатежей.Изменение.Организации
  1. Добавим новую роль на чтение документа «Реестр платежей», согласно рисунку 1.

Рисунок 1 – Роль «Чтение реестра платежей».

 

  1. Добавим новую роль на добавление/изменение документа «Реестр платежей», согласно рисунку 2.

Рисунок 2 – Роль «Добавление изменение реестра платежей».

 

  1. Добавим в модуль менеджера документа «Реестр платежей» следующий код:
#Область ДляВызоваИзДругихПодсистем

Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт


           Ограничение.Текст =

           "РазрешитьЧтениеИзменение

           |ГДЕ

           |           ЗначениеРазрешено(Организация";


КонецПроцедуры

#КонецОбласти
  1. В форме документа «Реестр Платежей» добавим в начало процедуры ПриЧтенииНаСервере, следующий код:
// СтандартныеПодсистемы.УправлениеДоступом

Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда

МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");

МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);

КонецЕсли;

// Конец СтандартныеПодсистемы.УправлениеДоступом
  1. В форме документа «Реестр Платежей» добавим в конец процедуры ПослеЗаписиНаСервере, следующий код:
// СтандартныеПодсистемы.УправлениеДоступом

УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);

// Конец СтандартныеПодсистемы.УправлениеДоступом
  1. Создаем новый профиль/группу доступа – «Реестр платежей» (ограничение по организациям) добавляем туда новые роли.

Добавляем в группу доступа пользователей, обязательно проверяем – чтобы не были даны права на документ – «Реестр платежей» без RLS (т.к. в типовых ролях может отсутствовать RLS (шаблоны ограничений доступа)).

  1. Запустим обработку – «Инструменты разработчика. Обновление Вспомогательных Данных», выполним все пункты (можно скачать на сайте ИТС).
  2. В пользовательском режиме удалить запись из регистра сведений «Параметры ограничений доступа» (через возможности – «Еще»). В «НСИ и администрирование» - «Настройки пользователей и прав» - «Ограничение доступа на уровне записей», запустить процедуру обновления доступа на уровне записей. При выполнения данной процедуры будут появляться ошибки, если они есть в ограничениях доступа документа «Реестр платежей».

 

Расширение типового ограничения доступа на другие реквизиты объекта

Чтобы расширить типовое ограничения доступа на другие реквизиты объекта, необходимо доработать только в модуле менеджера процедуру – ПриЗаполненииОграниченияДоступа.

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

 

Реальная задача: типовой документ «Перемещение товаров» должен учитывать типовое ограничение доступа: «Организация» по реквизитам: «Организация» и «ОрганизацияПолучатель».

Изменяем код процедуры «ПриЗаполненииОграниченияДоступа» документа «Перемещение товаров» в модуле менеджера на следующий:     

       Ограничение.Текст =

            "РазрешитьЧтениеИзменение

            |ГДЕ

            |           (ЗначениеРазрешено(Организация)

            |           ИЛИ ЗначениеРазрешено(ОрганизацияПолучатель))

            |           И( ЗначениеРазрешено(СкладОтправитель)

            |           ИЛИ ЗначениеРазрешено(СкладПолучатель)

            |           ) ";

Создаем новый профиль/группу доступа – «Перемещение товаров» добавляем туда роли для документа «Перемещение товаров» или выбираем уже существующий и туда добавляем роли (ограничение по организациям).

Добавляем в группу доступа пользователей, обязательно проверяем – чтобы не были даны права на документ – «Перемещение товаров» без RLS (т.к. в типовых ролях может отсутствовать RLS (шаблоны ограничений доступа)).

 

Новое ограничение доступа на объекты

Чтобы типовой объект учитывал новое ограничение доступа, необходимо выполнить ряд следующих действий:

  1. Добавить новое ограничение в два определяемых типа:

- ЗначениеДоступа;

- ЗначениеДоступаОбъект.

  1. В общий модуль «УправлениеДоступомУТ» в процедуру «ПриЗаполненииВидовДоступа» добавить данные о новом виде доступа.
  2. В общий модуль «УправлениеДоступомПереопределяемый» в процедуру «ПриЗаполненииВидовОграниченийПравОбъектовМетаданных» добавить в запросе - данные о новом виде доступа в объекте.
  3. В модуле менеджера объекта в процедуру «ПриЗаполненииОграниченияДоступа» добавить необходимый реквизит для ограничения в переменную: Ограничение.Текст
  4. В пользовательском режиме при создании новых профилей/групп доступа (с ограничениями) – обязательно нужно учитывать, чтобы не добавить типовую роль, на которой отключен RLS (отсутствуют шаблоны ограничений). В следующих статьях я подробно опишу об ограничениях типового RLS.
  5. Запустить конфигурацию с параметром: «/c обновление информационной базы» или запустить обработку – «Инструменты разработчика. Обновление Вспомогательных Данных» (можно скачать на сайте ИТС).
  6. В пользовательском режиме удалить запись из регистра сведений «Параметры ограничений доступа» (через возможности – «Еще»). В «НСИ и администрирование» - «Настройки пользователей и прав» - «Ограничение доступа на уровне записей», запустить процедуру обновления доступа на уровне записей. При выполнения данной процедуры будут появляться ошибки, если они есть в ограничениях доступа объектов.

Для добавление нового ограничения доступа на нетиповой объект, нужно выполнить также действия из пункта «Объект должен учитывать типовое ограничение доступа».

 

Реальная задача: добавить новое ограничение: «Группы финансового учета расчетов» для документа: «Реализация товаров и услуг».

  1. Добавить новое ограничение «Группы финансового учета расчетов» в два определяемых типа:

- ЗначениеДоступа;

- ЗначениеДоступаОбъект.

  1. В общий модуль «УправлениеДоступомУТ» в процедуру «ПриЗаполненииВидовДоступа» добавим следующий код:
ВидДоступа = ВидыДоступа.Добавить();

ВидДоступа.Имя = "ГруппыФинансовогоУчетаРасчетов";

ВидДоступа.Представление = НСтр("ru = 'Группы финансового учета расчетов'");

ВидДоступа.ТипЗначений   = Тип("СправочникСсылка.ГруппыФинансовогоУчетаРасчетов");
  1.  В общий модуль «УправлениеДоступомПереопределяемый» в процедуру «ПриЗаполненииВидовОграниченийПравОбъектовМетаданных» добавим следующий код в конец запроса:
|Документ.РеализацияТоваровУслуг.Чтение.ГруппыФинансовогоУчетаРасчетов

|Документ.РеализацияТоваровУслуг.Изменение.ГруппыФинансовогоУчетаРасчетов
  1. В модуле менеджера документа «Реализация товаров и услуг» в процедуру «ПриЗаполненииОграниченияДоступа» внесем следующий код:
      Ограничение.Текст =

      "РазрешитьЧтениеИзменение

      |ГДЕ

      |           ЗначениеРазрешено(Организация)

      |           И ЗначениеРазрешено(Склад)

      |           И ЗначениеРазрешено(Подразделение)

      |           И ЗначениеРазрешено(Партнер)

      |           И ЗначениеРазрешено(ГруппаФинансовогоУчета)";
  1. Создаем новый профиль/группу доступа – «Реализация товаров и услуг» добавляем туда роли для документа «Реализация товаров и услуг» или выбираем уже существующий и туда добавляем роли (ограничение по группа финансового учета расчетов) (см. рисунок 3).

Рисунок 3 – Отображение нового вида доступа: Группы финансового учета расчетов.

 

  1. Добавляем в группу доступа пользователей, обязательно проверяем – чтобы не были даны права на документ – «Реализация товаров и услуг» без RLS (т.к. в типовых ролях может отсутствовать RLS (шаблоны ограничений доступа)).
  2. Запустить обработку – «Инструменты разработчика. Обновление Вспомогательных Данных», выбрать все пункты (можно скачать на сайте ИТС).
  3. В пользовательском режиме удалить запись из регистра сведений «Параметры ограничений доступа» (через возможности – «Еще»). В «НСИ и администрирование» - «Настройки пользователей и прав» - «Ограничение доступа на уровне записей», запустить процедуру обновления доступа на уровне записей. При выполнения данной процедуры будут появляться ошибки, если они есть в ограничениях доступа документа «Перемещение товаров».

 

Объект должен учитывать ограничение доступа через другой объект

Чтобы учитывалось ограничение доступа через другой объект в исходном объекте, достаточно в модуле менеджера объекта в процедуре «ПриЗаполненииОграниченияДоступа» добавить следующую конструкцию в переменную Ограничение.Текст:

Ограничение.Текст =

"ПрисоединитьДополнительныеТаблицы

|ЭтотСписок КАК Т //Исходный объект с его реквизитами

|ЛЕВОЕ СОЕДИНЕНИЕ ХХХ КАК Т2 //присоединяем другие объекты

|           ПО Т2.хх = Т.ххх //можем использовать необходимые поля в соединениях

|……….. //может быть несколько соединений

|;

|РазрешитьЧтениеИзменение

|ГДЕ

|ЗначениеРазрешено(Т.ххх) //ограничение из основного объекта

|И ЗначениеРазрешено(Т2.ххх)//ограничение через реквизиты другого объекта";

В пользовательском режиме при создании новых профилей/групп доступа (с учетом нужного ограничения) – обязательно нужно учитывать, чтобы не добавить типовую роль, на которой отключен RLS (отсутствуют шаблоны ограничений). В следующих статьях я подробно опишу об ограничениях типового RLS.

 

Реальная задача: добавить новое ограничение «Группы финансового учета расчетов» из объекта «Договоры контрагента» для документа «Заказ клиента»

Добавим в модуле менеджера документа «Заказ клиента» в процедуру «ПриЗаполненииОграниченияДоступа» следующий код:        

    Ограничение.Текст =

            "ПрисоединитьДополнительныеТаблицы

            |ЭтотСписок КАК Т

            |ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК Т2

            |           ПО Т2.Ссылка = Т.Договор

            |;

            |РазрешитьЧтениеИзменение

            |ГДЕ

            |           ЗначениеРазрешено(Т.Организация)

            |           И ЗначениеРазрешено(Т.Склад)

            |           И ЗначениеРазрешено(Т.Партнер)

            |           И ЗначениеРазрешено(Т.Подразделение)

            |           И ЗначениеРазрешено(Т2.ГруппаФинансовогоУчета)";

Создаем новый профиль/группу доступа – «Заказ клиента» добавляем туда роли для документа «Заказ клиента» или выбираем уже существующий и туда добавляем роли (ограничение по группам финансового учет расчетов).

Добавляем в группу доступа пользователей, обязательно проверяем – чтобы не были даны права на документ – «Заказ клиента» без RLS (т.к. в типовых ролях может отсутствовать RLS (шаблоны ограничений доступа).

 

Тестирование описанных доработок проводил на конфигурации: 1С:ERP. Управление холдингом (3.1.4.31).  Но это применимо и для всех остальных конфигураций, которые поддерживают производительный RLS.

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    127447    688    389    

740

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    3835    20    1    

43

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4791    12    2    

38

Запрет доступа к данным по зарплате для БП 3.0 и КА 2.5

Зарплата Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5700 руб.

27.05.2021    33416    206    89    

166

Роли для кладовщика

Логистика, склад и ТМЦ Роли и права Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Расширение, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

2520 руб.

21.05.2019    1692797    554    192    

134

Расширение для разграничения доступа к контрагентам и обработка для группового назначения доступа для Бухгалтерии (RLS) 3.0.143.42

Роли и права Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение предназначено для Бухгалтерии предприятия (версии ПРОФ и КОРП). Типовая конфигурация остается на поддержке. С помощью расширения менеджер по продажам будет иметь доступ к контрагентам и списку их документов только в случае, если он является для них ответственным. Пользователю с полными правами также доступна обработка «Назначение ответственных» для группового добавления/удаления ответственного в карточке контрагента. Есть версия данного расширения для клиентов Fresh - в магазине расширений (Fresh)

9360 руб.

14.09.2022    5886    7    4    

9

Универсальная система оповещений в базе или по почте по произвольным условиям, расписанием, ролям и пользователям (Расширение / конфигурация для платформ 8.3.6+, для ЛЮБЫХ баз)

Роли и права Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Данная система разработана как альтернатива стандартной системе напоминаний. Но имеет ряд существенных преимуществ: отображение в базе или с отправкой по почте, свое расписание, возможность фильтрации по ролям и пользователям, формирование своих запросов и макетов, шаблоны писем, работа в фоне. А также может блокировать работу пользователей при заданных условиях. Может работать в составе любой конфигурации. Имеется справка с описанием возможностей. (Обновление от 20.02.2024, версия 2.2, расширение)

19200 руб.

29.11.2019    24846    14    8    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. rozer 307 20.10.21 11:51 Сейчас в теме
2. unichkin 1565 20.10.21 12:56 Сейчас в теме
Добрый день.
1) А какая версия БСП используется?
2) Дополню - что доработки связанных объектов хорошо контроллятся поставляемым инструментом "ПроверкаВнедренияБСП", с БСП v.3.1.4 - умеет работать на основе текстов EDT
3) Не сталкивались ли Вы с задачей опосредованного сокрытия объектов? Например, есть некий справочник, у которого есть реквизит "БанковскийСчет", но нет реквизита "Организация". Элементы с пустой организацией в банковском счете нужно отображать. Правило может быть таким:
Ограничение.Текст =
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК ЭтотСписок
	|
	|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
	|    ПО БанковскиеСчета.Ссылка = ЭтотСписок.БанковскийСчет
	|;
	|РазрешитьЧтениеИзменение
	|ГДЕ
	|    ЗначениеРазрешено(БанковскиеСчета.Организация, ПустаяСсылка КАК Истина)";
Показать

Есть еще вариации - проблема в том, что это не работает. А в некоторых случаях вызывает ошибку при обновлении ключей доступа. Заставить это работать удалось на БСП v3.1.5, причем понадобилось вносить правки в поставляемый модуль.
Возможно есть способ обойти это без добавления реквизитов, без доработок в поставляемой библиотеке. Если у Вас был опыт решения подобных задач - поделитесь?
3. rozer 307 20.10.21 13:37 Сейчас в теме
8. dimaster 39 29.08.23 16:34 Сейчас в теме
(3)Доброе! как ограничить доступ к паре-тройке контрагентов?
RLS производительный. группы доступа и тп.
тормозит. можно ли как-то закастомить RLS с учетом того, что доступ ограничивать нужно всего к паре -тройке партнеров?
частный случай. чтоб не вот эти левые соединения по профилям/группам и тп, а, может, просто как-то в сеанс пользователя помещать это право. типа булево "запрет_просмотра_хитрых_контров"
куда смотреть?

апд. кроч, можно ли как-то "хакнуть" рлс по партнерам с учетом того, что нужно всего пару контров спрятать. может, группу ГруппаДОступаПартнеров переопределить или тип того. просто в бсп реализован общий механизм. когда туча групп доступа парнеров и туча партнеров. всякие вот эти соединения таблиц и пересчет ключей и тп.
может, можно ускорить, предположив не универсальный механизм, а хак для частного случая
4. droplet 81 20.10.21 16:38 Сейчас в теме
Полезная статья.
Удобно использовать как памятку, особенно когда не очень часто добавляешь новые объекты и нужно вспомнить все пункты подсистемы БСП, чтобы прописать для них РЛС.
Небольшое замечание по п.1 для задачи описания типового ограничения доступа для нового объекта: в определяемом типе ВладелецЗначенийКлючейДоступа указываются все ссылочные типы объектов, регистров там нет.
5. rozer 307 27.01.22 10:11 Сейчас в теме
+ (4) хорошо что 1с в БСП поставляет УправлениеДоступом.epf. Очень помогает и делает 90% автоматом что рассмотрено в статье.
6. JohnyDeath 301 03.02.22 09:58 Сейчас в теме
А если воспользоваться сразу обработкой из БСП, где показано всё по шагам и с кусками кода для копипаста, то возможно всё прошло бы быстрей и проще.
https://infostart.ru/1c/articles/1594229/
9. oldy 2 05.12.23 22:51 Сейчас в теме
(6) Это ссылка на статью того же автора :))
7. endim 30.04.23 22:04 Сейчас в теме
Для тех кто прочел и ничего не понял.
Перед изучением данной статьи рекомендую ознакомиться с материалами по этой ссылке
https://career.i-neti.ru/1s-rls/
Оставьте свое сообщение