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

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

Как добавить флажок в табличную часть 1С

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

Флажок в табличной части — это реквизит с типом «Булево», который в интерфейсе отображается как поле с галочкой. Типовой сценарий: в документе «Реализация товаров» или в справочнике нужно отмечать отдельные строки, например «Подобрано», «Проверено», «Участвует в акции». Задача решается в конфигураторе за несколько минут, но требует аккуратности, если база рабочая и в ней уже есть данные.

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

Инструкция ориентирована на 1С:Предприятие 8.3 с управляемыми формами — это наиболее распространённый случай. Для обычных форм (такси-интерфейс старых конфигураций) отличия указаны отдельно.

Что понадобится перед началом работы

Для добавления реквизита нужны права на изменение конфигурации. В типовых конфигурациях на поддержке сначала потребуется включить возможность изменения: меню «Конфигурация → Поддержка → Настройка поддержки», кнопка «Включить возможность изменения». Учтите, что снятие объектов с полной поддержки усложняет дальнейшие обновления конфигурации.

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

Перед любыми изменениями конфигурации сделайте резервную копию: для файловой базы достаточно скопировать файл 1Cv8.1CD или выгрузить базу в DT через конфигуратор («Администрирование → Выгрузить информационную базу»). Это единственная гарантия отката, если что-то пойдёт не так.

Шаг 1. Добавление реквизита типа «Булево» в табличную часть

Откройте конфигуратор и в дереве конфигурации найдите нужный объект, например «Документы → РеализацияТоваровУслуг». Раскройте его, затем раскройте ветку «Табличные части» и выберите нужную, например «Товары».

Нажмите кнопку «Добавить» (зелёный плюс) на панели инструментов окна редактирования или в палитре свойств табличной части выберите действие добавления реквизита. В открывшейся палитре свойств нового реквизита задайте:

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

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

Шаг 2. Вывод флажка на форму

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

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

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

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

Шаг 3. Обновление конфигурации и проверка результата

Сохраните форму и обновите конфигурацию базы данных: клавиша F7 или меню «Конфигурация → Обновить конфигурацию базы данных». В окне реструктуризации платформа покажет, что в таблицу табличной части добавится новая колонка — примите изменения.

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

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

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

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

В табличной части видна колонка с флажками

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

Колонки нет или это текстовое поле — неверный тип реквизита или не тот элемент формы

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

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

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

Значение сбрасывается — элемент не связан с данными

Существующие строки
Норма

В старых документах флажок снят (Ложь)

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

Ошибки при открытии старых документов — проверьте обновление конфигурации БД

Частые ошибки и как их избежать

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

Вторая ошибка — выбран не тот тип данных. Если вместо «Булево» выбрано «Число» или «Строка», на форме появится поле ввода, а не флажок. Тип реквизита можно поменять в палитре свойств даже после создания, но если данные уже введены, при смене типа они могут быть очищены.

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

Типичные ошибки
01
Реквизит добавлен в шапку объекта вместо табличной части — на таблице формы он недоступен
02
Выбран тип «Число» или «Строка» вместо «Булево» — вместо флажка отображается поле ввода
03
Элемент формы создан вручную без привязки к данным — значение не сохраняется после записи
04
Изменения внесены в рабочую базу без копии и без монопольного доступа — риск сбоя реструктуризации

Дополнительные настройки: значение по умолчанию и обработчики

Если флажок должен быть установлен в новых строках автоматически, используйте обработчик формы. В модуле формы добавьте обработчик события табличной части «ПриНачалеРедактирования» и установите значение для новой строки:

&НаКлиенте

Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Отказ)

Если НоваяСтрока Тогда

Элемент.ТекущиеДанные.Подобрано = Истина;

КонецЕсли;

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

Если при установке флажка нужно выполнять действия — пересчитывать итоги, блокировать другие колонки, — используйте обработчик «ПриИзменении» поля флажка. Например, можно запретить установку флажка, если не заполнена номенклатура в строке.

Для отбора или оформления строк по значению флажка применяется условное оформление формы: например, подсветить зелёным строки, где флажок установлен. Это настраивается в редакторе формы через «Условное оформление» без единой строки кода.

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

Альтернатива: добавление через расширение конфигурации

Если конфигурация типовая и снимать объекты с поддержки нежелательно, используйте расширение конфигурации. Механизм расширений позволяет добавлять собственные реквизиты в объекты типовой конфигурации, не изменяя её саму: меню «Конфигурация → Расширения конфигурации», создайте новое расширение, заимствуйте нужный объект и добавьте реквизит табличной части в нём.

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

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

Изменение основной конфигурации

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

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

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

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

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

Особенности для обычных форм и старых конфигураций

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

Часто в обычных формах колонка флажка появляется автоматически после добавления реквизита, если табличное поле настроено с автозаполнением колонок. Если колонки формируются вручную, добавьте её явно и проверьте свойство «Данные» у колонки.

Итог

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

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

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

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

Нет, добавление нового реквизита табличной части — это изменение структуры метаданных, которое выполняется только в конфигураторе или через расширение. Механизм «Дополнительные реквизиты и сведения» в типовых конфигурациях работает для объекта целиком и не добавляет колонки в табличные части.

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

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

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

Ничего критичного: при реструктуризации в существующие строки запишется значение по умолчанию для булева типа — «Ложь», то есть флажок будет снят. Старые документы откроются и перепроведутся штатно, если логика проведения не зависит от нового реквизита.

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

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

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

Да, реквизит табличной части доступен в запросах как обычное поле: например, «ГДЕ Товары.Подобрано = ИСТИНА». Это удобно для отчётов по отмеченным строкам и для обработок массового изменения документов.

Флажок нужен только в печатной форме — обязательно ли добавлять реквизит?

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