Имя: Пароль:
1C
1С v8
Управляемые формы и запрет обновления формы
0 picom
 
09.11.13
20:25
В документе есть процедура, которая отключает видимость некоторых элементов.
Условий там целая куча.
Так вот, пока это процедура выполнится, на экране формы некоторые элементы мигают как новогодняя елка.
Как блин избавиться от этого эффекта, не перерисовывать форму после каждого изменения видимости, а сделать это только в определенный момент.
8.2 УТ 11
1 GROOVY
 
09.11.13
20:27
Не рекомендуется управлять видимостью элементов формы, так как это приводит фактически к генерации формы заново и ее переездом с сервера на клиент.
Рекомендуется управлять доступностью элементов, или если уж совсем надо, то использовать функциональные опции.
2 picom
 
09.11.13
20:29
(1) ух ты ух ты
расскажите как скрыть колонку в документе через функиональную опцию
3 GROOVY
 
09.11.13
20:33
(2) Как-то так, наверно: http://gyazo.com/835587b2f1c24490423c397810d81abe.png
4 picom
 
09.11.13
20:37
(3) Понял, спасибо, покурю на досуге.
Жаль что нет саб зиро команд форм
5 GROOVY
 
09.11.13
20:49
:)
6 NcSteel
 
09.11.13
20:51
(1) Еще можно добавить про рисование закладок... соответственно переключаясь программно между закладки можно генерировать видимость объектов.
7 Ork
 
09.11.13
20:59
Очередные грабли от 1С в клиент-серверной ее архитектуре...
Почему бы не сделать автоматическую перерисовку формы только перед состоянием READEVENTS (или как там в 1С обозвали ожидание события). Ну и особо нуждающимся дать возможность перерисовать ее принудительно (для всяких там Сообщить и прочее). Но нет. В 1С как обычно свой путь.
8 dymor
 
09.11.13
21:24
Сначала уйди на сервер, а потом уже управляй видимостью
9 GROOVY
 
09.11.13
21:26
(8) Это зачем? Изменение видимости и так порождает серверный вызов.
10 dymor
 
09.11.13
21:41
Это потому что часто любят несколько раз туда обратно сходить
11 GROOVY
 
09.11.13
21:42
(10) Так после изменения видимости система обновленную форму с данными формы отправит клиенту автоматом. Вот при установке ФО клиент-серверный вызов будет один.
12 dymor
 
09.11.13
21:56
Судя по (0) - много условий и т д - сервер может вызываться много раз. В таких случаях лучше сразу уйти на сервер.

А колонку скрыть лучше вообще условным оформлением, кстати
13 GROOVY
 
09.11.13
22:05
(12) Еще раз. При каждой строке Видимость(), даже если ты на сервере и в одной процедуре, будет происходить передача новой отрисованной формы и данных формы на клиент. Если в серверной процедуре 5 раз меняется видимость каких-либо реквизитов, то будет 5 клиент-серверных вызова.
14 GROOVY
 
09.11.13
22:06
Условным оформлением формы лучше всего менть именно оформление, а не видимость. Про рекомендации по поводу видимости я писал выше.
15 Ork
 
09.11.13
22:24
Ну как же так? В снятом с поддержки VFP было свойство у формы LockScreen. И этим совйством можно было влегкую справиться с проблемой обновления формы "по ходу жизни".
А у 1С нет? И будет она гонять туда-сюда (на клиента с сервера ) окно когда нужно и когда не нужно...
16 Ork
 
09.11.13
22:25
+ (15) Очередной "грабель" от 1С на пути к клиент-серверу...
17 NcSteel
 
09.11.13
22:27
Закладки решают все проблемы и не надо городить ФО )
18 Ork
 
09.11.13
22:35
(17) Ну правильно... Не смогли решить проблему программно - переложим ее на пользователя. Пусть он сначала определиться с текущей закладкой, а потом уже делает что ему нужно.

И если по-ходу длительного процесса нужно пользователю показать, что программа еще на работе и занимается его заданием - можно с сервера отправлять с заданной периодичностью СМС-ки.
19 NcSteel
 
09.11.13
22:36
(18) Зачем на пользователя перекладывать?

закладки переключать программно.
20 Ork
 
09.11.13
22:40
(19) Что мешает разработчикам сделать механизм отключение автоматического обновления окна? И механизм принудительного его обновления когда нужно?

В других средах реализовано более 10-и лет назад. А 1С вроде как стремится "соответствовать"... Не?
21 NcSteel
 
09.11.13
22:45
(20) Закладки переключать это одна строка, так же как и видимость переключить...

Вот тебе и выбор - хочешь обновить форму, то видимость устанавливай, тогда как в обнатном случае либо ФО либо страницы.
22 Ork
 
09.11.13
22:51
(21) Да я не возражаю против переключения страниц. Но, согласитесь, что это - таки "костыль". Поскольку "по человечески" не получается. Хотя проблема известна уже давно и найден способ ее решения. Но 1С предпочитает пройтись по всем граблям клиент-серверной архитектуры. И автообновление форм (когда оно не нужно) - это только малый такой себе "косячек". А сколько их еще..?
23 oleg_km
 
10.11.13
10:55
(15) LockSrceen есть во всех системах разработки общего назначения: и в дельфях и на дотнете. Ну одинесникам же не надо
24 Конфигуратор1с
 
10.11.13
14:06
(22) Ну так устраивайтесь в 1с на работу и научите их писать код)
25 dymor
 
10.11.13
17:53
(13) "каждой строке Видимость(), даже если ты на сервере и в одной процедуре, будет происходить передача новой отрисованной формы и данных формы на клиент"

ты абсолютно в этом уверен? :)
26 NcSteel
 
10.11.13
17:56
(25) Это именно так.
27 hhhh
 
10.11.13
19:31
(26) а если при создании на сервере?
28 NcSteel
 
10.11.13
19:32
(27) Тут на клиенте еще нет формы, поэтому и обновлять нечего.
29 hhhh
 
10.11.13
20:22
(28) ну, значит, можно. А то у меня тут штук 6 видимостей меняется.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан