Имя: Пароль:
1C
1С v8
Проверка видимости/отражения элемента формы
, ,
0 alexkr
 
11.05.13
09:15
День добрый, Уважаемые форумчане.
Хочу спросить, может кто сталкивался.
Есть управляемая форма, в которой есть некоторое поле, в данном случае поле текстового документа, в которое выводится дополнительные сведения.
Пользователь, на свое усмотрение и по своим, не всегда понятным соображениям, может управлять видимостью этого элемента.

Так вот, как программно проверить выводится ли этот элемент в данный момент на форму или нет?

Не посылайте гуглить, был уже там, аналогичные вопросы есть, с ответами не сложилось, хотя возможно плохо гуглил.

Заранее спасибо за помощь.
1 Max Street
 
11.05.13
09:23
может так
если элемент["реквизит"].видимость = истина тогда
иначе
конецесли
2 alexkr
 
11.05.13
09:25
(1) так показывает видимость элемента согласно конфигуратору, но не учитывает настройки пользователя сделанные через "все действия - изменить форму"
3 Defender aka LINN
 
11.05.13
10:49
(2) Да что ты говоришь...
4 Нуф-Нуф
 
11.05.13
10:51
(2) зуб даешь?
5 alexkr
 
11.05.13
11:07
(3) (4) ну а проверить не пробовали?
6 hhhh
 
11.05.13
11:26
(5)  сто раз проверяли, в (2) бред написан.
7 alexkr
 
12.05.13
01:31
(6) Не у меня точно не глюки.
В отдадке имеем:
Элементы.СодержаниеТекст.видимость = Истина
Но при этом в пользовательских настройках формы с него галочка снята, ну и на форме соответственно он не отражается.
8 Kookish
 
12.05.13
03:01
Проверил - то же самое. Отключил отображение элемента формы через "Все действия" - "Изменить форму", добавил команду проверки и всякий раз получаю "Истина". ЧЯДНТ?
9 Kookish
 
12.05.13
03:28
В результате гугления, экспериментов и размышления вяснилось следующее:
Видимость и пользовательская видимость - различные вещи. Если изменить значение видимости на "Ложь" программно, элемент не будет виден и нельзя будет управлять его видимостью через "Все действия". Через "Все действия" пользователь управляет пользовательской видимостью элемента, программного доступа к которой попросту нет. Ибо нефиг. Типа, менять поведение формы в зависимости от пользовательской видимости элементов методически неправильно.
Кроме того, в паре мест встретил высказывания типа "Не трогайте программно видимость элементов, это приводит к полной перерисовке формы на сервере и росту трафика".
Без комментариев.
10 alexkr
 
13.05.13
13:11
(9) Картина грустная...
У меня необходимость проверки была вызвана тем, что бы в зависимости от видимости элемента знать нужно заполнять его значение или нет... Ну тут речь идет об одном элементе.
Когда то у меня была в клиентах аптека, и у них в списке выбора номенклатуры (обычное приложение) была расчетная колонка остатка, при объемах немалой аптеки, расчет иногда занимал прилично времени, поэтому кассиры как правило убирали колонку, а в коде стояла проверка, если колонки нет, то и не рассчитываем...

Как быть в подобных ситуациях в управляемом приложении???
11 Privalov
 
13.05.13
13:17
Добавь реквизит и проверяй его, в зависимости и делай что нужно, зачем к элементам формы привязываться?
12 alexkr
 
13.05.13
13:44
(11) ну наверное затем, что реквизит такой не нужен, а значение это расчетное... И показывать его нужно только в том случае, если он отражается на форме, в противном случае - нет смысла делать этого не нужно.
13 kosts
 
13.05.13
13:51
(12) Если сервер не дергается, то нет смысла проверку на видимость делать.
14 mikecool
 
13.05.13
13:58
а если элемент не виден - он разве не удаляется из коллекции Элементы?
15 alexkr
 
13.05.13
14:01
(14) ну если это юзерские настройки то нет, не удаляется
16 kosts
 
13.05.13
14:07
(14)
Элементы.Клиент.Видимость = Ложь;
Элементы.Клиент.Видимость = Истина; // <- Ожидаешь тут ошибку?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс