Odin | База знаний 1С

Как в 1С расширении...
 

Как в 1С расширении условно оформить поля формы?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

как в расширении условно оформить поля



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

В расширении конфигурации 1С условно оформить поля формы можно с помощью программного кода на встроенном языке 1С, используя обработчики событий формы и методы объектов формы.

Основные способы условного оформления полей в расширении:

1. **Использование события "ПриОтрисовке" формы или элемента формы**

В расширении можно подписаться на событие формы (например, форма элемента справочника или документа) и в обработчике изменить свойства полей в зависимости от условий.

Пример кода в модуле формы расширения:

1C
   Процедура ПриОтрисовке(Отказ)
       // Получаем ссылку на поле формы
       Поле = ЭлементыФормы.ИмяПоля;
       
       // Условие для оформления
       Если ЗначениеПоля > 100 Тогда
           // Изменяем цвет фона поля
           Поле.ЦветФона = Цвета.Красный;
           // Можно изменить шрифт, стиль и т.д.
           Поле.Жирный = Истина;
       Иначе
           // Возвращаем стандартное оформление
           Поле.ЦветФона = Неопределено;
           Поле.Жирный = Ложь;
       КонецЕсли;
   КонецПроцедуры
   

2. **Использование метода `УстановитьСтиль` для элементов формы**

В 1С есть метод `УстановитьСтиль`, который позволяет задать стиль оформления элемента формы.

1C
   Если Условие Тогда
       ЭлементыФормы.ИмяПоля.УстановитьСтиль("ЖирныйКрасный");
   Иначе
       ЭлементыФормы.ИмяПоля.УстановитьСтиль("Обычный");
   КонецЕсли;
   

Для этого нужно предварительно определить стили в конфигураторе (в расширении можно добавить стили).

3. **Изменение доступности и видимости полей**

Помимо цвета и шрифта, можно условно менять доступность (Редактируемость) и видимость поля:

1C
   Если Условие Тогда
       ЭлементыФормы.ИмяПоля.Доступность = Ложь;
       ЭлементыФормы.ИмяПоля.Видимость = Истина;
   Иначе
       ЭлементыФормы.ИмяПоля.Доступность = Истина;
       ЭлементыФормы.ИмяПоля.Видимость = Ложь;
   КонецЕсли;
   

4. **Использование условного оформления в табличных частях**

Для табличных частей можно использовать событие `ПриИзменении` или `ПриОтрисовкеСтроки` и менять оформление ячеек.

Пример:

1C
   Процедура ТабличнаяЧастьПриОтрисовкеСтроки(Строка)
       Если Строка.Поле > 100 Тогда
           Строка.УстановитьЦветФона("Поле", Цвета.Красный);
       Иначе
           Строка.УстановитьЦветФона("Поле", Неопределено);
       КонецЕсли;
   КонецПроцедуры
   

---

**Важно:** В расширениях нельзя напрямую менять исходный код конфигурации, поэтому все изменения делаются через расширение формы и обработчики событий, которые добавляются в расширение.

---

### Итог

- В расширении оформлять поля условно можно через обработчики событий формы (например, ПриОтрисовке).
- Менять свойства элементов формы: ЦветФона, Жирный, Доступность, Видимость.
- Использовать метод `УстановитьСтиль` для применения стилей.
- Для табличных частей использовать обработчики отрисовки строк.

---

Рекомендую посмотреть здесь:
https://its.1c.ru/db/v831doc#bookmark:dev:TI000000113
https://its.1c.ru/db/v831doc#bookmark:dev:TI000000114

Если нужно, могу помочь с конкретным примером под вашу задачу.



   
ОтветитьЦитата