К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как добавить галку (флажок) на форму в 1С

Как добавить флажок (галочку) на форму в 1С: работа в конфигураторе, привязка к реквизиту, программное создание, типовые ошибки и проверка результата.

Флажок (в пользовательском интерфейсе его часто называют «галкой») — стандартный элемент формы в 1С, который отображает значение типа «Булево»: включён или выключен. Он используется для настроек, признаков и переключателей: «Не проводить документ», «Учитывать НДС», «Активен» и тому подобных параметров. Добавить такой элемент можно двумя способами: визуально в конфигураторе через редактор формы или программно — кодом на встроенном языке.

Выбор способа зависит от задачи. Если галка нужна постоянно и привязана к реквизиту объекта, достаточно редактора формы — это займёт пару минут и не потребует написания кода. Если флажок должен появляться динамически, например в зависимости от роли пользователя или значений других полей, потребуется программное создание элемента в обработчике ПриСозданииНаСервере.

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

Что нужно подготовить перед добавлением флажка

Флажок в 1С всегда связан с данными: сам по себе элемент формы не хранит значение. Поэтому первый шаг — определить, где будет храниться состояние галки. Вариантов три: реквизит объекта метаданных (справочника, документа), реквизит формы или колонка табличной части. Для значения, которое должно сохраняться в базе данных, подходит только реквизит объекта.

Откройте конфигуратор и найдите нужный объект в дереве конфигурации. Если реквизита типа «Булево» ещё нет, добавьте его: правый клик по объекту → «Добавить» → «Реквизит», задайте имя (например, НеОтправлятьУведомления) и тип «Булево». Синоним реквизита станет подписью флажка на форме, поэтому формулируйте его понятно для пользователя.

Убедитесь, что у вас есть права на изменение конфигурации и что конфигурация не находится на полной поддержке без возможности изменения — иначе платформа заблокирует редактирование. Для типовых конфигураций на поддержке предпочтительнее использовать механизм расширений, чтобы не терять изменения при обновлении.

Добавление галки через редактор формы

Основной способ — визуальное редактирование формы. Откройте объект метаданных, перейдите на вкладку «Формы» и откройте нужную форму (например, «ФормаДокумента» или «ФормаЭлемента»). Окно редактора формы разделено на области: слева вверху дерево элементов формы, справа — список реквизитов, внизу — модуль формы.

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

Порядок действий в конфигураторе
  1. 1
    Откройте конфигуратор и найдите нужный объект (справочник, документ, обработку)
  2. 2
    Откройте форму объекта в редакторе форм
  3. 3
    Перетащите реквизит типа «Булево» из панели реквизитов в дерево элементов формы
  4. 4
    При необходимости измените свойства: заголовок, положение заголовка, доступность
  5. 5
    Обновите конфигурацию базы данных (F7) и проверьте форму в режиме «Предприятие»

После перетаскивания проверьте свойства элемента в палитре свойств (правый клик → «Свойства»). Ключевые свойства: Заголовок — текст рядом с галкой; ПоложениеЗаголовка — слева или справа; Доступность и ТолькоПросмотр — управление возможностью изменения; Подсказка — всплывающий текст при наведении.

Если реквизита в объекте нет: реквизит формы

Иногда значение галки не нужно сохранять в базе — например, это временный переключатель режима работы формы. В этом случае создайте реквизит формы: в редакторе формы нажмите «Добавить» в панели реквизитов, укажите имя, тип «Булево» и снимите флажок «Сохраняемые данные», если он установлен. Затем перетащите созданный реквизит в дерево элементов так же, как реквизит объекта.

Программное создание флажка

Когда элемент должен появляться по условию, его создают кодом в обработчике ПриСозданииНаСервере. Последовательность такая: сначала добавляется реквизит формы через метод ИзменитьРеквизиты, затем создаётся элемент формы и привязывается к реквизиту через свойство ПутьКДанным.

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ДобавляемыеРеквизиты = Новый Массив;

ДобавляемыеРеквизиты.Добавить(

Новый РеквизитФормы("ПоказыватьАрхив",

Новый ОписаниеТипов("Булево"), , "Показывать архив"));

ИзменитьРеквизиты(ДобавляемыеРеквизиты);

НовыйЭлемент = Элементы.Добавить("ПоказыватьАрхив",

Тип("ПолеФормы"), Элементы.ГруппаШапка);

НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;

НовыйЭлемент.ПутьКДанным = "ПоказыватьАрхив";

КонецПроцедуры

Обратите внимание на два момента. Во-первых, изменение состава реквизитов формы возможно только на сервере и только до обращения к данным формы. Во-вторых, родительский элемент (в примере — ГруппаШапка) должен существовать на форме, иначе метод Добавить вызовет исключение.

Флажок в обычных формах и в расширении конфигурации

В обычных формах (режим совместимости с платформой 8.2) механика другая: элементы размещаются на визуальном макете формы и привязываются к данным через свойство «Данные». В редакторе обычной формы нажмите кнопку «Разместить данные» или вставьте элемент «Флажок» из панели инструментов, затем в свойствах укажите путь к реквизиту. Управляемые и обычные формы несовместимы между собой, поэтому код и настройки не переносятся напрямую.

Для типовых конфигураций рекомендуемый путь — расширение. Создайте расширение (раздел «Конфигурация» → «Расширения конфигурации»), заимствуйте нужную форму, добавьте в неё реквизит формы типа «Булево» и элемент-флажок. Если значение нужно хранить в базе, потребуется дополнительный регистр сведений или справочник в самом расширении, так как добавлять реквизиты в заимствованные объекты метаданных расширение позволяет только начиная с определённых версий платформы и с ограничениями.

Сравнение вариантов размещения

Редактор формы в конфигураторе

Подходит для собственных конфигураций и постоянных элементов. Быстро, без кода, но требует изменения конфигурации

Программное создание

Подходит, когда элемент появляется по условию. Гибко, но сложнее в сопровождении

Расширение конфигурации

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

Как проверить, что галка работает правильно

После добавления элемента обновите конфигурацию базы данных (клавиша F7 в конфигураторе) и откройте форму в режиме «Предприятие». Установите и снимите галку, затем запишите и закройте объект. Откройте его повторно: значение флажка должно восстановиться из базы. Если галка сбрасывается — элемент не привязан к сохраняемому реквизиту.

Проверьте также поведение при создании нового объекта: новый флажок по умолчанию имеет значение «Ложь». Если бизнес-логика требует, чтобы галка была установлена по умолчанию, задайте значение в обработчике ПриСозданииНаСервере при условии, что объект новый, либо установите значение по умолчанию в свойствах реквизита.

Контрольные точки

Как проверить результат

Сохранение значения
Норма

После записи и повторного открытия галка сохраняет состояние

Тревожный признак

Галка сбрасывается — элемент не привязан к реквизиту объекта

Отображение на форме
Норма

Флажок виден, подпись читается, элемент не перекрыт другими

Тревожный признак

Элемент отсутствует или находится вне видимой области группы

Поведение нового объекта
Норма

Значение по умолчанию соответствует логике (Ложь или заданное)

Тревожный признак

Галка установлена/снята вопреки требованиям задачи

Типичные ошибки и ограничения

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

Вторая распространённая проблема — попытка изменить видимость или доступность флажка в клиентском обработчике через обращение к реквизитам формы напрямую. Для управляемых форм управляйте свойствами Видимость и Доступность через коллекцию Элементы, а состав реквизитов меняйте только на сервере при создании формы.

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

Типичные ошибки
01
Перетащили элемент, но не обновили конфигурацию БД (F7) — в режиме «Предприятие» изменения не видны
02
Создали реквизит формы вместо реквизита объекта — значение галки не сохраняется в базе
03
Изменили типовую форму без расширения — правки потеряны после обновления конфигурации
04
Не заполнили ПутьКДанным при программном создании — ошибка открытия формы
05
Добавили элемент в несуществующую группу — исключение в ПриСозданииНаСервере

FAQ: частые вопросы о флажках в 1С

Можно ли добавить флажок без доступа к конфигуратору?

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

Как сделать, чтобы при установке галки выполнялся код?

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

Как добавить галку в табличную часть документа?

Добавьте в табличную часть объекта реквизит типа «Булево», затем в редакторе формы перетащите его в ветку таблицы в дереве элементов. Платформа отобразит колонку с флажками, и каждую строку можно будет отмечать независимо.

Почему флажок отображается как поле ввода «Да/Нет», а не галка?

Такое происходит, если у элемента вручную изменён вид поля или кнопка выбора. Откройте свойства элемента и установите свойство «Вид» в значение «Поле флажка». Также проверьте свойство «ВидФлажка» — там можно выбрать отображение в виде флажка, выключателя (тумблера) или переключателя.

Как скрыть галку от части пользователей?

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

Сохранится ли значение галки при обмене данными между базами?

Если флажок привязан к реквизиту объекта, он участвует в обмене наравне с остальными реквизитами — при условии, что реквизит включён в план обмена или правила конвертации. Реквизиты формы в обмене не участвуют, так как не хранятся в базе данных.

Итог

Что важно запомнить

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