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