PDA

Просмотр полной версии : Переключатели



NeSpec
27.07.2012, 21:10
Добрый день!
Есть "переключатель" с именем ФормируемыйДокумент, в зависимости от выбора виден один из слоев.
Если схематично то выглядит следующим образом

Процедура ПриВыбореДокумента()
ТабМатериалов.УдалитьСтро� �и();
СчетМатериала.УдалитьВсе();
Если ФормируемыйДокумент=1 Тогда
Форма.ИспользоватьСлой("Основной, ТребованиеНакладная", 2);
Иначе
Форма.ИспользоватьСлой("Основной, ПередачаМатериалов", 2);
КонецЕсли;
ОтметитьВсе(1);
УправлениеДиалогом();
КонецПроцедуры

Все работает как надо. Но в связи стем что заполнение нужных реквизитов занимает определенное время, решил установить контрольный вопрос, чтобы реквизиты не очищались и не нужно было их заново заполнять, если вдруг ошибочно переключил "переключатель"
Дополнительно ввел переменную ТекущийДокумент при объявлении переменных и теперь все то же самое выглядит следующим образом

Процедура ПриВыбореДокумента()
Если Вопрос("Сменить вид формируемого документа?", "Да+Нет")="Да" Тогда
ТабМатериалов.УдалитьСтро� �и();
СчетМатериала.УдалитьВсе();
Если ФормируемыйДокумент=1 Тогда
Форма.ИспользоватьСлой("Основной, ТребованиеНакладная", 2);
Иначе
Форма.ИспользоватьСлой("Основной, ПередачаМатериалов", 2);
КонецЕсли;
ОтметитьВсе(1);
УправлениеДиалогом();
ТекущийДокумент=Формируем� �йДокумент;
Иначе
Сообщить("Не менять. ФормируемыйДокумент="+ТекущийДокумент);
ФормируемыйДокумент=Текущ� �йДокумент;
Сообщить("ФормируемыйДокумент="+ФормируемыйДокумент);//+"; ФормируемыйДокумент1="+ФормируемыйДокумент1
КонецЕсли;
КонецПроцедуры

"Сообщить" ввел просто на этапе "отладки" чтобы понять что же там происходит.
А происходит не понятное
Если я отвечаю на вопрос "Да" то все нормально, слои меняются при переключении переключателя.
А вот если я отвечаю "Нет" то слои не меняются, как и задумывалось. Но не смотря на то что судя по сообщению (если до переключения переключатель был в положении 1) значение ФормируемыйДокумент=1, "точка" в переключателе стоит в положении 2, а слой остается видимый как для положения переключателя 1.
Не пойму где ошибка, как исправить? Чтобы "точка" в переключателе оставалась там же где и была до попытки переключиться.

P.S. забыл сказать это все во внешней обработке происходит.

Balu203
15.08.2012, 16:27
1) открываем вкладку "Диалог", смотрим свойства самого верхнего переключателя, должна стоять галка "Первый в группе"
2) в главном меню, находим раздел "Диалог", там снимаем галку с "Автомат. порядок обхода".
3) лезем в настройку порядка обхода и выстраиваем друг за другом элементы переключателя, порядком обхода будет определяться значение возвращаемое переключателем от 1 до ...