Управление видимостью страниц

1. Timmi.HT 21.10.12 01:44 Сейчас в теме
Всем привет ! Прошу помощи !

Конфигурация на управляемых формах, имеется процедура и функция для управления видимостью

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


Необходимо чтобы в строке "Элементы.ГруппаРезультат.Видимость = Истина" слово "Результат" заменялось, т.е. если переменная результат равна "Сайт" то как сделать чтобы 1С воспринимала строку как "Элементы.ГруппаСайт.Видимость = Истина;"

Если кто то подскажет более рациональный вариант управления видимостью страниц буду премного благодарен !
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vervolf9 21.10.12 08:09 Сейчас в теме
&НаКлиенте
Процедура ВидОбъектаПриИзменении(Элемент)
Для Каждого Страница ИЗ Элементы.ГруппаСтраниц.ПодчиненныеЭлементы Цикл
Если Результат = "Сайт" Тогда
Страница.Видимость = Истина;
Иначе
Страница.Видимость = Ложь;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
3. Timmi.HT 21.10.12 13:10 Сейчас в теме
(2) vervolf9, спасибо, но в твоем варианте все страницы станут видимыми
4. Timmi.HT 21.10.12 15:31 Сейчас в теме
Камрады ну помогите плиз ! Пока получился только такой вариант, подскажите как можно сделать тоже самое без функции Выполнить() или может вообще как то по другому ?
&НаКлиенте	
Процедура ВидОбъектаПриИзменении(Элемент)
	Для Каждого Страница ИЗ Элементы.ГруппаСтраниц.ПодчиненныеЭлементы Цикл
		Страница.Видимость = Ложь;
	КонецЦикла;
	Результат = ВидимостьСтраниц (Объект.ВидОбъекта);
	Выполнить("Элементы.Группа"+Результат+".Видимость = Истина;");
КонецПроцедуры
 
&НаСервере
Функция ВидимостьСтраниц (Значение)
	Если Значение = Перечисления.ВидОбъекта.Сайт 
		Тогда Результат = "Сайт"
	ИначеЕсли Значение = Перечисления.ВидОбъекта.Почта
		Тогда Результат = "Почта"	
	ИначеЕсли Значение = Перечисления.ВидОбъекта.ПлатежнаяСистема
		Тогда Результат = "ПлатежнаяСистема"
	ИначеЕсли Значение = Перечисления.ВидОбъекта.ПластиковаяКарта
		Тогда Результат = "ПластиковаяКарта"
	ИначеЕсли Значение = Перечисления.ВидОбъекта.Документ
		Тогда Результат = "Документ"
	КонецЕсли;
	Возврат Результат;
КонецФункции
Показать
5. compreSSor 10 21.10.12 17:31 Сейчас в теме
Попробуй вот так
&НаКлиенте    
Процедура ВидОбъектаПриИзменении(Элемент)
    Для Каждого Страница ИЗ Элементы.ГруппаСтраниц.ПодчиненныеЭлементы Цикл

        Страница.Видимость = Ложь;
    КонецЦикла;
    Результат = ВидимостьСтраниц (Объект.ВидОбъекта);
    //Выполнить("Элементы.Группа"+Результат+".Видимость = Истина;");
    Элементы[Результат].Видимость = ИСТИНА;
КонецПроцедуры
 
&НаСервере
Функция ВидимостьСтраниц (Значение)
    Стр = "Группа";
    Если Значение = Перечисления.ВидОбъекта.Сайт 
        Тогда Результат = Стр + "Сайт"
    ИначеЕсли Значение = Перечисления.ВидОбъекта.Почта
        Тогда Результат = Стр + "Почта"    
    ИначеЕсли Значение = Перечисления.ВидОбъекта.ПлатежнаяСистема
        Тогда Результат = Стр + "ПлатежнаяСистема"
    ИначеЕсли Значение = Перечисления.ВидОбъекта.ПластиковаяКарта
        Тогда Результат = Стр + "ПластиковаяКарта"
    ИначеЕсли Значение = Перечисления.ВидОбъекта.Документ
        Тогда Результат = Стр + "Документ"
    КонецЕсли;
    Возврат Результат;
КонецФункции
Показать
6. Timmi.HT 22.10.12 19:25 Сейчас в теме
(5) compreSSor, не работает (((

{(1)}: Поле объекта не обнаружено (Группа)
Элементы.Группа.Видимость = Истина;
7. Koog 40 22.10.12 21:51 Сейчас в теме
У compreSSorа должно работать. Видимо у тебя функцию "ВидимостьСтраниц" передается не перечисление...
8. masterkio 337 22.10.12 22:28 Сейчас в теме
а так не получится ?

&НаКлиенте    
Процедура ВидОбъектаПриИзменении(Элемент)
    Для Каждого Страница ИЗ Элементы.ГруппаСтраниц.ПодчиненныеЭлементы Цикл
        Страница.Видимость = Ложь;

    КонецЦикла;
    Результат = ВидимостьСтраниц (Объект.ВидОбъекта);
    Элементы["Группа" + Результат].Видимость = Истина;
КонецПроцедуры
 
&НаСервере
Функция ВидимостьСтраниц (Значение)
    Если Значение = Перечисления.ВидОбъекта.Сайт 
        Тогда Результат = "Сайт"
    ИначеЕсли Значение = Перечисления.ВидОбъекта.Почта
        Тогда Результат = "Почта"    
    ИначеЕсли Значение = Перечисления.ВидОбъекта.ПлатежнаяСистема
        Тогда Результат = "ПлатежнаяСистема"
    ИначеЕсли Значение = Перечисления.ВидОбъекта.ПластиковаяКарта
        Тогда Результат = "ПластиковаяКарта"
    ИначеЕсли Значение = Перечисления.ВидОбъекта.Документ
        Тогда Результат = "Документ"
    КонецЕсли;
    Возврат Результат;
КонецФункции
Показать
9. Timmi.HT 24.10.12 22:44 Сейчас в теме
(8) masterkio
(5) compreSSor

Спасибо вам за помощь ! Все получилось !
10. compreSSor 10 24.10.12 23:22 Сейчас в теме
(8) masterkio, кстати да )))
так кода меньше
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот