УстановитьРазрешенностьРедактированияРеквизитов (БСП)

Автор: 1С
ОбщийМодуль.ЗапретРедактированияРеквизитовОбъектовКлиент
БСП

Установить разрешенность редактирования реквизитов. Устанавливает разрешенность редактирования для тех реквизитов, описание которых подготовлено в форме.

// Устанавливает разрешенность редактирования для тех реквизитов, описание которых подготовлено в форме.
//  Используется, когда доступность элементов формы изменяется самостоятельно, без
// использования функции УстановитьДоступностьЭлементовФормы.
//
// Параметры:
//  Форма        - ФормаКлиентскогоПриложения - форма, в которой требуется разрешить редактирование реквизитов объекта.
//  
//  Реквизиты    - Массив - значения.
//                  * Строка - имена реквизитов, которые нужно пометить как разрешенные для изменения.
//  
//  РедактированиеРазрешено - Булево - значение разрешенности редактирования реквизитов, которое нужно установить.
//                            Значение не будет установлено в Истина, если нет права редактирования реквизита.
//                          - Неопределено - не изменять разрешенность редактирования реквизитов.
// 
//  ПравоРедактирования - Булево - позволяет переопределить или доопределить возможность разблокировки
//                        реквизитов, которая вычисляется автоматически с помощью метода ПравоДоступа.
//                      - Неопределено - не изменять свойство ПравоРедактирования.
// 
Процедура УстановитьРазрешенностьРедактированияРеквизитов(Знач Форма, Знач Реквизиты,
			Знач РедактированиеРазрешено = Истина, Знач ПравоРедактирования = Неопределено) Экспорт
	
	Если ТипЗнч(Реквизиты) = Тип("Массив") Тогда
		
		Для Каждого Реквизит Из Реквизиты Цикл
			ОписаниеРеквизита = Форма.ПараметрыЗапретаРедактированияРеквизитов.НайтиСтроки(Новый Структура("ИмяРеквизита", Реквизит))[0];
			Если ТипЗнч(ПравоРедактирования) = Тип("Булево") Тогда
				ОписаниеРеквизита.ПравоРедактирования = ПравоРедактирования;
			КонецЕсли;
			Если ТипЗнч(РедактированиеРазрешено) = Тип("Булево") Тогда
				ОписаниеРеквизита.РедактированиеРазрешено = ОписаниеРеквизита.ПравоРедактирования И РедактированиеРазрешено;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	// Обновление доступности команды РазрешитьРедактированиеРеквизитовОбъекта.
	ВсеРеквизитыРазблокированы = Истина;
	
	Для каждого ОписаниеБлокируемогоРеквизита Из Форма.ПараметрыЗапретаРедактированияРеквизитов Цикл
		Если ОписаниеБлокируемогоРеквизита.ПравоРедактирования
		И НЕ ОписаниеБлокируемогоРеквизита.РедактированиеРазрешено Тогда
			ВсеРеквизитыРазблокированы = Ложь;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Если ВсеРеквизитыРазблокированы Тогда
		Форма.Элементы.РазрешитьРедактированиеРеквизитовОбъекта.Доступность = Ложь;
	КонецЕсли;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПараметрыФормыРедактированияРазрешенныхЗначений (БСП)

ОтборВТаблицахФормыРедактированияРазрешенныхЗначений (БСП)

ЗапретРедактированияПредусмотрен (БСП)

РазрешитьРедактированиеРеквизитовОбъекта (БСП)

РазрешитьРедактированиеРеквизитовОбъектаПослеПредупреждения (БСП)

РазрешитьРедактированиеРеквизитовОбъектаПослеПроверкиСсылок (БСП)

ПослеЗаписиНаСервереФормыРедактированияРазрешенныхЗначений (БСП)

ОбработкаПроверкиЗаполненияНаСервереФормыРедактированияРазрешенныхЗначений (БСП)

УстановитьФорматДаты (БСП)

TurboConf - расширение Конфигуратора 1С