v8: Минимальное интерфейсное решение для тройного флажка.
Обычный тройной флажок в 1С обладает недостатком – нельзя перейти одним кликом из текущего состояния в любое другое. Данное интерфейсное решение исправляет этот недостаток, при этом занимая минимальное из возможных пространство на форме. Данное решение является самым минимальным по размеру из конкурирующих решений (поле выбора из выпадающего списка, радиобутоны и т.п.). | Автор статьи: Гений 1С | Редакторы: Последняя редакция №2 от 24.04.07 |
Ключевые слова: флажок,интерфейс
Тройной флажок меняет состояния по циклу: Ложь→Истина→Неопределено
Можно добавить рядом с флажком кнопку очистить (с крестиком).
Тогда состояния флажка меняются по циклу: Ложь→Истина
Кнопка очистить переводит флажок из состояния Ложь или Истина в состояние Неопределено, а из состояния Неопределенно в состояние Ложь.
Флажок из состояния Неопределено переходит в состояние Истина.
Вот пример кода для флажка ФлажокОтбор и кнопки очистки ОчиститьФлажокОтбор:
Процедура ФлажокОтборЗакрытыеПриИзменении(Элемент) обТройнойФлажокПриИзменении(Элемент); ФлажокОтборПриИзменении(); //Некие действия при изменении флажка КонецПроцедуры Процедура ОчиститьФлажокОтборЗакрытыеНажатие(Элемент) обТройнойФлажокОчистить(ЭлементыФормы.ФлажокОтборЗакрытые); ФлажокОтборПриИзменении(); //Некие действия при изменении флажка КонецПроцедуры Функция обТройнойФлажокПриИзменении(Элемент) Экспорт Если Элемент.Значение=2 тогда Элемент.Значение=0; ИначеЕсли Элемент.Значение=0 тогда Элемент.Значение=1; КонецЕсли; КонецФункции Функция обТройнойФлажокОчистить(Элемент) Экспорт Если Элемент.Значение=2 Тогда Элемент.Значение=0; Иначе Элемент.Значение=2; КонецЕсли; КонецФункции Функция обТройнойФлажокСостояние(Элемент) Экспорт Если Элемент.Значение=0 Тогда Возврат ложь; КонецЕсли; Если Элемент.Значение=1 Тогда Возврат истина; КонецЕсли; Возврат Неопределено; КонецФункции
Хотя я посмотрел - три кнопки, расположенные рядом, когда нажата только одна из них, тоже наглядны и удобны. так что на любителя. Как вариант, на кнопках могут быть надписи "+", "-" и "Х".