Formex: ДобавитьАтрибут - флажок

1. zhenyat 6 23.09.22 16:21 Сейчас в теме
Здравствуйте.
FormEx.dll вер. 2.0.5.166

Пытаюсь добавить на форму атрибут флажок:
Атрибут = РасширениеФормы.ДобавитьАтрибут("флажок", 12);
Атрибут.Заголовок = "флажок";
Атрибут.Формула = "Формула()";

Флажок добавляется, но при попытке поставить в нем отметку - превращается в кнопку
Подсмотрела свойства "настоящего флажка" на форме увидела отличия в Свойствах "Стиль" и "РасширенныйСтиль", добавила
Атрибут.Стиль = "1342324739";
Атрибут.РасширенныйСтиль = "";

Теперь флажок остается флажком, но при клике на нем ничего не происходит, он не отмечается. Свойство "Значение" - не доступно.
Что я делаю не так? Как и где хранить значение флажка?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex_bob 246 23.09.22 17:07 Сейчас в теме
Может у него свойство Доступность установлено в 0?
Вообще ДобавитьАтрибут() помечен в документации как нестабильный..
В чем задача-то?
3. zhenyat 6 23.09.22 17:13 Сейчас в теме
(2)Задача создать на форме несколько флажков по количеству неких элементов справочника, отметка в которых будет включать отбор в табличном поле другого справочника по значениям этих элементов
Самое простое было бы конечно просто создать список значений с отметками, но хотелось красиво, а не получается :(
4. alex_bob 246 23.09.22 17:22 Сейчас в теме
Мне кажется это мазохизм.
5. user1203706 13 23.09.22 18:21 Сейчас в теме
(3) создавайте кнопку с "эффектом" нажатия.

Если хотите флажков, ну налепите их штук 100, с запасом в пофигураторе, задвиньте их на невидимый слой, вытаскивайте по мере надобности и меняйте им формулу.
ДобавитьАтрибут...есть последствия потом, могёт не освобождать память после себя
6. zhenyat 6 23.09.22 18:33 Сейчас в теме
(5)да похоже так и придётся :( непонятно как связать созданный флажок с переменной в которой будет хранится его состояние, т.к. значение атрибута не меняется, а методы ПолучитьЗависимыйПараметр() и УстановитьЗависымыйПараметр() визуально ничего не делают :(
7. user1203706 13 23.09.22 18:46 Сейчас в теме
(6) ? вы же ему идентификатор назначаете
10. zhenyat 6 27.09.22 13:01 Сейчас в теме
(7)Конечно назначаю, в коде же видно :(
8. user1203706 13 23.09.22 18:47 Сейчас в теме
+7 если вы про обход синтаксиса, то тупо Шаблон потом в коде используйте, ну а проще, создание флажков в класс обернуть
9. user1203706 13 23.09.22 18:49 Сейчас в теме
Или смотрите Значение у атрибута формы
11. user1203706 13 27.09.22 15:12 Сейчас в теме
(10) тогда не ясен вопрос про получение значения этого флажка при наличии идентификатора.
Можете смотреть через Шаблон, можете смотреть через значение атрибута формы.
12. user1203706 13 27.09.22 15:48 Сейчас в теме
(1)
Смахнул пыль с клюшек, достал антиквариат.
На вот, костылик, всё работает:

Перем Атрибут;
//*******************************************
Процедура ПослеСозданияФормы()
	РасширениеФормы = СоздатьОбъект("РасширениеФормы");
	РасширениеФормы.УстановитьФорму(Форма);
	Атрибут = РасширениеФормы.ДобавитьАтрибут("флажок", 3);
	Атрибут.Стиль = "1342324739";
	Атрибут.Заголовок = "Вася";
	Атрибут.Формула = "Формула()";
	Атрибут.Описание = 0;
КонецПроцедуры
Процедура Формула()
	Атрибут.Описание = 1-Атрибут.Описание; 
	сообщить (Атрибут.Описание);
КонецПроцедуры
Показать
Иваныч; +1 Ответить
13. zhenyat 6 03.10.22 18:30 Сейчас в теме
(12)Вот спасибо, ни за что не догадалась бы что через "Описание" :(
14. user1203706 13 03.10.22 18:54 Сейчас в теме
(13)Ну, тут и добавляется кнопка с видом флажка (радиобуттон не заработал у меня). Просто значение чегой-то не устанавливается. Лень смотреть было.

ЗЫ: можно помимо флажков еще лепить "эффект нажатой кнопки" ..тоже стилем играться ннадо (как и рамку можно сделать чорной у кнопки).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот