Имя: Пароль:
1C
1C 7.7
v7: Можно ли программно включить или выключить кнопку подбора в элементе формы?
0 Chai Nic
 
28.12.23
09:02
Есть элемент формы - текстовое поле ввода. Хочется, чтобы в зависимости от определенных условий не нём была или не была кнопочка подбора с тремя точками для последующей обработки подбора. В свойствах текстового поля есть опция "Имеет кнопку выбора", которую можно установить. Есть ли способ это сделать программно, через какие-нибудь формексы?
1 Kigo_Kigo
 
28.12.23
09:06
А что мешает на эту кнопку подбора повеить СЗ и выбор действий, или не обрабатывать в зависиимости от условий?
2 Chai Nic
 
28.12.23
09:12
(1) Дело не в том, что подвесить на кнопку. Дело в том, чтобы не выводить кнопку, если выбирать нечего.
3 Fedor-1971
 
28.12.23
09:13
(0) как мне видится - сразу добавляем кнопку выбора полю, а логику проверки допустимости подбора  переносим в процедуру ПриНачалеВыбораЗначения
4 Chai Nic
 
28.12.23
09:14
(3) см. (2)
5 Fedor-1971
 
28.12.23
09:20
(4) Это хорошо, но, на сколько помню, возможности рулить кнопкой выбора нет
потому и предложил - кнопка есть всегда, если чего есть выбрать, то алгоритм работает иначе нет
Как вариант - выведи поле картинки и рули через оное (не совсем стандартно, но управляемо - нарисуй картинку с ... и рули)
6 Kigo_Kigo
 
28.12.23
09:28
сделай поле и рядом с ним 2 кнопки и рули видимостью, что вы привязались именно к этой кнопке?
7 Андрей_Андреич
 
naïve
28.12.23
09:30
Два поля друг на друге и включать-выключать видимость-доступность? Раз уж хочется извратов. И да - можно справа от поля кнопку повесить с тремя точками и опять же видимость-доступность. Коту делать нечего - яйца лижет. А 1Сники это другое ...
8 Kigo_Kigo
 
28.12.23
09:32
Вот так
9 Chai Nic
 
28.12.23
09:43
(7) (8) В этом случае не получится стандартную кнопку F4 задействовать для выбора.
10 Смотрящий
 
28.12.23
09:46
Доступность использовать не ?
11 Chai Nic
 
28.12.23
09:54
(10) Не.
Должна быть возможность ввода текста в любом случае. А возможность выбора - только если есть из чего там выбирать.
12 Андрей_Андреич
 
naïve
28.12.23
09:59
(11) Надо писать убийцу семерки ...
13 Смотрящий
 
28.12.23
10:00
Два реквизита на форме, один с кнопкой выбора другой без, на разные слои и рулить ими
14 vladmenleo
 
28.12.23
10:04
(4) А что не понравилось-то в (3) ? в ПриНачалеВыбораЗначения анализируешь есть-ли чего выбирать и если нет то возвращаешь ФлагСтандОбр = 0. Просто и эффектно. Кому мешает видимость кнопки?
15 Aleksey
 
28.12.23
10:27
(9) Почему? F4 даже без кнопки работает, разве нет?
16 АгентБезопасной Нацио
 
28.12.23
11:18
(11) а что ты хочешь выбирать? емнип, в формексе было нечто такое для списка значений (лиьо выбирать из СЗ, либо ручной ввод). А наличием кнопки выбора у меня рулить не получалось, делал как в (7)
17 uno-group
 
28.12.23
12:10
Зачем лепить ВК ему 3 раза написали делаешь 2 поля:
1-МойРеквизит с кнопкой выбора и формулой при изменении МойРеквизит2=МойРеквизит;
2-МойРеквизит2  без нее и формулой при изменении МойРеквизит=МойРеквизит2;
При открытие МойРеквизит2=МойРеквизит; и показываешь пользователю то поле которое сейчас должно быть. Через Форма.МойРеквизит.Видимость(1) или через видимость слоев.
18 Злопчинский
 
28.12.23
12:40
я бы посмотрел в сторону Формекса и расширенных атрибутов элемента формы (например, в ТЗ можно убрать скроллбар верт/гориз)
19 АЛьФ
 
28.12.23
13:32
Процедура ПриОткрытии()
    атр = СоздатьОбъект("АтрибутФормы");
    атр.УстановитьАтрибут(Форма, "атр1");
    атр.УстановитьЗависимыйПараметр(32); // включить кнопку
    // атр.УстановитьЗависимыйПараметр(0); // выключить кнопку
КонецПроцедуры // ПриОткрытии
20 mishaPH
 
28.12.23
13:38
(0) а зачем? пусть всегда будет имеет кнопку выбора а в предопределенной при начале выбора элемента уже ругаться если надо что мол выбирать нечего
21 Злопчинский
 
28.12.23
13:44
(19) АЛьФ, может глянешь сюда, пояснишь...?
v7: Формекс ОстановитьВыполнение()
22 АгентБезопасной Нацио
 
28.12.23
13:50
(20) ради дружелюбности интерфейса, чтоб не делали лишних телодвижений.
23 uno-group
 
28.12.23
14:43
когда нечего выбирать открывать экранную клавиатуру.
24 Chai Nic
 
28.12.23
20:18
(19) В "ПриОткрытии" работает, а в обработчиках - нет.
25 Chai Nic
 
28.12.23
20:25
(24) То есть, никаких ошибок указанный код не выдает, но ничего видимого не делает. Очевидно, это работает лишь на "непрорисованной" форме..
26 АЛьФ
 
28.12.23
20:34
2(24) К сожалению, только так. Или, как тут подсказывали, делать два реквизита и управлять их видимостью.
27 Злопчинский
 
29.12.23
00:04
Я бы сделал три реквизита, один из них (на невидимом слое) собственно и есть контейнер со значением, а те которые вкл/выкл показываются юзеру - просто "зеркало" реквизита-контейнера. А то завтра захочется еще с кнопкой/безкнопки/выбором из СЗ/выбором из ТЗ/итд
28 mishaPH
 
29.12.23
09:27
(22) тогда сделай 2 поля с кнопкой и без и рули показом и обработкой что показывать
29 Chai Nic
 
29.12.23
09:42
(26) Кстати, новый formex (пробовал установить для УстановитьЗависимыйПараметр)  ломает отображение журнала с раскраской.
Вот примеры, как было на старом (правильно) и на новом (коряво).

Там почему-то сдвигается текст к верхней границе ячейки и размер шрифта увеличивается.
30 DJ Anthon
 
29.12.23
09:56
(29) у меня когда-то такое было, когда темы на винде семерке слетали. или были выключены админом
31 Chai Nic
 
29.12.23
09:58
(30) И на семерке и на десятке и на 2003 одинаково. Причина точно в версии формекса. Когда 2.0.5.99 - всё ок, когда 2.0.5.181 - корежит.
32 MWWRuza
 
29.12.23
12:39
33 АЛьФ
 
29.12.23
12:45
2(32) Не получилось.
34 АЛьФ
 
29.12.23
12:46
2(29) Раскраска с планом раскраски или старым методом? На форме шрифт по умолчанию стоит или изменялся?
35 mishaPH
 
29.12.23
12:55
что то было со шрифтами в разных версиях. наткнулся на это
36 Chai Nic
 
29.12.23
13:39
(34) Старым методом, через макрос в служебной колонке.

Вот тестовая база, с двумя журналами, один крашеный, второй не. Рисую в крашеном журнале зачеркнутым шрифтом, если документ помечен на удаление и обычным, если не помечен.

В некрашеном - по умолчанию, для сравнения.

https://disk.yandex.ru/d/L8eShbHkAmiySQ
37 Chai Nic
 
29.12.23
13:57
+(36) И с разными версиями formex создается разное число в FONTSET, через Сервис.СоздатьШрифт(), поэтому и выглядит иначе. Где-то там в новой версии лишний бит приписывается, похоже.
38 Злопчинский
 
29.12.23
15:40
(31) ну капец у тебя древняя 99
я псоледнее что использовал - 175, 181/182 поставил, но не смотрел журнал. И на старых формексаъ у меня нечасто но регулярно вышибало 1Ску, когда перешел на более свежие - перестало.
39 Злопчинский
 
29.12.23
15:42
(37) проверил раскраску журнала у себя со 181, у меня отображается норм, ничего не ломается, подкраска строк - старым методом, FONTSET не юзаю
40 Злопчинский
 
29.12.23
15:46
Проверил в другой базе раскраску списка справочника с FONTSET - вроде нормально
41 Chai Nic
 
29.12.23
15:47
(38) Древняя, но работала. А новая не работает нормально, корежит размер шрифта. Смотрите в тестовой базе, там это видно.
42 Злопчинский
 
29.12.23
15:51
(41) угу, криво
43 Злопчинский
 
29.12.23
16:01
109 формекс - норм, 147 - криво, промежуточных нет у меня
там со шрифтами АЛьФ в свое время (где-то со 137 версии) немного шаманил по моей просьбе, бо один и тот же шрифт на простой текстовой надписи и в ТЗ - имел малозаметную, но отличающуюся высоту на пару пикселей буквально, а для меня критично это было для интерфейса для ТСД, может ноги отсюда растут, но имхо сомневаюсь. подождем вердикта мастера
44 Злопчинский
 
29.12.23
16:02
кстати, вместо адской конструкции типа
"FONT["+Цвет(127,127,127)+"]
можно писать типа
FONT[0xCC6633] - я у себя везде на хексзначения перешел
45 MWWRuza
 
29.12.23
17:29
Версия 182.
Тут, у себя, разницы не заметил, раскраска "старым способом", через скрытую служебную колонку, без извратов с размерами шрифтов, все стандартно:



Может это проявляется, если с другими параметрами шрифтов "играть", кроме раскраски?
46 Злопчинский
 
29.12.23
17:35
(45) у него не просто раскраска, а
FONT[числодесятичноецвета]FONTSET[числодесятичноешрифта]
причем шрифт создается без имени шрифта, размера...
смущает меня это
посмотри в демоконфиге
47 Chai Nic
 
29.12.23
18:45
"причем шрифт создается без имени шрифта, размера"
Ну да. В старых версиях это работало. Использовался шрифт по умолчанию для формы, но с заданными признаками - зачеркивание, курсив, полужирность и т.п.
48 Злопчинский
 
29.12.23
21:00
(47) это понятно, я шрифты через переменныеиопиеделяю.
И при закрытии форм надо обязательно созданные шрифты удалять
49 Злопчинский
 
29.12.23
21:37
(45) курсор на всю строку сделай, намного кузове сраз BRUSH_S[0xCCCCCC] - курсор на всю строку
.
Я у себя во все списочные формы и ТЗ И ТЧ - почти как снеговик
50 Chai Nic
 
30.12.23
08:55
(48) У меня шрифты определены глобальной переменной, на всё время работы платформы. Но, думаю, это не причина.
51 Chai Nic
 
30.12.23
10:06
+(50) Да, проверил, если шрифты создавать в модуле формы - то же самое.
52 АЛьФ
 
06.01.24
20:02
Оказывается тема со шрифтами очень старая...
Я и забыл ее совсем.
Подробно тут: https://www.1cpp.ru/forum/YaBB.pl?num=1556121691/4#4
И оттуда в ветку на мисте.
По идее правильней было бы, наверное, для нулевого значения (т.е. для "по умолчанию") брать высоту шрифта из настроек 1С.
Но ведь у кого-то опять полетят шрифты.
Боюсь, что не буду в это уже соваться. Рекомендую просто прописать размер в создании шрифта.
53 АЛьФ
 
06.01.24
20:18
+(52) Ай, один раз живем! Поправил для значения по умолчанию.
54 Злопчинский
 
07.01.24
02:37
(53) вот лично у меня ничего не полетит от твоей поправки. Потому что я предпочитаю использовать явные значения.
55 АЛьФ
 
07.01.24
08:40
2(54) на то и надежда.
56 Chai Nic
 
11.01.24
10:57
(53) Отлично, стало всё как было. А кто явные размеры ставит, тот естественно их подгоняет и тестирует на форме.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.