gifts2017

Управление свойствами "Видимость,ТолькоЧтение,Доступность" без обращения к серверу

Опубликовал Алексей Гафуров (Alex_grem) в раздел Программирование - Практика программирования

Стояла задача по нажатию на кнопку управляемой формы внешней обработки сделать невидимым поле реквизита. Прочитав описание свойства "Видимость" (да и других полей таких как "Доступность", "ТолькоЧтение") поля формы в синтаксис-помощнике увидел примечание "Изменение свойства на клиенте требует обращения к серверу"...

Ладно если на форме практически ничего нет, а если на ней 3 списка по 50000 строк. Тяжеловато будет если все это добро сначала "поедет" на сервер, а потом обратно. Поэтому необходимо было, чтобы форма никуда "не поехала". Решение оказалось достаточно простым:

1. Создаем группу с видом "Страницы" и ставим в свойствах группы ОтображениеСтраниц = "Нет"

2. Внутри группы создаем еще 2. Одну со всеми элементами, а другую без удаляемого с формы поля реквизита.

Все. Пишем простой обработчик кнопы для перехода с одной страницы на другую, например:


&НаКлиенте


Перем НомерСтраницы;

&НаКлиенте
Процедура Команда1(Команда)

НомерСтраницы = 1 - НомерСтраницы;  
Элементы.Страницы.ТекущаяСтраница= Элементы["Страница" + НомерСтраницы];

КонецПроцедуры


НомерСтраницы=0;

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Dmitiry (ndacoder) 05.06.12 19:08
а вот эта операция где обрабатывается ?

Элементы.Страницы.ТекущаяСтраница= Элементы["Страница" + НомерСтраницы]

а то тормозит :)
2. Алексей Гафуров (Alex_grem) 05.06.12 21:13
(1) ndacoder, директива у процедуры стоит &НаКлиенте. А почему тормозит, надо спросить клиента =))
3. srg4 srg4 (srg4) 15.06.12 14:11
Простенько и со вкусом...
4. Алексей Верещагин (alexware) 18.10.12 05:21
Решение оригинальное.
Правда, не совсем понятно вот что. Про свойство "Видимость" прямо сказано: "Изменение свойства на клиенте требует обращения к серверу". Про свойства же "Доступность", "ТолькоПросмотр" говорится: "Изменение свойства на клиенте может потребовать обращения к серверу".
В книге "Разработка управляемого интерфейса" приводится пример, в котором демонстрируется, что при работе со свойством "Доступность" вместо "Видимость" избегаем лишних серверных вызовов.
5. Алексей Гафуров (Alex_grem) 20.10.12 13:38
(4) alexware, мое мнение - надо перестраховаться. Тяжело сказать когда платформа погонит форму на сервер, а когда оставит на клиенте.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа