|   |   | 
| 
 | УФ, изменение видимости по условию без вызова сервера | ☑ | ||
|---|---|---|---|---|
| 0
    
        Humandra 22.02.12✎ 13:08 | 
        Добрый день!
  Что-то не догоняю с изменением видимости поля формы по условию. Предположим, у меня есть в справочнике одно поле - в типовых это как "Головной контрагент". Я хочу на форму поместить еще и флаг "Входит в холдинг", опять таки как в типовых. Первоначально флаг проставляется в зависимости от заполненности самого поля, при изменении флага поле "Головной контрагент" разблокируется и можно ввести значение. А при сбросе флага - поле сбрасывается. Не могу понять как это сделать, чтобы метод не лез на сервер. Пробовала так: &НаКлиенте Процедура ИзменитьВидимостьГоловнойКомпании() Элементы.ГоловнаяКомпания.Видимость = ВходитВХолдинг; Объект.ГоловнаяКомпания = Неопределено; КонецПроцедуры Лезет на сервер. Я так понимаю, потому что изменяется реквизит формы, а не элемент формы. А так: &НаКлиенте Процедура ИзменитьВидимостьГоловнойКомпании() Элементы.ГоловнаяКомпания.Видимость = ВходитВХолдинг; Элементы.ГоловнаяКомпания.Значение = Неопределено; КонецПроцедуры не работает по причине отсутствия свойства "Значение" Смотрела как это сделано в типовой бухгалтерии 3.x бета - там вообще баг (ну или нелогичная особенность), так как при сбросе флага заполненное поле Головной контрагент - не сбрасывается вообще, и после сбрасывания флага, сохранения и выхода - флаг опять проставлен, так как реквизит "Головная компания" не сбросился, а флаг проставляется по нему. Возможно ли вообще изменить элемент формы, не меняя реквизит на сервере? Вплоть до сохранения карточки? | |||
| 1
    
        ilpar 22.02.12✎ 13:14 | 
        потому что книги надо читать     | |||
| 2
    
        Humandra 22.02.12✎ 13:15 | 
        (1) Уже третью читаю, но времени мало, видимо что-то упустила :) Но форум же как раз за тем, чтобы подсказать, где я не права, разве нет? :)     | |||
| 3
    
        ilpar 22.02.12✎ 13:15 | 
        а нет, извиняюсь     | |||
| 4
    
        ДенисЧ 22.02.12✎ 13:16 | 
        ПолеФормы (FormField)
  Видимость (Visible) Использование: Чтение и запись. Описание: Тип: Булево. Определяет видимость поля. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент. Изменение свойства на клиенте может потребовать обращения к серверу. Примечание: Ложь - поле не отображается. | |||
| 5
    
        ilpar 22.02.12✎ 13:16 | 
        вообще да, повторюсь... теорию надо читать =)     | |||
| 6
    
        Asmody 22.02.12✎ 13:16 | 
        (0) через условное оформление можно сделать     | |||
| 7
    
        Asmody 22.02.12✎ 13:18 | 
        [А при сбросе флага - поле сбрасывается] нужно обрабатывать при записи     | |||
| 8
    
        Humandra 22.02.12✎ 13:18 | 
        (4) Ну, я тоже с названием темы немного не права (может кто подкорректирует на "Как сбросить поле на клиенте без вызова сервера"?), но все же вопрос был не в том :)
  У меня видимость нормально изменяется, но при сбросе по флагу значения - лезет на сервер | |||
| 9
    
        Humandra 22.02.12✎ 13:19 | 
        (7) Тоже тема, в общем-то... верно.     | |||
| 10
    
        Humandra 22.02.12✎ 13:20 | 
        А по другому никак? Если захочется, чтобы если пользователь повторно нажал "Входит в холдинг - Истина", то старое значение Головной компании уже было сброшено?     | |||
| 11
    
        Humandra 22.02.12✎ 13:22 | 
        Понятное дело, что в таком простом примере несущественно с вызовом сервера, но такой механизм предполагается делать и там, где существенно...     | |||
| 12
    
        Asmody 22.02.12✎ 13:26 | 
        а почему [Объект.ГоловнаяКомпания = Неопределено]? тебе же пустая ссылка нужна. а её получение вызывает сервер. теоритически, её можно "закешировать" на клиенте в реквизите, тогда обращения не будет наверное     | |||
| 13
    
        Humandra 22.02.12✎ 13:34 | 
        (12) Попробовала закешировать пустую ссылку - не помогло. Клиент похоже лезет к Объект.ГоловнаяКомпания на сервер...
  Попробовала даже с обработчиком по нессылочным реквизитам: При изменении меняю: Объект.Наименование = "блаблабла"; Все равно лезет на сервер. В принципе, логично вроде - реквизиты формы же на сервере обитают? | |||
| 14
    
        Asmody 22.02.12✎ 13:43 | 
        в книге написано, что изменение видимости требует обращения к серверу, поскольку при этом пересчитывается расположение элементов. рекомендуют вместо видимости управлять доступностью     | |||
| 15
    
        Humandra 22.02.12✎ 13:50 | 
        (14)А! Вот оно в чем дело. Вот почему в типовой сделали подмену групп страниц, а я то думала - зачем так сложно.
  А в какой книге писали, в документации? | |||
| 16
    
        Asmody 22.02.12✎ 14:05 | 
        (15) «Разработка управляемого интерфейса»     | |||
| 17
    
        Humandra 22.02.12✎ 14:10 | 
        (16) А, я как раз до нее еще не дошла :) Радченко обе книги прочитала, документацию к коробке, Габеца нового и половину Хрусталевой про СКД, а до интерфейса не дошли руки :)
  Спасибо, помогло! Так что мои умозаключения о том, что обращение к реквизитам формы могут вызывать сервер признаны глубоко ошибочными - ибо с изменением доступности все заработало :) | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |