Флажок в 1С 8.3: где и как его добавить — от настройки до кода
Содержание
Чтобы создать галочку в 1С 8.3, нужен реквизит с типом Булево и элемент формы вида «Поле флажка». Без программиста это делается через дополнительный реквизит типа «Да/Нет» в разделе Администрирование → Общие настройки. Разработчик добавляет флажок в конфигураторе за минуту или создаёт его кодом в ПриСозданииНаСервере.
Способ выбирают по задаче. Нужна пометка в карточке справочника — хватит дополнительного реквизита. Нужна галочка, которая меняет поведение формы или отбор, — понадобится конструктор формы или расширение. В отчёте СКД флажок появляется сам, если вывести булев параметр в пользовательские настройки.
| Способ | Кто делает | Когда подходит | Что важно знать |
|---|---|---|---|
| Дополнительный реквизит «Да/Нет» | Пользователь с правами администратора | Пометка в карточке: «VIP-клиент», «Проверено» | Конфигурация не меняется, обновления не страдают |
| Пользовательская настройка формы | Любой пользователь | Показать скрытую галочку, отбор по готовому полю | Добавить новый реквизит так нельзя |
| Конструктор формы | Разработчик | Своя конфигурация или снятая с поддержки | В типовой ломает обновление |
| Код в модуле формы | Разработчик | Галочка нужна по условию или в расширении | Обработчик события тоже создаётся кодом |
| Расширение конфигурации | Разработчик | Типовая конфигурация на поддержке | Префикс имён, проверка после обновлений |
| Параметр СКД | Разработчик отчёта | Включить или выключить условие отчёта | Нужна галочка «Включать в пользовательские настройки» |
Если галочка нужна для учёта в одной типовой базе, начинайте с дополнительного реквизита. Он не требует конфигуратора и переживает любое обновление.
Галочка без программиста: дополнительный реквизит типа «Да/Нет»
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) пользователь сам добавляет поле в карточку справочника или документа. Флажком оно становится, если выбрать тип значения «Булево» — в списке типов он подписан как «Булево» или «Да/Нет».
Порядок действий
- Откройте
Администрирование → Общие настройки. - Включите флажок «Дополнительные реквизиты и сведения».
- Перейдите по ссылке «Дополнительные реквизиты» в этом же блоке.
- Слева выберите объект: например, «Контрагенты».
- Нажмите «Добавить» → «Новый».
- Задайте наименование, например «Ключевой клиент», и тип значения «Булево».
- Запишите и закройте.
Откройте любую карточку контрагента. Новая галочка будет в группе дополнительных реквизитов — обычно внизу формы или на отдельной вкладке.
Где пригодится
- ✅ отметка «Документы получены» у договора;
- 🏷️ признак «Работает по предоплате» у контрагента;
- 📦 флажок «Хрупкий товар» у номенклатуры.
По такому реквизиту можно ставить отбор в списке и выводить его в отчёты на БСП: он доступен в настройках полей как отдельное поле.
Как настроить флажок в пользовательском режиме
Пользователь без прав администратора не создаёт новые реквизиты, но управляет готовыми флажками в формах, списках и отчётах.
Показать скрытую галочку в форме
Разработчики часто прячут редкие флажки. Вернуть их можно так:
- В форме нажмите
Ещё → Изменить форму. - В дереве элементов найдите нужное поле и поставьте рядом с ним галочку видимости.
- Стрелками переместите поле в удобное место и нажмите «ОК».
Настройка сохраняется для текущего пользователя. Если что-то пошло не так, в том же окне есть «Стандартные настройки».
Отбор по флажку в динамическом списке
- В списке нажмите
Ещё → Настроить список. - На вкладке «Отбор» добавьте булево поле, например «Пометка удаления».
- Укажите вид сравнения «Равно» и значение — снятый или установленный флажок.
Так скрывают помеченные на удаление элементы или показывают только неактивные договоры. Слева у каждой строки отбора есть своя галочка: снимите её, и условие отключится без удаления.
Галочки в настройках отчёта
В отчётах на СКД откройте «Настройки». Каждая строка отбора, группировка и поле имеют флажок использования. Снятая галочка отключает строку, но сохраняет её в варианте отчёта. Это удобнее, чем удалять и настраивать заново.
Добавить флажок на форму в конфигураторе
Это базовый способ для своей конфигурации или формы обработки.
Галочка, которая хранится в объекте
- В дереве конфигурации откройте справочник или документ.
- На вкладке «Данные» добавьте реквизит, например
Проверен, типБулево. - Откройте форму объекта в редакторе.
- На вкладке «Реквизиты» раскройте
Объект, найдитеПроверени перетащите его в дерево элементов. - Платформа сама создаст элемент вида «Поле флажка». Если появилось поле ввода, в свойствах элемента смените «Вид» на «Поле флажка».
- Запустите «Обновить конфигурацию базы данных» (F7).
Галочка только на форме
Если значение не нужно хранить в базе, создайте реквизит формы: вкладка «Реквизиты» → «Добавить», тип Булево. Такой флажок управляет отбором или видимостью и сбрасывается при закрытии формы.
Чтобы форма помнила значение между открытиями, у реквизита включите свойство «Сохраняемые данные», а у формы проверьте свойство «Сохранение данных в настройках» — значение «Использовать».
Свойства, которые меняют чаще всего
| Свойство элемента | Что делает |
|---|---|
| Вид флажка | «Флажок» — классическая галочка, «Выключатель» — переключатель-тумблер, «Авто» — по умолчанию |
| Положение заголовка | Подпись слева или справа от галочки |
| Только просмотр | Флажок виден, но не меняется |
| Доступность | Неактивный, серый флажок |
| Подсказка | Текст при наведении — полезно для неочевидных признаков |
Реакцию на щелчок пишут в событии «ПриИзменении» элемента. Например, показать скрытую группу:
&НаКлиенте
Процедура ПроверенПриИзменении(Элемент)
Элементы.ГруппаПроверки.Видимость = Объект.Проверен;
КонецПроцедуры
Ту же строку продублируйте в ПриСозданииНаСервере, иначе при открытии уже отмеченного объекта группа останется скрытой.
Программное создание галочки в модуле формы
Код нужен, когда флажок появляется по условию или добавляется в форму из расширения. Порядок всегда один: реквизит формы → элемент → обработчик.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("ПоказыватьАрхив",
Новый ОписаниеТипов("Булево"), , "Показывать архив"));
ИзменитьРеквизиты(НовыеРеквизиты);
Флажок = Элементы.Добавить("ПоказыватьАрхив", Тип("ПолеФормы"), ЭтотОбъект);
Флажок.Вид = ВидПоляФормы.ПолеФлажка;
Флажок.ПутьКДанным = "ПоказыватьАрхив";
Флажок.ВидФлажка = ВидФлажка.Флажок;
Флажок.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Право;
Флажок.УстановитьДействие("ПриИзменении", "Подключаемый_ПоказыватьАрхивПриИзменении");
ПоказыватьАрхив = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПоказыватьАрхивПриИзменении(Элемент)
УстановитьОтборАрхива();
КонецПроцедуры
&НаСервере
Процедура УстановитьОтборАрхива()
Список.Отбор.Элементы.Очистить();
Если Не ПоказыватьАрхив Тогда
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Архивный");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Ложь;
ЭлементОтбора.Использование = Истина;
КонецЕсли;
КонецПроцедуры
Пример рассчитан на форму списка с динамическим списком Список и булевым реквизитом Архивный. При открытии отбор не стоит — вызовите УстановитьОтборАрхива() в конце ПриСозданииНаСервере, если архив нужно скрывать сразу.
Список.Отбор.Элементы.Очистить() удаляет все отборы, поставленные кодом. Если в форме есть другие условия, ищите и меняйте только свой элемент. В конфигурациях на БСП для этого есть ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка.
Чтобы флажок попал в нужное место, третьим параметром Элементы.Добавить передают группу, а не саму форму. Чтобы поставить его перед конкретным элементом, используйте Элементы.Вставить.
Галочка в табличной части: колонка «Пометка» и массовая отметка
В табличной части флажок — это колонка с типом Булево. Добавьте реквизит табличной части, например Пометка, и перетащите его в таблицу формы. Колонка станет полем флажка.
Кнопки «Отметить все» и «Снять все»
&НаКлиенте
Процедура ОтметитьВсе(Команда)
УстановитьПометку(Истина);
КонецПроцедуры
&НаКлиенте
Процедура СнятьВсе(Команда)
УстановитьПометку(Ложь);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПометку(Значение)
Для Каждого Строка Из Объект.Товары Цикл
Строка.Пометка = Значение;
КонецЦикла;
КонецПроцедуры
Создайте две команды формы, привяжите к ним процедуры и перетащите команды в командную панель таблицы.
Реакция на галочку в строке
Событие «ПриИзменении» вешается на поле колонки, а данные строки берут через Элементы.Товары.ТекущиеДанные. Например, пересчитать сумму только отмеченных строк:
&НаКлиенте
Процедура ТоварыПометкаПриИзменении(Элемент)
ИтогОтмеченных = 0;
Для Каждого Строка Из Объект.Товары Цикл
Если Строка.Пометка Тогда
ИтогОтмеченных = ИтогОтмеченных + Строка.Сумма;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ИтогОтмеченных здесь — числовой реквизит формы.
Особенности таблиц
- 🔒 В динамическом списке галочку прямо в строке не изменить: список только читает данные. Меняйте значение командой, которая на сервере открывает объект и записывает его.
- 🧾 Для обработок с выбором строк удобнее реквизит формы типа «Таблица значений» с колонкой
Пометка: её не нужно хранить в базе. - 🖱️ Если у таблицы включено «Только просмотр», флажки не щёлкаются даже в редактируемой колонке.
Флажок в отчётах и СКД
Галочка-параметр в шапке отчёта
- В схеме компоновки на вкладке «Параметры» добавьте параметр
ТолькоСДолгомс типомБулево. - В запросе используйте его так, чтобы снятая галочка не ограничивала выборку:
ВЫБРАТЬ
Взаиморасчеты.Контрагент,
Взаиморасчеты.СуммаОстаток
ИЗ
РегистрНакопления.Взаиморасчеты.Остатки КАК Взаиморасчеты
ГДЕ
(&ТолькоСДолгом = ЛОЖЬ
ИЛИ Взаиморасчеты.СуммаОстаток > 0)
- На вкладке «Настройки» откройте параметры, выделите
ТолькоСДолгоми в свойствах элемента пользовательских настроек включите «Включать в пользовательские настройки».
Теперь на форме отчёта у пользователя будет флажок. Регистр в примере условный: подставьте свой.
Галочка вместо «Да/Нет» в ячейках
Булево поле СКД по умолчанию выводит «Да» или «Нет». Чтобы в ячейке была отметка, задайте полю формат на вкладке «Наборы данных» или в оформлении:
БЛ=; БИ=✓
БЛ — что показать для «Ложь», БИ — для «Истина». Пустое значение для «Ложь» делает таблицу чище: отмечены только нужные строки.
Признак, вычисленный запросом
Если готового булева поля нет, сделайте его в запросе:
ВЫБОР
КОГДА Номенклатура.Вес > 30 ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Тяжелый
Поле Вес здесь для примера. Дальше с полем работают как с обычной галочкой: отбор, формат, условное оформление.
Обработки и расширения: галочка в типовой без снятия с поддержки
Флажок через расширение
Это главный приём для Бухгалтерии, ЗУП и УТ на поддержке. Конфигурация не меняется, обновления ставятся как обычно.
- В конфигураторе откройте
Конфигурация → Расширения конфигурациии создайте расширение. - Заимствуйте нужный объект и его форму: правой кнопкой по объекту → «Добавить в расширение».
- Добавьте в заимствованный объект свой реквизит типа
Булевос префиксом расширения, напримерРасш1_Проверен. - Откройте заимствованную форму и перетащите реквизит на неё.
- Обновите конфигурацию базы данных и проверьте, что расширение подключено.
Если хранить значение в самом объекте не нужно, создайте флажок кодом из предыдущего раздела в обработчике ПриСозданииНаСервере расширения формы.
Подключайте расширение сначала в копии базы. После обновления типовой конфигурации проверьте, что форма открывается и флажок на месте.
Массовая установка галочки
Ставить флажок в 500 карточках вручную не нужно. В списках конфигураций на БСП есть Ещё → Изменить выделенные: выделите строки, выберите реквизит, укажите значение и запустите. Работает и для дополнительных реквизитов.
Если нужна выборка по сложному условию, пишут внешнюю обработку
: таблица значений с колонкой Пометка, кнопки «Отметить все» из раздела про табличную часть и команда, которая на сервере записывает отмеченные объекты.
Почему галочка не работает: типичные проблемы
Частые вопросы
Можно ли сделать флажок с тремя состояниями?
Чем «Выключатель» отличается от обычного флажка?
Как поставить галочку по умолчанию в новом документе?
ПриСозданииНаСервере при условии, что объект новый, или в обработчике заполнения объекта. Свойство «Значение заполнения» реквизита тоже работает.Как найти все объекты с установленной галочкой?
Ещё → Настроить список или выполните запрос с условием ГДЕ Таблица.Реквизит = ИСТИНА в консоли запросов.