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

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

Как сделать флажок в 1С: пошаговая инструкция

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

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

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

Что такое флажок в 1С и где он хранится

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

Храниться булево значение может в разных местах: в реквизите справочника, документа или обработки, в ресурсе регистра сведений, в дополнительном реквизите (табличная часть «ДополнительныеРеквизиты» у объекта) или в функциональной опции. От места хранения зависит, где значение будет доступно: в отборах динамических списков, в отчетах СКД, в обменах данными.

Как добавить флажок через конфигуратор

Штатный способ — добавить реквизит объекту в Конфигураторе. Перед началом убедитесь, что конфигурация находится на поддержке с возможностью изменений, или работайте в расширении конфигурации, если база типовая и обновляется автоматически. Изменение типовых объектов напрямую усложнит будущие обновления.

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

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

Вывод флажка на форму

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

Полезные свойства флажка: «Заголовок» — текст рядом с квадратиком; «ПоложениеЗаголовка» — обычно справа; «Подсказка» и «ОтображениеПодсказки» — пояснение для пользователя. Если флажок должен быть недоступен при определенных условиях, управляйте свойством «Доступность» программно в обработчиках формы, а не удаляйте элемент.

Флажок с тремя состояниями

Стандартный флажок булева типа имеет два состояния. Если нужен третий вариант («не определено»), используйте тип «Число» длиной 1 со значениями 0, 1, 2 и в свойствах поля флажка задайте отображение трех состояний — это редкий сценарий, чаще достаточно переключателя или поля выбора из списка.

Флажок без доработки конфигурации

В конфигурациях на базе Библиотеки стандартных подсистем (УТ 11, ERP, Бухгалтерия 3.0, ЗУП и другие) есть механизм дополнительных реквизитов. Он позволяет добавить булев флажок к справочнику или документу прямо в режиме предприятия, без конфигуратора и без снятия с поддержки.

Путь: «Администрирование» → «Общие настройки» → включите опцию «Дополнительные реквизиты и сведения». Затем откройте «Дополнительные реквизиты», выберите набор нужного объекта и создайте новый реквизит с типом «Булево». Флажок появится на форме объекта в группе дополнительных реквизитов и будет доступен в отборах списков и в отчетах через СКД.

Сравнение вариантов

Реквизит в конфигураторе

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

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

Реквизит добавляется без изменения типового объекта, обновления не ломаются. Ограничение — не все сценарии проведения доступны

Дополнительный реквизит (БСП)

Быстро и без программирования, доступен в отборах. Минус — хранится в отдельной табличной части, медленнее в запросах и неудобен в обменах

Программная работа со значением флажка

В коде значение флажка читается и устанавливается как обычный булев реквизит. Например, проверка в модуле объекта или формы выглядит так: Если Объект.НеИспользоватьВОтчетах Тогда ... КонецЕсли;. Установить значение можно присваиванием: Объект.НеИспользоватьВОтчетах = Истина;.

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

bsl
&НаКлиенте
Процедура ТребуетсяСогласованиеПриИзменении(Элемент)
    Элементы.Согласующий.Видимость = Объект.ТребуетсяСогласование;
КонецПроцедуры

Проверка результата и типичные ошибки

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

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

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

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

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

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

Значение сбрасывается — реквизит не записан в объект или форма не обновлена

Отбор в списке
Норма

Реквизит доступен в настройке отбора динамического списка

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

Реквизита нет в отборе — не обновлена конфигурация БД или это доп. сведение, а не реквизит

Обновление базы
Норма

F7 выполнено без ошибок, изменения приняты

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

Предупреждение о реструктуризации не подтверждено — реквизит не создан физически

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

Где флажок использовать не стоит

Булево поле подходит только для строго бинарных признаков. Если состояний может быть больше двух или они могут расшириться в будущем («Черновик / На согласовании / Утвержден»), используйте перечисление или ссылку на справочник — переделка булева поля в статусную модель на заполненной базе потребует конвертации данных.

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

Итог

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

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

Частые вопросы

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

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

Почему флажок виден на форме, но значение не сохраняется?

Чаще всего элемент формы не связан с реквизитом данных либо конфигурация базы данных не обновлена после добавления реквизита. Проверьте свойство «ПутьКДанным» у элемента и выполните обновление по F7.

Как сделать флажок установленным по умолчанию для новых объектов?

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

Чем флажок отличается от переключателя (радиокнопки)?

Флажок независим: каждый включается и выключается отдельно. Переключатель работает в группе — выбор одного варианта сбрасывает остальные, и под капотом у него числовое или строковое значение, а не Булево.

Влияет ли добавление булева реквизита на обмены данными?

Да. Если база участвует в обменах (РИБ, синхронизация с другими системами), новый реквизит нужно добавить в правила обмена и планы обмена, иначе значение не будет передаваться между базами. Дополнительные реквизиты в типовых синхронизациях обычно переносятся штатно, но это стоит проверить на тестовом обмене.

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

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