[ Вопрос дня ] Как заблокировать доступ к отдельной колонке табличной части объекта средствами подсистемы БСП “Запрет редактирования реквизитов объектов”?

Доброго дня, коллеги!

В одном из занятий курса Настройка и доработка прав доступа, профилей пользователей и RLS в типовых конфигурациях рассматривается работа с подсистемой БСП “Запрет редактирования реквизитов объектов”. На конкретном примере тренер реализовывает запрет редактирования ряда полей и табличной части “Товары” на форме документа “План продаж”.

Напомним, что для реализации запрета редактирования данных формы нужно выполнить ряд действий, среди которых:

  1. Подключение документа к подсистеме БСП

Общий модуль ЗапретРедактированияРеквизитовОбъектовПереопределяемый

Процедура ПриОпределенииОбъектовСЗаблокированнымиРеквизитами()

Процедура ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты) Экспорт    
 //++ НЕ ГОСИС
ОбменДаннымиУТУП.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты);
Объекты.Вставить(Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолноеИмя(), "ПолучитьБлокируемыеРеквизитыОбъекта");//-- НЕ ГОСИС

 //++ изменения
 Объекты.Вставить(Метаданные.Документы.ПланПродаж.ПолноеИмя(), "ПолучитьБлокируемыеРеквизитыОбъекта");
 //-- изменения    
КонецПроцедуры

  1. Добавление в модуле менеджера документа функции ПолучитьБлокируемыеРеквизитыОбъекта(), где следует перечислить имена реквизитов формы, объекта и табличных частей, которые предполагается запретить для редактирования.
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
    Результат = Новый Массив;
    Результат.Добавить("Статус;ФормаПровестиИЗакрыть,ФормаЗаписать,ФормаПровести");
    Результат.Добавить("НачалоПериода;УстановитьИнтервал");
    Результат.Добавить("ОкончаниеПериода");
    Результат.Добавить("Сценарий");
    Результат.Добавить("ВидПлана");
    Результат.Добавить("Товары;ТоварыПоПериодам");    
    Возврат Результат;
КонецФункции

Вопрос

Добрый день! Как заблокировать доступ не к табличной части целиком, а к отдельной колонке табличной части? Например: Товары.Номенклатура.

Ответ тренера

Добрый день! Для блокировки редактирования отдельной колонки табличной части, например, колонки “Номенклатура”, нужно исправить код функции ПолучитьБлокируемыеРеквизитыОбъекта() на следующий:

Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
Результат = Новый Массив;
Результат.Добавить("Статус;ФормаПровестиИЗакрыть,ФормаЗаписать,ФормаПровести");
Результат.Добавить("НачалоПериода;УстановитьИнтервал");
Результат.Добавить("ОкончаниеПериода");
Результат.Добавить("Сценарий");
Результат.Добавить("ВидПлана");
Результат.Добавить("Товары.Номенклатура; ТоварыНоменклатура, ТоварыПоПериодамНоменклатура");
Возврат Результат;
КонецФункции

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.