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

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Анализ причин некорректного поведения флажка

Разберем типичные ошибки, из-за которых клик по флажку в табличном поле приводит к открытию формы или флажок вовсе не переключается:

  1. Несоответствие области видимости реквизита: реквизит с типом Булево создан в шапке документа (на уровне реквизитов самого объекта), а колонка добавлена в табличную часть. Платформа 1С не может сопоставить элемент управления строки с реквизитом шапки, из-за чего значение не сохраняется в строке.
  2. Пустые или некорректно заданные свойства колонки: если свойство колонки ДанныеФлажка не привязано к булевому реквизиту строки табличной части, нажатие на ячейку интерпретируется платформой как выбор строки (стандартное действие списка или формы).
  3. Поведение в списках и журналах: если табличное поле расположено в форме списка документов, одинарный клик по умолчанию открывает документ. Для обработки отметок в списке требуется отдельный программный перехват событий.

Пошаговая настройка флажка в табличной части

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

  1. Добавление реквизита в метаданные: перейдем в дерево метаданных конфигуратора, откроем нужный документ (например, ПоступлениеТоваровУслуг) и найдем требуемую табличную часть (например, Товары или Услуги). Добавим новый реквизит именно в состав реквизитов этой табличной части, установив имя (например, ОригиналПолучен) и тип данных Булево.
  2. Настройка свойств колонки табличного поля на форме:
    1. Откроем форму документа и перейдем в свойства добавленной колонки табличного поля.
    2. Свойство Данные оставляем пустым. Это необходимо для того, чтобы в ячейке не отображался текстовый статус «Да/Нет» или «Истина/Ложь».
    3. В свойстве ДанныеФлажка выбираем созданный реквизит табличной части: ОригиналПолучен.
    4. В свойстве ЭлементУправления выбираем значение Флажок.
    5. Свойство РежимРедактирования переводим в значение Непосредственно. Это позволяет пользователю переключать галочку в один клик без предварительного двойного щелчка для перехода в режим редактирования строки.
    6. Убедимся, что свойство ТолькоПросмотр у колонки и у самого табличного поля отключено (установлено в Ложь).

Архитектурные ограничения и альтернативное решение через регистр сведений

Хранение отметки об оригиналах документов непосредственно в реквизите табличной части имеет существенное ограничение, с которым разработчики сталкиваются на практике: дата запрета редактирования данных.

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

Для решения этой задачи в реальных проектах применяется подход с использованием независимого регистра сведений. Разберем его структуру:

  1. Создание регистра сведений:
    1. Создаем непериодический независимый регистр сведений (например, ОригиналыЗакрывающихДокументов).
    2. Измерения: Документ (тип ДокументСсылка.ПоступлениеТоваровУслуг), при необходимости детализации по строкам — НомерСтрокиДокумента (тип Число) или Номенклатура (тип СправочникСсылка.Номенклатура).
    3. Ресурсы: ОригиналПолучен (тип Булево), ДатаПолучения (тип Дата), Ответственный (тип СправочникСсылка.Пользователи).
  2. Преимущества архитектуры на регистре:
    1. Позволяет сохранять статус документов в закрытом периоде без изменения и перепроведения самого документа.
    2. Не создает коллизий при выгрузке и синхронизации данных с другими информационными базами.
    3. Позволяет гибко настраивать права доступа: менеджер может фиксировать факт получения документов без прав на изменение сумм, количества и бухгалтерских проводок накладной.
← На главную