Имя: Пароль:
1C
1С v8
Открыть форму выбора элемента справочника для УФ
0 егаис
 
03.07.15
07:46
Споткнулся на простом вопросе. БП 3
Нужно по кнопке "Новый" в счете на оплату вывести форму справочника для выбора значения.
НаКлиенте
Процедура НовыйДоговор(Команда)
    
    Если ПустаяСтрока(Объект.Номер) И НЕ Записать() Тогда
        Возврат;
    КонецЕсли;
    
    НомерДоговора = СокрЛП(ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Объект.Номер, Истина, Ложь));
    //repl(передадим еще тип договора продаж
    ПараметрыФормы = Новый Структура("РежимВыбора", Истина);
    ОткрытьФорму("Справочник.ВидыДоговоровПродаж.ФормаВыбора",ПараметрыФормы,,,,,,РежимОткрытияОкна.БлокироватьВесьИнтерейс);
        //)
......
В формевыбора справочника

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
     Элементы.Список.РежимВыбора = Параметры.РежимВыбора;  
    
КонецПроцедуры

......
Собственно вопрос - как все это реализовать через немодальные окна?
Форма открывается, но как "тормознуть алгоритм" и обработать выбор элемента справочника? Спасибо
1 Cube
 
03.07.15
07:55
24.01.2013 Вариант работы интерфейса без использования модальных окон
http://v8.1c.ru/o7/201301nm/

09.12.2013 Инструменты рефакторинга и отказа от модальности
http://v8.1c.ru/o7/201312ref/index.htm
2 егаис
 
03.07.15
08:26
хмм, спасибо
но остался вопрос - как передать выбранный элемент в процедуру создания нового договора?
&НаКлиенте
Процедура НовыйДоговор(Команда)
    
    Если ПустаяСтрока(Объект.Номер) И НЕ Записать() Тогда
        Возврат;
    КонецЕсли;
    
    НомерДоговора = СокрЛП(ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Объект.Номер, Истина, Ложь));
    //repl(передадим еще тип договора продаж
    ОписаниеОповещения = Новый ОписаниеОповещения("ЗавершениеВыбора", ЭтаФорма);
    ПараметрыФормы = Новый Структура("РежимВыбора", Истина);
    ОткрытьФорму("Справочник.ВидыДоговоровПродаж.ФормаВыбора",ПараметрыФормы,,,,,ОписаниеОповещения);
    НовыйДоговор = СоздатьНовыйДоговор(НомерДоговора, Объект.Дата, Объект.Контрагент, Объект.Организация, ????СюдапередатьВыбранныйЭлемент????);    //)
    Если Объект.ДоговорКонтрагента <> НовыйДоговор Тогда
    
        Объект.ДоговорКонтрагента = НовыйДоговор;
        
        Если НЕ Объект.ДоговорКонтрагента.Пустая() Тогда
            ДоговорКонтрагентаПриИзмененииНаСервере();    
        КонецЕсли;
        
    КонецЕсли;
    
КонецПроцедуры

//repl(
&НаКлиенте
Процедура ЗавершениеВыбора(Результат, Параметры) Экспорт
    
    Если Не Результат.Пустая() Тогда
        ???Чему присвоить значение, заводить реквизит формы???
    КонецЕсли;
    
КонецПроцедуры
//)
3 AntonH851
 
03.07.15
08:40
Можно все что после
ОткрытьФорму("Справочник.ВидыДоговоровПродаж.ФормаВыбора",ПараметрыФормы,,,,,ОписаниеОповещения);

Перенести в процедуру ЗавершениеВыбора
4 егаис
 
03.07.15
08:44
(3) точно!
но я решил уже через параметры передачи )
спасибо за участие, вопрос закрыт
5 AntonH851
 
03.07.15
08:47
(4) Параметры передачи? Это как?
6 AntonH851
 
03.07.15
08:47
(4)Просто интересно
7 егаис
 
03.07.15
08:48
ОписаниеОповещения, третий параметр
8 AntonH851
 
03.07.15
08:52
(7) Спасибо, буду знать