kb-personal/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/Запрет редактирования реквизитов/Подключение к подсистеме Запрет редактирования реквизитов.md
wakadakawaka 5fec042cbc upd
2025-07-30 19:47:43 +05:00

5.9 KiB
Raw Blame History

title, slug
title slug
Подключение к подсистеме Запрет редактирования реквизитов общие-бсп-стандартные-подсистемы-запрет-редактирования-реквизитов/подключение-к-подсистеме-запрет-редактирования-реквизитов

Настройка общего модуля

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

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

В модуле менеджера

Для каждого объекта в модуле менеджера нужно определить экспортную функцию с указанием заблокированных методов


// См. пример в ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами

// СтандартныеПодсистемы.ЗапретРедактированияОбъектов
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт

    БлокируемыеРеквизиты = Новый Массив;
    
    // упрощенный вариант настройки
    //БлокируемыеРеквизиты.Добавить("ЕдиницаИзмерения");
    //БлокируемыеРеквизиты.Добавить("СтавкаНДС");
    
    // расширенный вариант настройки
    Реквизит = ЗапретРедактированияРеквизитовОбъектов.НовыйБлокируемыйРеквизит();
    Реквизит.Группа = "ОбщаяНадпись";
    Реквизит.ПредставлениеГруппы = НСтр("ru = 'Проверьте места использования перед разблокировкой реквизитов.'"); 
    БлокируемыеРеквизиты.Добавить(Реквизит);
    
    Реквизит = ЗапретРедактированияРеквизитовОбъектов.НовыйБлокируемыйРеквизит();
    Реквизит.Имя = "ЕдиницаИзмерения";
    Реквизит.Предупреждение = НСтр("ru = 'Единицу измерения не рекомендуется изменять, если были закупки/продажи товара'");
    БлокируемыеРеквизиты.Добавить(Реквизит);
    
    Реквизит = ЗапретРедактированияРеквизитовОбъектов.НовыйБлокируемыйРеквизит();
    Реквизит.Имя = "СтавкаНДС";
    Реквизит.Предупреждение = НСтр("ru = 'Ставку НДС не рекомендуется изменять, если были закупки/продажи товара'");
    БлокируемыеРеквизиты.Добавить(Реквизит);
    
    Возврат БлокируемыеРеквизиты;

    
КонецФункции
// Конец СтандартныеПодсистемы.ЗапретРедактированияОбъектов

В модуле формы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
    ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
    
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	
	// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
	ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов 

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

// СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
    ЗапретРедактированияРеквизитовОбъектовКлиент.РазрешитьРедактированиеРеквизитовОбъекта(ЭтотОбъект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ЗапретРедактированияРеквизитовОбъектов