В одном из занятий курса Настройка и доработка прав доступа, профилей пользователей и RLS в типовых конфигурациях рассматривается работа с подсистемой БСП “Запрет редактирования реквизитов объектов”. На конкретном примере тренер реализовывает запрет редактирования ряда полей и табличной части “Товары” на форме документа “План продаж”.
Напомним, что для реализации запрета редактирования данных формы нужно выполнить ряд действий, среди которых:
- Подключение документа к подсистеме БСП
Общий модуль ЗапретРедактированияРеквизитовОбъектовПереопределяемый
Процедура ПриОпределенииОбъектовСЗаблокированнымиРеквизитами()
Процедура ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты) Экспорт //++ НЕ ГОСИС ОбменДаннымиУТУП.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты); Объекты.Вставить(Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолноеИмя(), "ПолучитьБлокируемыеРеквизитыОбъекта"); … //-- НЕ ГОСИС //++ изменения Объекты.Вставить(Метаданные.Документы.ПланПродаж.ПолноеИмя(), "ПолучитьБлокируемыеРеквизитыОбъекта"); //-- изменения КонецПроцедуры
- Добавление в модуле менеджера документа функции ПолучитьБлокируемыеРеквизитыОбъекта(), где следует перечислить имена реквизитов формы, объекта и табличных частей, которые предполагается запретить для редактирования.
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт Результат = Новый Массив; Результат.Добавить("Статус;ФормаПровестиИЗакрыть,ФормаЗаписать,ФормаПровести"); Результат.Добавить("НачалоПериода;УстановитьИнтервал"); Результат.Добавить("ОкончаниеПериода"); Результат.Добавить("Сценарий"); Результат.Добавить("ВидПлана"); Результат.Добавить("Товары;ТоварыПоПериодам"); Возврат Результат; КонецФункции
Вопрос
Ответ тренера
Добрый день! Для блокировки редактирования отдельной колонки табличной части, например, колонки “Номенклатура”, нужно исправить код функции ПолучитьБлокируемыеРеквизитыОбъекта() на следующий:
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт Результат = Новый Массив; Результат.Добавить("Статус;ФормаПровестиИЗакрыть,ФормаЗаписать,ФормаПровести"); Результат.Добавить("НачалоПериода;УстановитьИнтервал"); Результат.Добавить("ОкончаниеПериода"); Результат.Добавить("Сценарий"); Результат.Добавить("ВидПлана"); Результат.Добавить("Товары.Номенклатура; ТоварыНоменклатура, ТоварыПоПериодамНоменклатура"); Возврат Результат; КонецФункции
Настройка и доработка прав доступа, профилей пользователей и RLS в типовых конфигурациях.