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

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

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

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

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

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


&НаКлиенте

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

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

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

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


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

5 Comments

  1. ndacoder

    а вот эта операция где обрабатывается ?

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

    а то тормозит 🙂

    Reply
  2. Alex_grem

    (1) ndacoder, директива у процедуры стоит &НаКлиенте. А почему тормозит, надо спросить клиента =))

    Reply
  3. srg4

    Простенько и со вкусом…

    Reply
  4. alexware

    Решение оригинальное.

    Правда, не совсем понятно вот что. Про свойство «Видимость» прямо сказано: «Изменение свойства на клиенте требует обращения к серверу». Про свойства же «Доступность», «ТолькоПросмотр» говорится: «Изменение свойства на клиенте может потребовать обращения к серверу».

    В книге «Разработка управляемого интерфейса» приводится пример, в котором демонстрируется, что при работе со свойством «Доступность» вместо «Видимость» избегаем лишних серверных вызовов.

    Reply
  5. Alex_grem

    (4) alexware, мое мнение — надо перестраховаться. Тяжело сказать когда платформа погонит форму на сервер, а когда оставит на клиенте.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *