Имя: Пароль:
1C
1С v8
Возвращаемое значение формы открытой модально
0 Boudybuilder
 
17.12.12
13:44
Я в поле ввода Контрагент сделал процедуру проверки дублей. Открывается форма с  ТЗ откуда выбираю строку и передаю обратно в форму. Но как то все у меня по гондураски вроде. Там ведь както по владельцу надо связывать и передавать возвращаемое значение. Тока я не умею. :(

Вот процедуры :
Какбы на форме владельце :


Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
   
   
   //РезультатЗапроса = ПроцедурыПоискаПоСтроке.ПолучитьРезультатЗапросаАвтоподбора(Текст, Новый Структура, Тип("СправочникСсылка.Контрагенты"), 1);
   //
   //Если НЕ РезультатЗапроса.Пустой() Тогда
   //ПроцедурыПоискаПоСтроке.ОкончаниеВводаТекстаВЭлементеУправления(Элемент, Текст, Значение, СтандартнаяОбработка, Новый Структура, ЭтаФорма, Тип("СправочникСсылка.Контрагенты"), мОбработкаПоискаПоСтрокеКонтрагента, мТекстПоискаПоСтрокеКонтрагента, мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтрагента, Ложь);
   //    Возврат;
   //КонецЕсли;
   
   Текст = УправлениеКонтактнойИнформацией.ПривестиНомерТелефонаКШаблону(Текст);
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    ЕСТЬNULL(Тел.Представление, """") КАК Тел,
   |    ЕСТЬNULL(Адр.Представление, """") КАК Адр,
   |    Контрагенты.Ссылка
   |ИЗ
   |    Справочник.Контрагенты КАК Контрагенты
   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            КонтактнаяИнформация.Объект КАК Объект,
   |            КонтактнаяИнформация.Представление КАК Представление,
   |            КонтактнаяИнформация.Вид КАК ВидТел
   |        ИЗ
   |            РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
   |        ГДЕ
   |            КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)) КАК Тел
   |        ПО (Тел.Объект = Контрагенты.Ссылка)
   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            КонтактнаяИнформация.Объект КАК Объект,
   |            КонтактнаяИнформация.Представление КАК Представление,
   |            КонтактнаяИнформация.Вид КАК ВидАдр
   |        ИЗ
   |            РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
   |        ГДЕ
   |            КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)) КАК Адр
   |        ПО (Адр.Объект = Контрагенты.Ссылка)
   |ГДЕ
   |    (Контрагенты.Наименование ПОДОБНО &Текст
   |            ИЛИ Тел.Представление ПОДОБНО &Текст
   |            ИЛИ Контрагенты.НаименованиеПолное ПОДОБНО &Текст
   |            ИЛИ Контрагенты.ИНН ПОДОБНО &Текст)
   |    И НЕ Контрагенты.ПометкаУдаления
   |
   |УПОРЯДОЧИТЬ ПО
   |    Контрагенты.Наименование";                            
   
   Запрос.УстановитьПараметр("Текст","%"+СокрЛП(Текст)+"%");
   Рез = Запрос.Выполнить();
   Если Не Рез.Пустой() Тогда
       Ф = ЭтотОбъект.ПолучитьФорму("ПоборКонтрагента",Контрагент);
       Выб = Рез.Выбрать();
       Ф.Заголовок = "Результаты поиска контраентов-"+Выб.Количество()+", по """+СокрЛП(Текст)+""". Выберите нужного.";
       Пока Выб.Следующий() Цикл
           НС = Ф.Контрагенты.Добавить();
           НС.Контрагент = Выб.Ссылка;
           НС.КонтактнаяИнформация = "("+Выб.Ссылка.Код+") тел: "+Выб.Тел+", Адрес: "+Выб.Адр+"";
       КонецЦикла;
       Ф.Объект = ЭтаФорма;
       Ф.ОткрытьМодально();
   Иначе
       УправлениеКонтактами.РегистрироватьНовогоКонтрагента(Элемент, Текст, Значение, СтандартнаяОбработка, мОбработкаПоискаПоСтрокеКонтрагента, мТекстПоискаПоСтрокеКонтрагента, мПоследнееЗначениеЭлементаПоискаПоСтрокеКонтрагента, ЭтаФорма, Контрагент, Справочники.КонтактныеЛицаКонтрагентов.ПустаяСсылка(), Модифицированность, ДанныеНезарегистрированногоКонтрагента);
   КонецЕсли;
   
КонецПроцедуры



А вот в на открываемой форме :


Перем Объект Экспорт;


Процедура КонтрагентыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   Объект.ЭлементыФормы.Контрагент.Значение = ВыбраннаяСтрока.Контрагент;
   ЭтаФорма.Закрыть();
   ФанОбщий.ПолучитьКонтакты(ВыбраннаяСтрока.Контрагент,Объект.ЭлементыФормы.Контакты.Заголовок);
   
КонецПроцедуры
1 AndyD
 
17.12.12
13:55
молодец
2 Chikko
 
17.12.12
14:09
Что должно произойти в 1й форме после закрытия формы "ПоборКонтрагента"?
3 mikecool
 
17.12.12
14:12
ХочуЗначение = Форма.ОткрытьМодально()

в форме

Закрыть(ВозвращаюЧтоХочу)