Собственная колонка Выбран хранит Ложь. Объект оформления по очереди показывает установленный, снятый и неопределённый флажки; бизнес-значение не меняется.
Где и как запускать
Полный модуль своей обычной формы; толстый клиент. Оформление текущей строки, не обработчик управляемой формы.
Подготовка
Создайте отдельную внешнюю обработку с обычной формой в учебной базе. Запускайте толстым клиентом с обычными формами.
Добавьте реквизит Товары (ТаблицаЗначений), табличное поле ТаблицаТоваров с Данные = Товары и обычную кнопку УчебнаяКоманда вне таблицы.
Событие ПриОткрытии свяжите с одноимённой процедурой. Нажатие кнопки вручную не назначайте: оно устанавливается объектом Действие. Экспортная процедура ПроверитьОформлениеЯчейки(Элемент) получает кнопку формы; это не событие редактора ячейки.
Каждый урок — полный модуль отдельной копии этой формы. Колонки и две строки создаются заново только в своём реквизите. Код нельзя переносить в рабочую таблицу без адаптации.
Процедура ПриОткрытии()
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Товары.Колонки.Добавить("Выбран", Новый ОписаниеТипов("Булево"));
Книга = Товары.Добавить();
Книга.Код = "A-01";
Книга.Наименование = "Книга";
Книга.Количество = 3;
Книга.Выбран = Ложь;
Ручка = Товары.Добавить();
Ручка.Код = "B-02";
Ручка.Наименование = "Ручка";
Ручка.Количество = 1;
Ручка.Выбран = Ложь;
Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
Таблица.СоздатьКолонки();
Таблица.АвтоВводНовойСтроки = Ложь;
Если Товары.Количество() <> 2 Тогда
ВызватьИсключение "Ожидались два собственных учебных товара";
КонецЕсли;
Таблица.ТекущаяСтрока = Товары[0];
Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда;
Кнопка.УстановитьДействие("Нажатие", Новый Действие("ПроверитьОформлениеЯчейки"));
КонецПроцедуры
Процедура ПроверитьОформлениеЯчейки(Элемент) Экспорт
Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
Текущая = Таблица.ТекущаяСтрока;
Если Текущая = Неопределено Тогда
Сообщить("Сначала выберите свою книгу или ручку");
Возврат;
КонецЕсли;
Оформление = Таблица.ОформлениеСтроки(Текущая);
Если Оформление = Неопределено Тогда
ВызватьИсключение "Не получено оформление собственной строки";
КонецЕсли;
Ячейка = Оформление.Ячейки["Выбран"];
ИсходныйВыбор = Оформление.ДанныеСтроки.Выбран;
Сообщить(Ячейка.ЗначениеФлажка = ИсходныйВыбор);
Ячейка.ОтображатьТекст = Ложь;
Ячейка.ОтображатьКартинку = Ложь;
Ячейка.ТолькоПросмотр = Истина;
Ячейка.УстановитьФлажок(Истина);
Сообщить(Ячейка.ОтображатьФлажок И Ячейка.Флажок = Истина);
Ячейка.УстановитьФлажок(Ложь);
Сообщить(Ячейка.Флажок = Ложь);
Ячейка.Флажок = 2;
Ячейка.ОтображатьФлажок = Истина;
Сообщить(Ячейка.Флажок = 2);
Сообщить(Оформление.ДанныеСтроки.Выбран = ИсходныйВыбор);
Сообщить(Товары[0].Выбран = Ложь И Товары[1].Выбран = Ложь);
КонецПроцедурыРазбор по шагам
ЗначениеФлажка у связанной колонки читается, не присваивается. Отдельное свойство Флажок управляет изображением.
УстановитьФлажок устанавливает Флажок и автоматически включает ОтображатьФлажок; два первых состояния проверяются непосредственно после вызова.
По локальной справке числовой флажок 0 означает снят, 1 установлен, 2 не определён. Булево допускает только два состояния.
Три установки выполнены подряд в одной команде, поэтому экран может показать только итоговое третье состояние; сравнения проверяют промежуточные значения.
Для реального выбора товара изменяют данные строки и проверяют бизнес-правила. Этот урок намеренно не выбирает товар через оформление.
Как проверить результат
Шесть Истина. В конце Флажок = 2, но обе строки всё ещё хранят Выбран = Ложь.
Откройте форму заново: новый собственный набор снова содержит книгу и ручку без отметок.
Ожидаемый результат
Видимое состояние флажка не перепутано с сохранённым логическим значением.
На что обратить внимание
Не переносите числовую трёхсостоянию модель на произвольное булево поле.
Оформление может измениться после перерисовки; пример не обещает последовательную анимацию трёх состояний.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.