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