Как в динамическом списке 1С отобразить булево поле в виде флажка через настройки формы?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе работы с типовыми и самописными конфигурациями на платформе 1С:Предприятие 8.3 (особенно в режиме управляемых форм) разработчики и продвинутые пользователи часто сталкиваются с эстетическим несовершенством динамических списков. По умолчанию поля с типом Булево отображаются в виде обычного текста: "Да" или "Нет". Это не всегда удобно для быстрого визуального сканирования информации. Рассмотрим, как можно превратить этот текст в привычный "флажок" (галочку), используя как стандартные возможности диалога "Изменить форму", так и программные методы.

Ограничение стандартного функционала «Изменить форму»

Прежде чем мы перейдем к решениям, проанализируем ситуацию. В режиме "Изменить форму" (пользовательская настройка) платформа 1С предоставляет ограниченный набор инструментов. Мы можем менять состав колонок, их порядок, группировку и некоторые визуальные свойства. Однако важно понимать: интерактивно изменить физический тип элемента формы (например, превратить Поле ввода в Поле флажка) в этом режиме невозможно. Это свойство жестко фиксируется в конфигураторе. Тем не менее, существуют способы "обмануть" систему и добиться нужного визуального эффекта.

Способ №1: Использование строки формата (Интерактивный метод)

Разберем самый простой способ, который не требует программирования и доступен пользователю с правами на изменение формы. Этот метод основан на подмене текстового представления значений Истина и Ложь.

Выполним следующие шаги:

  1. Откроем нужный список документов или справочников.
  2. Перейдем в меню "Еще" — "Изменить форму".
  3. Найдем в списке элементов нужное поле с типом Булево.
  4. В правой части окна настроек найдем свойство "Формат" и нажмем на кнопку выбора (три точки).
  5. В открывшемся конструкторе формата нас интересуют поля:
    • "Текст Истина" (параметр БИ) — здесь укажем символ, который будет имитировать установленный флажок. Обычно используют латинскую букву V.
    • "Текст Ложь" (параметр БЛ) — здесь оставим пустую строку или поставим прочерк.

В результате строка формата будет выглядеть так: БЛ=''; БИ='V'. Теперь вместо скучного "Да" в списке будет красоваться аккуратная галочка. Это максимально быстрый способ сделать список более читаемым без привлечения разработчика.

Способ №2: Использование символов Unicode (Улучшенная визуализация)

Проанализируем возможности современных версий платформы 8.3. Поскольку современные интерфейсы поддерживают Unicode, мы можем пойти дальше простой буквы "V" и использовать настоящие графические символы. Это сделает наше поле еще более похожим на настоящий флажок.

Попробуем вставить в строку формата следующие символы:

Такой подход визуально практически не отличим от стандартного элемента ПолеФлажка, хотя поле все еще остается текстовым и по нему нельзя кликнуть для смены значения.

Способ №3: Программное изменение вида поля

Если у нас есть доступ к конфигуратору или мы пишем расширение, мы можем решить задачу кардинально, изменив вид элемента формы программно. Это позволит получить полноценный интерактивный флажок. Рассмотрим пример кода, который можно разместить в процедуре ПриСозданииНаСервере:


// Находим элемент формы, связанный с нужным реквизитом списка
ЭлементСписка = Элементы.СписокРеквизитБулево;

// Устанавливаем вид поля как "Поле флажка"
ЭлементСписка.Вид = ВидПоляФормы.ПолеФлажка;

// Если нужно разрешить редактирование прямо в списке (при условии настройки ДС)
ЭлементСписка.РедактированиеВТексте = Истина;

При использовании этого метода 1С автоматически подставит стандартную графику флажка платформы. Это наиболее правильный технический подход для разработчика, так как он обеспечивает нативное поведение интерфейса. Для реализации такого поведения можно использовать пример настройки флажков в динамическом списке на управляемых формах.

Способ №4: Условное оформление динамического списка

Иногда требуется не просто заменить текст, а выделить всю строку или конкретную ячейку. Для этого лучше всего подходит Условное оформление. Этот метод также доступен пользователю через "Настроить список".

Рассмотрим, как это настроить:

  1. Зайдем в "Настроить список" на вкладку "Условное оформление".
  2. Добавим новое правило.
  3. В "Оформлении" выберем параметр "Текст" и впишем туда наш символ флажка (например, ✔).
  4. В "Условии" укажем: [НашеПоле] Равно Истина.
  5. В "Оформляемых полях" выберем только наше булево поле.

Преимущество этого метода в том, что вы можете одновременно изменить цвет текста (например, сделать галочку ярко-зеленой) или шрифт, что еще сильнее повысит наглядность данных. Для быстрого переноса настроенных правил в программный код подойдёт обработка для декомпиляции условного оформления формы.

Нюансы работы с типом "Число"

Выясним причину, по которой иногда форматная строка не срабатывает. Бывает, что в динамическом списке реквизит представлен не как Булево, а как Число (где 0 — это ложь, а 1 — истина). В этом случае конструктор формата для логических значений работать не будет. Для чисел строка формата будет другой: ЧЦ=1; ЧН=; ЧГ=0. Но в числовом формате нельзя напрямую заменить "1" на "V". В такой ситуации единственным выходом без программирования остается использование Условного оформления, описанного в способе №4.

Резюме

Мы рассмотрели несколько вариантов отображения флажка. Подведем итоги:

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

← На главную