7.7 Доступ к элементам формы в цикле

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем varadat, 31 мар 2008.

  1. TopicStarter Overlay
    varadat
    Offline

    varadat

    Регистрация:
    25 апр 2007
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    1
    У меня в справочнике у элемента 50 реквизитов. Как мне их в цикле все включить или выключить в форме (Видимость(0)), не перечисляя все подряд. Т.е.
    Код:
    Для Н=1 По Метаданные.Справочник("Товары").Реквизит() Цикл
    
    // надо сделать у всех Видимость(0)
    
    КонецЦикла;
    
    
  2. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Пробуй это (недокументированная возможность, но до 27 релиза работает)
    Код:
    //_______________________________________________________________________________
    Функция УстАтрибут(Атр,Зн)
    Атр = Зн;
    Возврат "";
    КонецФункции// УстАтрибут(Атр,Зн)
    Процедура УстановитьАтрибут(Атр,Зн);
    Шаблон("[УстАтрибут("+ Атр + ",Зн)]");
    КонецПроцедуры	// УстановитьАтрибут(Атр,Зн);
    
    //_______________________________________________________________________________
    Функция ПолАтрибут(Атр,Зн)
    Зн = Атр;
    Возврат "";
    КонецФункции// УстАтрибут(Атр,Зн)
    Процедура ПолучитьАтрибут(Атр,Зн);
    Шаблон("[ПолАтрибут("+ Атр + ",Зн)]");
    КонецПроцедуры	// УстановитьАтрибут(Атр,Зн);
    
    
  3. TopicStarter Overlay
    varadat
    Offline

    varadat

    Регистрация:
    25 апр 2007
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    1
    Что-то я не понял, какой атрибут мне взять и какое ему значение присвоить, мне нужно чтобы в форме эти реквизиты стали не видимыми, чтобы не перечислять их все:
    Код:
    Форма.Реквизит1.Видимость(0);
    Форма.Реквизит2.Видимость(0); 
    // и т.д.
    
    
    а в цикле ими управлять, если не трудно можно поподробнее, т.е. мне не нужно получать значения или устанавливать, а управлять элементами формы, например цвет у всех поменять.
  4. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    :)
    Это пример демонстрации возможности
    Конкретно в твоем случае будет типа:
    Код:
    //_______________________________________________________________________________
    Процедура УстановитьВидимость(Атр,Зн);
    Шаблон("[Форма."+ Атр + ".Видимость(" + Зн + ")]");
    КонецПроцедуры
    
    
    Здесь в параметр Атр передаешь ИДЕНТИФИКАТОР реквизита, а в Зн - значение видимости
  5. TopicStarter Overlay
    varadat
    Offline

    varadat

    Регистрация:
    25 апр 2007
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    1
    Во! Теперь яснее, спасибо, не знал что Видимость можно в качестве значения присваивать, буду пробовать. А еще вопрос, можно с помощью документированных способов поменять цвет ВСЕХ элементов в форме, не перечисляя их? т.е. у меня разные стадии в документе разным цветов, а реквизитов более 50?
  6. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Стандартными средствами особо в формах не поработаешь, используй внешние компоненты
  7. TopicStarter Overlay
    varadat
    Offline

    varadat

    Регистрация:
    25 апр 2007
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    1
    Заработало, еще раз спасибо, а то все перепробовал, а почему нельзя:
    Код:
    Форма.ИдентификаторРеквизита.Видимость(0);
    
    
    С цветом также сделаю, некогда пока с внешними компонентами разбираться

Поделиться этой страницей