![]() |
![]() |
|
Как создать элемент формы переключатель программно на обычных формах | ☑ | ||
---|---|---|---|---|
0
1c_pro_fun
19.04.18
✎
23:10
|
Доброй ночи! Создавал ли кто-нибудь программно переключатель на обычных формах?
При попытке установить ВыбираемоеЗначение для создаваемого программно элемента формы получаю такое сообщение об ошибке: "Ошибка при установке значения атрибута контекста (ВыбираемоеЗначение)" Естественно данные, с которыми связываю элемент имеют соответствующий тип (булево в моем случае). В гугле не забанили - в инете по этому поводу один единственный вопрос на форуме Инфостарт и тот без ответа: https://forum.infostart.ru/forum9/topic113043/ Одни только предположения что это глюк платформы и советы аля почистите кэш/обновите версию платформы. Но тому посту 4 года а значит с версией платформы это не связано. Или это у них вообще никогда не работало? Вот код: ЭУ = ЭлементыФормы.Добавить(Тип("Переключатель"), "Переключатель1", Истина); ЭУ.Заголовок = "Истина"; ЭУ.Данные = "БулевыйРеквизит"; ЭУ.Лево = 10; ЭУ.Верх = 32; ЭУ.Ширина = 50; ЭУ.Высота = 19; ЭУ.ПервыйВГруппе = Истина; ЭУ.ВыбираемоеЗначение = Истина; ЭУ = ЭлементыФормы.Добавить(Тип("Переключатель"), "Переключатель2", Истина); ЭУ.Заголовок = "Ложь"; ЭУ.Данные = "БулевыйРеквизит"; ЭУ.Лево = 65; ЭУ.Верх = 32; ЭУ.Ширина = 50; ЭУ.Высота = 19; ЭУ.ВыбираемоеЗначение = Ложь; ЧТО МОЖЕТ БЫТЬ ДОБРЫЕ ЛЮДИ? |
|||
1
1c_pro_fun
19.04.18
✎
23:15
|
И да безусловно в отладчике смотрел. До присвоения:
ЭУ.Данные = "БулевыйРеквизит"; ЭУ.ТипЗначения равен ОписаниеТипов с пустым значением. После выполнения этой строки кода - Описание типов со значением Булево. |
|||
2
Connect
19.04.18
✎
23:21
|
Чем Видимость/Доступность не устраивает?
|
|||
3
1c_pro_fun
19.04.18
✎
23:27
|
(2) А при чем тут Видимость/Доступность? Вопрос заключается в том что при клике в любой из группы переключателей значение переменной, связанной с этим переключателем должно меняться. Оно должно стать равным тому, что указано как Выбираемое значение. Моя проблема заключается в том что я создаю элемент формы программно и при попытке присвоения ВыбираемомуЗначению какого-либо значения (в моем конкретном случае это значения Истина/Ложь) вылетает ошибка:
"Ошибка при установке значения атрибута контекста (ВыбираемоеЗначение)" Поэтому совершенно не понимаю к чему Вы про Видимость/Доступность. Но спасибо за участие ;) |
|||
4
hhhh
20.04.18
✎
00:20
|
(3) "значение переменной, связанной с этим переключателем должно меняться" - значение переменной не должно меняться.Это же описание поля, оно не меняет значение.
|
|||
5
1c_pro_fun
20.04.18
✎
00:28
|
(4) Или у меня после полуночи мозг не соображает или лыжи не едут. Как значение не должно меняться. РАДИОБАТН - в него для чего мышкой тыкают? Чтобы выбрать одно из значений возможных. Все переключатели связаны с одним из реквизитов формы (в моем посте (3) ошибочно написал переменной имел в виду реквизит формы). При клике ДОЛЖНО изменяться значение реквизита в соответствии с тем что у конкретного Переключателя указано в ВыбираемоеЗначение. Вроде все логично :) Трабл в том что присвоить не могу это самое выбираемое значение если речь идет о реквизите с типом Булево. Выяснилось что если сделать реквизит с типом число то работает. Что не так с Булево?
|
|||
6
1c_pro_fun
20.04.18
✎
00:42
|
Мне кажется что у ОдноЭса это нифига и не работало никогда по человечески. Бьюсь об заклад. В качестве доказательства могу привести вот что:
УТ 10.3 (под рукой релиз 35.1) Есть отчет "Отчет по кредитной линии" с реквизитом "ВидКредитныхЛиний" типа число длина 1... понимаете да... логика еще с клюшек видать осталась. И далее если поставить точку останова на отчет "Универсальный отчет" в модуле объекта на строке 6272 то не трудно заметить что виды кредитных линий принимают значение 0 и 1. И обусловлено это похоже тем что они сами не смогли сделать это через Булево. Кстати во всей УТ 10.3 только в двух отчетах используется программное добавление элемента формы типа Переключатель. В описанном мною случае не вижу никакого смысла в использовании числового реквизита (при двух-то значениях). Во втором "Задолженность по контрагентам" действительно была необходимость т.к. переключатель принимал 3 значения и Булево не хватило бы. P.S. если я все же не прав и программно создать элемент формы с типом Переключатель привязанный к реквизиту форму типа Булево мне не дает не платформа, а мои кривые руки ткните носом как же это можно сделать :) |
|||
7
marvak
20.04.18
✎
00:54
|
Переключатель по-моему всегда какое-то целочисленное значение у них принимает, а не булево.
Чисто так, по воспоминаниям. Первый, второй, третий попробуй выбираемое значение = 1 |
|||
9
1c_pro_fun
20.04.18
✎
01:27
|
(7) В моем посте (5) в конце пишу что с реквизитом типа число работает.
|
|||
10
1c_pro_fun
20.04.18
✎
01:29
|
Не знаю троит Мисту или что (куда-то ведь делся мой пост под номером 8) но там я писал что кроме числовых типов переключатель поддерживает Строку, Дату, Булево и все ссылочные типы. Но это только если ручками в конфигураторе видимо. Программно никак.
|
|||
11
marvak
20.04.18
✎
02:24
|
(9)
ну если с числом работает, и задача решена, то в чем трабл то? |
|||
12
hhhh
20.04.18
✎
05:22
|
(10) попробуй повнимательнее отладчиком посмотреть при открытии формы какие там поля у переключателя, при обычном создании и при программном. Что=то у тебя слишком мало полей, там гораздо больше вроде.
|
|||
13
catena
20.04.18
✎
06:58
|
Прикольно, но оказалось, как в отборах, важна последовательность свойств. По крайней мере, у меня заработало:
ЭУ.ПервыйВГруппе = Истина; ЭУ.Данные = "БулевыйРеквизит"; ЭУ.ВыбираемоеЗначение = Истина; |
|||
14
Сияющий в темноте
20.04.18
✎
09:09
|
Ну а если не ставить первый в группе,а на форме есть еще радиобаттоны,то ведь фигня получается
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |