8.х При программном отборе открывается 2 формы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем mavaly, 5 авг 2011.

  1. TopicStarter Overlay
    mavaly
    Offline

    mavaly Опытный в 1С

    Регистрация:
    17 янв 2010
    Сообщения:
    233
    Симпатии:
    0
    Баллы:
    26
    Добрый день!
    В ТЧ, есть элемент, при выборе которого должна открываться форма выбора с отобранными значениями
    В процедуре "Начало выбора" описала все что нужно...открывается форма с отбором, но после выбора она закрывается и открывается эта же форма, но без отбора и значение присваивается из второй формы

    В процедуре "Обработка выбора" описала тоже самое, для того, что бы посмотреть как поведет, так теперь у меня отрывается 1ая форма (с отбором), потом 2ая, потом снова первая )))

    Если оставлю только проц "Обработка выбора", то тогда откроется 2ая, а потом 1ая и значение присвоится нужное )))


    Код:
    Процедура СоставЦветОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    Владелец = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00000000005");
    
    ФормаВыбора = Справочники.ЗначенияСвойствОбъектов.ПолучитьФормуВыбора("ФормаВыбора",ЭтаФорма,ЭтаФорма);
    ФормаВыбора.ЗакрыватьПриВыборе = Истина;
    ФормаВыбора.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно;
    ФормаВыбора.Отбор.Владелец.Использование = Истина;
    ФормаВыбора.Отбор.Владелец.Значение = Владелец;
    ФормаВыбора.Заголовок = "Выберите цвет для заполнения";
    ВыбранноеЗначение = ФормаВыбора.ОткрытьМодально();
    Элемент = ВыбранноеЗначение;
    
    КонецПроцедуры
    
    
    Процедура СоставЦветНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    Владелец = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00000000005");
    
    ФормаВыбора = Справочники.ЗначенияСвойствОбъектов.ПолучитьФормуВыбора("ФормаВыбора",ЭтаФорма,ЭтаФорма);
    ФормаВыбора.ЗакрыватьПриВыборе = Истина;
    ФормаВыбора.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно;
    ФормаВыбора.Отбор.Владелец.Использование = Истина;
    ФормаВыбора.Отбор.Владелец.Значение = Владелец;
    ФормаВыбора.Заголовок = "Выберите цвет для заполнения";
    ВыбранноеЗначение = ФормаВыбора.ОткрытьМодально();
    Элемент = ВыбранноеЗначение;
    
    КонецПроцедуры
    
    
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Код:
    СтандартнаяОбработка = Ложь;
    
    
    
    
    забыли.
    И при получении формы выбора ЭтаФорма замените на Элемент (ПолучитьФормуВыбора("ФормаВыбора", Элемент, ЭтаФорма)). Тогда можно форму выбора в обработчике НачалоВыбора не открывать модально и обработчик ОбработкаВыбора не нужен.
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    СтандартнаяОбработка = Ложь;

    забыли в обоих процедурах первой строкой :)
  4. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    У Вас работает сначала стандарная обработка, потом Ваш обработчик.Отключите стандартную обработку, написав:
    Код:
    СтандартнаяОбработка = Ложь
    
  5. TopicStarter Overlay
    mavaly
    Offline

    mavaly Опытный в 1С

    Регистрация:
    17 янв 2010
    Сообщения:
    233
    Симпатии:
    0
    Баллы:
    26
    ПолучитьФормуВыбора("ФормаВыбора", Элемент, ЭтаФорма)
    СПАСИБО! )
    Именно это я сделала не так)
    а стандартную отключала 100 раз...просто результат не могла посмотреть )))
    Всем спасибо огромное)

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