Разработка и Конфигурация · 11 мин
Что такое чекбокс в 1С и как с ним работать
Что такое чекбокс в 1С: где используется флажок, как его добавить на форму, связать с реквизитом, обработать в коде и избежать типичных ошибок.
Чекбокс в 1С — это элемент управления формы, который отображается как небольшой квадрат с галочкой и позволяет пользователю переключать значение между «включено» и «выключено». В терминологии платформы 1С:Предприятие этот элемент чаще всего называется флажок: он связан с реквизитом типа «Булево», где включённому состоянию соответствует значение Истина, а выключенному — Ложь.
Флажки встречаются практически в любой конфигурации: в карточке контрагента («Покупатель», «Поставщик»), в настройках учётной политики, в документах («Учитывать НДС», «Закрыт»), в обработках и отчётах. Пользователь одним щелчком меняет состояние, а программа на основании этого значения включает или отключает определённую логику.
Для разработчика и администратора чекбокс — это не просто декоративный элемент, а полноценный источник данных: его значение читается в запросах, проверяется в условиях кода, участвует в проведении документов и формировании отчётов. Понимание того, как флажок устроен и как с ним работать, нужно и при создании новых форм, и при доработке типовых конфигураций.
Что представляет собой чекбокс в платформе 1С
В конфигураторе флажок — это элемент формы с видом «Поле флажка» (CheckBoxField), который привязывается к данным через свойство «ПутьКДанным». Данными обычно служит реквизит объекта (справочника, документа, обработки) или реквизит формы с типом «Булево». Платформа автоматически отображает состояние: если значение истинно — галочка стоит, если ложно — поле пустое.
Помимо стандартного вида, флажок может отображаться как «тумблер» (переключатель) — это настраивается свойством «ВидФлажка» в управляемых формах. Тумблер визуально выглядит как ползунок и часто используется в интерфейсе «Такси» для настроек, где важно показать переключение режима.
Существует и третье состояние, о котором часто забывают: если реквизит допускает неопределённое значение или флажок настроен соответствующим образом, он может отображаться в «сером» промежуточном состоянии. Это применяется, например, в деревьях выбора, когда отмечена лишь часть подчинённых элементов.
Где чекбоксы используются в типовых конфигурациях
В типовых решениях (1С:Бухгалтерия, Управление торговлей, ЗУП и других) флажки встречаются повсеместно. В справочниках они разделяют элементы по ролям: у контрагента флажки «Юридическое/физическое лицо» влияют на состав реквизитов, у номенклатуры — «Услуга» определяет, участвует ли позиция в складском учёте.
В документах чекбоксы включают дополнительные опции: «Цена включает НДС», «Отражать в учёте», «Согласован». В настройках программы и учётной политике целые панели состоят из флажков, каждый из которых включает или отключает функциональную опцию — например, ведение складского учёта по характеристикам или расчёт зарплаты по подразделениям.
Важно понимать: снятие или установка флажка в настройках может изменить поведение всей системы — скрыть разделы меню, отключить подсистемы, повлиять на проведение документов. Поэтому экспериментировать с настройками в рабочей базе без понимания последствий не стоит.
Как добавить чекбокс на форму в конфигураторе
Базовый сценарий добавления флажка выглядит одинаково для большинства объектов. Сначала создаётся реквизит с типом «Булево» — либо в составе объекта метаданных (документа, справочника), либо как реквизит формы, если значение не нужно хранить в базе. Затем этот реквизит перетаскивается на форму, и платформа автоматически создаёт элемент «Поле флажка».
- 1Откройте объект (документ, справочник или обработку) в конфигураторе и добавьте реквизит с типом «Булево», задайте понятное имя и синоним.
- 2Откройте форму объекта и перетащите реквизит из панели реквизитов в дерево элементов формы в нужное место.
- 3Проверьте, что платформа создала элемент с видом «Поле флажка»; при необходимости смените вид на «Тумблер» в свойствах.
- 4Настройте заголовок, подсказку и доступность элемента, при необходимости добавьте обработчик события «ПриИзменении».
- 5Сохраните конфигурацию, обновите её в режиме предприятия и проверьте, что значение сохраняется после записи объекта.
Если значение не нужно хранить в базе данных (например, флажок управляет только видимостью полей на форме), создавайте реквизит формы, а не реквизит объекта. Это снижает излишнюю нагрузку на структуру данных и не требует перепроведения или обновления существующих элементов.
Обратите внимание на свойство «ПоложениеЗаголовка»: у флажка заголовок по умолчанию располагается справа от квадратика, что соответствует привычному виду чекбокса. Менять это свойство стоит только осознанно, чтобы не нарушать единообразие интерфейса.
Работа со значением флажка в коде
Значение чекбокса читается и устанавливается как обычное булево: через имя реквизита. В модуле формы обращение идёт к реквизиту объекта или формы, в модуле объекта — напрямую к реквизиту. Условная логика строится на простой проверке: если флажок установлен, выполняется одна ветка алгоритма, иначе — другая.
Если Объект.УчитыватьНДС Тогда
СуммаИтог = СуммаДокумента + СуммаНДС;
Иначе
СуммаИтог = СуммаДокумента;
КонецЕсли;Для реакции на изменение флажка пользователем используется событие «ПриИзменении» элемента формы. В его обработчике принято обновлять видимость и доступность связанных полей, пересчитывать итоги или очищать данные, которые потеряли смысл после переключения. Например, при снятии флажка «Учитывать НДС» логично очистить поле ставки НДС и пересчитать сумму документа.
В запросах булев реквизит участвует как обычное поле: его можно использовать в отборе «ГДЕ Реквизит = ИСТИНА» или «ГДЕ Реквизит = ЛОЖЬ». Это удобно для отчётов, где нужно показать только активные элементы справочника или только документы с определённым признаком.
Интерактивное поведение: видимость и доступность полей
Одна из самых частых задач — показывать или скрывать элементы формы в зависимости от состояния чекбокса. Делается это двумя способами. Первый — декларативный, через «Связи параметров выбора» и условное оформление формы, когда зависимость простая. Второй — программный, через обработчик «ПриИзменении», где явно устанавливаются свойства «Видимость» и «Доступность» нужных элементов.
Программный способ гибче: в нём можно не только скрывать поля, но и очищать их значения, менять обязательность заполнения, переключать страницы формы. Типичный пример — флажок «Использовать скидку»: при его включении появляется поле процента скидки и становится обязательным, при выключении — скрывается и очищается.
Отдельный сценарий — флажки в табличных частях, например колонка «Отметка» для выбора строк к обработке. Здесь реквизит добавляется в табличную часть, а обход выбранных строк в коде выполняется циклом с проверкой значения флажка в каждой строке. Для удобства пользователей обычно добавляют команды «Установить все» и «Снять все».
Типичные ошибки при работе с чекбоксами
Несмотря на простоту элемента, ошибки при его использовании встречаются регулярно — и у пользователей, и у разработчиков. Часть из них приводит лишь к неудобству интерфейса, но некоторые способны исказить данные учёта.
Ещё одна распространённая проблема — использование флажка там, где нужен выбор из нескольких значений. Если состояний больше двух («Черновик / На согласовании / Утверждён»), чекбокс не подходит: нужен переключатель или поле выбора с перечислением. Попытка «сэкономить» на этом приводит к неоднозначным данным.
Как проверить, что чекбокс работает правильно
После добавления или доработки флажка полезно пройти короткий контрольный цикл. Он занимает несколько минут, но отсекает большинство дефектов до того, как с формой начнут работать пользователи.
Как проверить результат
После записи и повторного открытия объекта флажок сохраняет установленное состояние
После переоткрытия галочка сбрасывается — значит, элемент не связан с хранимым реквизитом
При переключении флажка зависимые поля появляются, скрываются и очищаются сразу
Состояние полей меняется только после перезаписи объекта или не меняется вовсе
Форма открывается в состоянии, соответствующем сохранённому значению флажка
При открытии видны лишние поля или скрыты нужные
Отбор по значению Истина/Ложь возвращает ожидаемый список записей
Записи с установленным флажком не попадают в выборку
Если флажок влияет на проведение документа, проверьте оба сценария: проведение с установленным и со снятым флажком, а также перепроведение старых документов после доработки. Для существующих документов новый булев реквизит по умолчанию получает значение Ложь — если бизнес-логика требует иного, понадобится обработка первоначального заполнения.
Что важно запомнить
Чекбокс в 1С — это поле флажка, связанное с булевым реквизитом: Истина — галочка стоит, Ложь — снята. Добавляется через конфигуратор перетаскиванием реквизита на форму, обрабатывается событием «ПриИзменении», читается в коде и запросах как обычное булево. Ключевые правила: связывать элемент с данными, инициализировать видимость при открытии формы и не менять настроечные флажки в рабочей базе без проверки на копии.
Частые вопросы о чекбоксах в 1С
Чем чекбокс отличается от переключателя (радиокнопки) в 1С?
Флажок управляет одним независимым булевым значением, а переключатель выбирает одно значение из нескольких взаимоисключающих вариантов. Если у вас два-три альтернативных состояния (например, «Физлицо / Юрлицо»), правильнее использовать переключатель или поле выбора, а не два отдельных флажка, которые пользователь теоретически может отметить оба.
Можно ли сделать флажок с тремя состояниями?
Да, платформа поддерживает промежуточное «серое» состояние — оно используется, например, в деревьях значений, когда отмечена часть подчинённых элементов. Для обычного булева реквизита третье состояние обычно не нужно: если требуется «не задано», лучше использовать составной тип или отдельный признак.
Почему значение флажка не сохраняется после записи документа?
Наиболее вероятная причина — элемент формы не связан с реквизитом объекта: свойство «ПутьКДанным» пустое или указывает на реквизит формы, который не хранится в базе. Откройте форму в конфигураторе и проверьте привязку элемента к реквизиту документа с типом «Булево».
Как программно установить или снять флажок?
Достаточно присвоить связанному реквизиту значение Истина или Ложь — отображение элемента на форме обновится автоматически. Если от состояния зависят другие элементы, после присвоения вызовите ту же процедуру обновления видимости, которая используется в обработчике «ПриИзменении».
Как добавить флажки для отметки строк в табличной части?
Добавьте в табличную часть реквизит с типом «Булево» и выведите его колонкой на форму — платформа отобразит её как колонку флажков. Для массовой работы добавьте команды «Отметить все» и «Снять отметки», которые в цикле устанавливают значение реквизита во всех строках.
Опасно ли менять флажки в настройках типовой конфигурации?
Зависит от конкретного флажка. Признаки в карточках объектов обычно безопасны и влияют только на текущий элемент. Флажки функциональных опций и учётной политики меняют поведение всей системы: могут скрыть разделы, изменить проведение и отчётность. Такие настройки меняйте осознанно, предварительно проверив эффект на копии базы.