Почему поле переключателя не отображается на форме в режиме 1С:Предприятие и как это исправить?

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

При разработке отчетов, обработок и документов в 1С разработчики нередко сталкиваются с ситуацией, когда элемент интерфейса с видом Поле переключателя (радиокнопки) добавлен на форму и виден в конфигураторе, но при запуске в режиме «1С:Предприятие» полностью отсутствует на экране. Разберем по шагам причины такого поведения платформы и способы правильной настройки переключателя.

Причина 1. Пустой список выбора (СписокВыбора)

Главная особенность элемента управления ПолеПереключателя на управляемых формах заключается в том, что платформа физически не резервирует место и не отображает элемент, если у него не задан набор доступных вариантов. Переключатель не может существовать «пустым» — ему необходим перечень значений, из которых пользователь будет делать выбор.

Для решения проблемы проанализируем свойство СписокВыбора элемента формы. Заполнить его можно двумя путями: интерактивно в конфигураторе или программно в коде модуля формы.

Интерактивная настройка в конфигураторе:

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

Программное заполнение в модуле формы:

Если варианты выбора зависят от контекста или их удобнее формировать в коде, заполнение списка выбора выполняется в обработчике ПриСозданииНаСервере:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Заполняем список выбора для элемента переключателя
    Элементы.ВариантФормирования.СписокВыбора.Очистить();
    Элементы.ВариантФормирования.СписокВыбора.Добавить(1, "Вариант 1 (По умолчанию)");
    Элементы.ВариантФормирования.СписокВыбора.Добавить(2, "Вариант 2 (Расширенный)");
    Элементы.ВариантФормирования.СписокВыбора.Добавить(3, "Вариант 3 (Сводный)");
    
КонецПроцедуры

Причина 2. Несоответствие типов данных реквизита и значений списка

Вторая распространенная ошибка — несовпадение типа связанного реквизита и типа значений, добавленных в СписокВыбора. Переключатель привязывается к реквизиту через свойство ПутьКДанным.

Рассмотрим правила типизации:

  1. Числовой реквизит: Если реквизит формы имеет тип Число, то в колонку «Значение» списка выбора необходимо передавать именно числовые значения (1, 2, 3), а не строковые ("1", "2"). В противном случае платформа не сможет сопоставить текущее значение реквизита со списком.
  2. Строковый реквизит: Если реквизит имеет тип Строка, значения в списке выбора также должны быть строковыми.
  3. Реквизит типа ПеречислениеСсылка: Если связанный реквизит имеет тип ссылки на перечисление (например, ПеречислениеСсылка.ВариантыФормирования), вручную заполнять СписокВыбора не требуется — платформа автоматически создаст переключатели на основе значений перечисления метаданных.

Другие возможные причины скрытия элемента

Если СписокВыбора заполнен корректно и типы совпадают, но переключатель все равно не виден, проверим следующие параметры:

  1. Функциональные опции: Выясним, не привязан ли реквизит или элемент формы к функциональной опции. Если опция выключена в текущей информационной базе, элемент скрывается автоматически.
  2. Права доступа (RLS и роли): Если у текущего пользователя нет прав на просмотр реквизита, платформа скроет элемент интерфейса на форме.
  3. Пользовательские настройки формы: Проверим, не отключена ли видимость элемента через меню «Еще — Изменить форму». Для проверки можно сбросить настройки формы к стандартным.

Альтернативные элементы управления

В зависимости от сценария и количества вариантов выбора, рассмотрим другие элементы интерфейса платформы 1С:

  1. Поле тумблера (ПолеТумблера): Компактная альтернатива обычному переключателю на управляемых формах для выбора из 2–4 коротких вариантов. Настраивается так же через СписокВыбора.
  2. Поле флажка (ПолеФлажка): Если вариантов выбора всего два («Да» / «Нет»), стандартной практикой является использование реквизита с типом Булево и элемента вида ПолеФлажка.
  3. Выпадающий список: Если вариантов выбора больше 4–5, рекомендуется использовать обычное ПолеВвода со свойствами РежимВыбораИзСписка = Истина и КнопкаСпискаВыбора = Истина, чтобы не перегружать форму радиокнопками.
← На главную