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