Новые статьи

This commit is contained in:
wakadakawaka 2025-04-16 15:54:35 +05:00
parent 6aeec34a97
commit d33c97bff1
2 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,49 @@
Дополнять условное оформление лучше всего в обработчике формы **`ПриСозданииНаСервере`**
```bsl
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
...
УстановитьУсловноеОформлениеНаСервере();
КонецПроцедуры
...
&НаСервере
Процедура УстановитьУсловноеОформлениеНаСервере()
// Создаем новый элемент
НовыйЭлемент = УсловноеОформление.Элементы.Добавить();
НовыйЭлемент.Использование = Истина;
// Настраиваем оформление. Варианты параметров можно посмотреть в форме настройки условного оформления на форме
НовыйЭлемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветВажного);
НовыйЭлемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветаСтиля.ЦветФонаГруппировкиОтчета1);
// Устанавливаем условия
// Создаем группу элементов отбора, если нужно
ГруппаЭлементовОтбора = НовыйЭлемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаЭлементовОтбора.Использование = Истина;
ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
// А в эту группу уже добавляем элементы отбора
Отбор = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//Если условие одиночное, то добавляется прямо в НовыйЭлемент.Отбор.Элементы
Отбор = НовыйЭлемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
// Настраиваем сравнения
// ПутьКДанным, т.е. Если реквизит объекта, то Объект.РеквизитОформляемоеПоле
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("РеквизитОформляемоеПоле");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
Отбор.ПравоеЗначение = 0; // либо также ПолеКомпоновкиДанных
// Добавляем поля, которые будут оформляться
ОформляемоеПоле = НовыйЭлемент.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ЭлементОформляемоеПоле"); // тут уже имя элемента на форме, не путь к данным
КонецПроцедуры
```

View File

@ -0,0 +1,39 @@
```bsl
// Процедура - устанавливает значения свойств "Доступность" и "Только просмотр"
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения -
// Элемент - ЭлементыФормы, Строка -
// Доступность - Булево - Значение свойства "Доступность". Свойство "Только просмотр" = Не "Доступность"
// ТолькоПросмотрГрупп - Булево - Устанавливает значение свойства "Только просмотр" для групп. По умолчанию ЛОЖЬ
//
Процедура УстановитьДоступностьЭлементовРекурсивно(Форма, Элемент, Доступность, ТолькоПросмотрГрупп = Ложь) Экспорт
ИзменяемыйЭлемент = Элемент;
Если ТипЗнч(Элемент) = Тип("Строка") Тогда
ИзменяемыйЭлемент = Форма.Элементы.Найти(Элемент);
КонецЕсли;
Если ИзменяемыйЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ИзменяемыйЭлемент) = Тип("ГруппаФормы") Или ТипЗнч(ИзменяемыйЭлемент) = Тип("ФормаКлиентскогоПриложения") Тогда
ИзменяемыйЭлемент.ТолькоПросмотр = ТолькоПросмотрГрупп;
Для Каждого ПодчиненныйЭлемент Из ИзменяемыйЭлемент.ПодчиненныеЭлементы Цикл
УстановитьДоступностьЭлементовРекурсивно(Форма, ПодчиненныйЭлемент, Доступность, ТолькоПросмотрГрупп);
КонецЦикла;
ИначеЕсли ТипЗнч(ИзменяемыйЭлемент) = Тип("КнопкаФормы") Или ТипЗнч(ИзменяемыйЭлемент) = Тип("ТаблицаФормы") Тогда
ИзменяемыйЭлемент.Доступность = Доступность;
ИначеЕсли ТипЗнч(ИзменяемыйЭлемент) = Тип("ПолеФормы") Тогда
ИзменяемыйЭлемент.ТолькоПросмотр = Не Доступность;
ИзменяемыйЭлемент.Доступность = Истина; // Поле ввода всегда доступно, управляем "ТолькоПросмотр"
КонецЕсли;
КонецПроцедуры
```