Как доработать производительный 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.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

15500 руб.

02.09.2020    223149    1212    415    

1062

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

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

16000 руб.

10.11.2023    20174    77    39    

92

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

20400 руб.

06.12.2023    18145    68    10    

102

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

Расширение для 1С:Бухгалтерия 3.0, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

5000 руб.

21.05.2019    1698833    587    195    

143

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

Получение необходимой информации по правам доступа в разрезе групп доступа, профилей групп доступа, пользователей / групп пользователей, объектов конфигурации и ролей. Легко можно настроить состав и порядок вывода информации по правам, настроить необходимые фильтры и получить более детальную расшифровку по группировкам отчета.

5000 руб.

16.11.2015    52005    97    46    

159

Ценообразование, анализ цен Роли и права Системный администратор 1С v8.3 Управление правами 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Расширение возможностей программы 1С:УНФ 1.6 и 3.0. Функционал расширения - разграничение всевозможных прав пользователей и контроль при совершении различных действий.

5016 руб.

23.02.2018    64009    177    264    

168

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

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

9360 руб.

14.09.2022    7772    13    6    

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

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

апд. кроч, можно ли как-то "хакнуть" рлс по партнерам с учетом того, что нужно всего пару контров спрятать. может, группу ГруппаДОступаПартнеров переопределить или тип того. просто в бсп реализован общий механизм. когда туча групп доступа парнеров и туча партнеров. всякие вот эти соединения таблиц и пересчет ключей и тп.
может, можно ускорить, предположив не универсальный механизм, а хак для частного случая
4. droplet 81 20.10.21 16:38 Сейчас в теме
Полезная статья.
Удобно использовать как памятку, особенно когда не очень часто добавляешь новые объекты и нужно вспомнить все пункты подсистемы БСП, чтобы прописать для них РЛС.
Небольшое замечание по п.1 для задачи описания типового ограничения доступа для нового объекта: в определяемом типе ВладелецЗначенийКлючейДоступа указываются все ссылочные типы объектов, регистров там нет.
5. rozer 313 27.01.22 10:11 Сейчас в теме
+ (4) хорошо что 1с в БСП поставляет УправлениеДоступом.epf. Очень помогает и делает 90% автоматом что рассмотрено в статье.
user1026251; +1 Ответить
6. JohnyDeath 302 03.02.22 09:58 Сейчас в теме
А если воспользоваться сразу обработкой из БСП, где показано всё по шагам и с кусками кода для копипаста, то возможно всё прошло бы быстрей и проще.
https://infostart.ru/1c/articles/1594229/
user1026251; +1 Ответить
9. oldy 3 05.12.23 22:51 Сейчас в теме
(6) Это ссылка на статью того же автора :))
user1026251; +1 Ответить
7. endim 30.04.23 22:04 Сейчас в теме
Для тех кто прочел и ничего не понял.
Перед изучением данной статьи рекомендую ознакомиться с материалами по этой ссылке
https://career.i-neti.ru/1s-rls/
user1026251; eaa; BarsukM; +3 Ответить
10. 1CUnlimited 417 13.12.24 20:27 Сейчас в теме
11. Xershi 1526 01.04.25 15:17 Сейчас в теме
Отличная статья, полез в РЛС, шаблоны наклепали, а что с ними делать не ясно.
Прочитал статью, методом копипаста добавил к себе, все заработало. Ну правда сначала сказало что вид ограничения по пользователю есть, он и был, но по методичке не видно было. Убрал и полетело!
Нужно было в РТ добавить РЛС по пользователю в документе перемещения, там только по магазину работало.
Добавлял кстати все через расширение, чтобы не ломать типовую логику.
user1026251; +1 Ответить
12. Xershi 1526 30.10.25 13:14 Сейчас в теме
Сейчас похожий кейс делал, нужно было в типовом документе дописать новое ограничение по реквизиту статус, тип данных перечисление, в шаблоны как оказалось можно добавить определенное количество параметров!
Что смущает при работе через РЛС, так это то что доступ дает на чтение данных, но писать запрещает, также форма при таком запрете доступна на редактирование, как сделать чтобы открывалась на просмотр? Без РЛС формы открывались сразу на просмотр только!
Из ключевого в чем были вопросы по методичке данной статьи:
1. ЗначениеДоступаОбъект трогать не нужно, у перечислений нету объектной модели!
2. В шаблон ограничений добавляем название перечисление (2 и 3 пункт), а его второй параметр берем как название реквизита в документе (4 пункт)
3. Обработка «Инструменты разработчика. Обновление Вспомогательных Данных» не с ИТС (пункт 7), а в конфигурации БСП вашего релиза, разворачиваем как шаблон, но увы висело очень долго! В придачу при добавлении нового типа в определяемый пойдет все равно реструктуризация расширения, поэтому выполнение обновления через параметр сделать проще, не нужно качать БСП. А если в полном режиме запускать еще и ругаться на разделенные данные стало, возможно ТИИ нужно провести!
4. Удалять из регистра (пункт 8) нужно, если использовать производительный режим, у меня регистр на просмотр даже в пользовательском интерфейсе не открылся.
Для отправки сообщения требуется регистрация/авторизация