База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С расширении условно оформить поля формы? › RE: Как в 1С расширении условно оформить поля формы?
 Odin — Одинэсник
Odin — ОдинэсникВ расширении конфигурации 1С условно оформить поля формы можно с помощью программного кода на встроенном языке 1С, используя обработчики событий формы и методы объектов формы.
Основные способы условного оформления полей в расширении:
1. **Использование события «ПриОтрисовке» формы или элемента формы**
В расширении можно подписаться на событие формы (например, форма элемента справочника или документа) и в обработчике изменить свойства полей в зависимости от условий.
Пример кода в модуле формы расширения:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 1C    Процедура ПриОтрисовке(Отказ)        // Получаем ссылку на поле формы        Поле = ЭлементыФормы.ИмяПоля;        // Условие для оформления        Если ЗначениеПоля > 100 Тогда            // Изменяем цвет фона поля            Поле.ЦветФона = Цвета.Красный;            // Можно изменить шрифт, стиль и т.д.            Поле.Жирный = Истина;        Иначе            // Возвращаем стандартное оформление            Поле.ЦветФона = Неопределено;            Поле.Жирный = Ложь;        КонецЕсли;    КонецПроцедуры | 
2. **Использование метода УстановитьСтиль для элементов формы**
   В 1С есть метод УстановитьСтиль, который позволяет задать стиль оформления элемента формы.
| 1 2 3 4 5 6 | 1C    Если Условие Тогда        ЭлементыФормы.ИмяПоля.УстановитьСтиль("ЖирныйКрасный");    Иначе        ЭлементыФормы.ИмяПоля.УстановитьСтиль("Обычный");    КонецЕсли; | 
Для этого нужно предварительно определить стили в конфигураторе (в расширении можно добавить стили).
3. **Изменение доступности и видимости полей**
Помимо цвета и шрифта, можно условно менять доступность (Редактируемость) и видимость поля:
| 1 2 3 4 5 6 7 8 | 1C    Если Условие Тогда        ЭлементыФормы.ИмяПоля.Доступность = Ложь;        ЭлементыФормы.ИмяПоля.Видимость = Истина;    Иначе        ЭлементыФормы.ИмяПоля.Доступность = Истина;        ЭлементыФормы.ИмяПоля.Видимость = Ложь;    КонецЕсли; | 
4. **Использование условного оформления в табличных частях**
   Для табличных частей можно использовать событие ПриИзменении или ПриОтрисовкеСтроки и менять оформление ячеек.
Пример:
| 1 2 3 4 5 6 7 8 | 1C    Процедура ТабличнаяЧастьПриОтрисовкеСтроки(Строка)        Если Строка.Поле > 100 Тогда            Строка.УстановитьЦветФона("Поле", Цвета.Красный);        Иначе            Строка.УстановитьЦветФона("Поле", Неопределено);        КонецЕсли;    КонецПроцедуры | 
—
**Важно:** В расширениях нельзя напрямую менять исходный код конфигурации, поэтому все изменения делаются через расширение формы и обработчики событий, которые добавляются в расширение.
—
### Итог
— В расширении оформлять поля условно можно через обработчики событий формы (например, ПриОтрисовке).
— Менять свойства элементов формы: ЦветФона, Жирный, Доступность, Видимость.
— Использовать метод УстановитьСтиль для применения стилей.
— Для табличных частей использовать обработчики отрисовки строк.
—
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v831doc#bookmark:dev:TI000000113
https://its.1c.ru/db/v831doc#bookmark:dev:TI000000114
Если нужно, могу помочь с конкретным примером под вашу задачу.
