Имя: Пароль:
1C
 
Обычные формы. Не получается уравлять интерфейсом.
0 Галахад
 
гуру
20.10.17
08:39
Для каждого ТекИнтерфейс Из ГлавныйИнтерфейс Цикл
        
        Стр = ТаблицаИнтерфейсов.Найти("" + ТекИнтерфейс);
        
        ТекИнтерфейс.Переключаемый = Стр.Переключаемый;
        ТекИнтерфейс.Видимость     = Стр.Видимость;
        
    КонецЦикла;

Убираю лишние интерфейсы. Потом пытаюсь восстановить как было.
Не получается. В ГлавныйИнтерфейс у всех интерфейсов видимость устанавливается "Истина", а "Переключаемый" вообще рандомно.
1 Галахад
 
гуру
20.10.17
08:45
Или у меня глюки. На всякий пожарный вкладываю полный код:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    ТаблицаИнтерфейсов = Новый ТаблицаЗначений;
    ТаблицаИнтерфейсов.Колонки.Добавить("ТекИнтерфейс");
    ТаблицаИнтерфейсов.Колонки.Добавить("Переключаемый", Новый ОписаниеТипов("Булево"));
    ТаблицаИнтерфейсов.Колонки.Добавить("Видимость", Новый ОписаниеТипов("Булево"));
    
    Для каждого ТекИнтерфейс Из ГлавныйИнтерфейс Цикл
        
        НовСтр = ТаблицаИнтерфейсов.Добавить();
        НовСтр.ТекИнтерфейс = "" + ТекИнтерфейс;
        НовСтр.Переключаемый = ТекИнтерфейс.Переключаемый;
        Новстр.Видимость = ТекИнтерфейс.Видимость;
        
        ТекИнтерфейс.Переключаемый = Ложь;
        ТекИнтерфейс.Видимость     = Ложь;
        
    КонецЦикла;
    
КонецПроцедуры

Процедура ОсновныеДействияФормыВосстановитьИнтерфейсы(Кнопка)

    Для каждого ТекИнтерфейс Из ГлавныйИнтерфейс Цикл
        
        Стр = ТаблицаИнтерфейсов.Найти("" + ТекИнтерфейс);
        
        
        ТекИнтерфейс.Переключаемый = Стр.Переключаемый;
        ТекИнтерфейс.Видимость     = Стр.Видимость;
        
    КонецЦикла;
    
КонецПроцедуры
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший