Имя: Пароль:
1C
1С v8
Заполнение значения с одной формы в другую
0 gaur777
 
12.07.17
08:44
Помогите. У справочника есть форма элемента и форма произвольная
На произвольной форме есть список значений с реквизитами name и guid
На форме элемента по нажатию кнопки (заполнить) переходит к этому списку значений, но выбрав нужное значение - на форме элемента строки (name) и (guid) не заполняются.
Подскажите, где и что необходимо исправить/добавить

Код формы элемента:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
        Объект.Код = Параметры.Код;
        Объект.Наименование = Параметры.Наименование;
        Объект.НаименованиеПолное = Параметры.НаименованиеПолное;
        Объект.МеждународноеСокращение = Параметры.МеждународноеСокращение;
    КонецЕсли;        
    
КонецПроцедуры

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


&НаКлиенте
Процедура ЗаполнитьПоДанным(Результат, Параметры)  Экспорт

КонецПроцедуры


Код произвольной формы:

Перем Прокси;

&НаКлиенте
Процедура Заполнить(Команда)
    
    ЗаполнитьНаСервере();
    
КонецПроцедуры

Процедура ЗаполнитьНаСервере()
    
    Прокси = ОбменВЕТИС.ПолучитьПроксиDictionary();
    
    ListOptions = ОбменВЕТИС.ПолучитьListOptionsИзПрокси(Прокси);
    ListOptions.count = 4;
    Смещение = 0;
    //СписокЕдиницИзмерения.Очистить();
    Пока Истина Цикл
        ListOptions.offset = Смещение;    
        СписокВетис = Прокси.GetUnitList(ListOptions);
        Если ТипЗнч(СписокВетис) <> Тип("ОбъектXDTO") Тогда Прервать; КонецЕсли;
        Если СписокВетис.count = 0 Тогда Прервать; КонецЕсли;
        Для Каждого стр из СписокВетис.unit Цикл
            стр1 = СписокЕдиницИзмерения.Добавить();
            ЗаполнитьЗначенияСвойств(стр1, стр);
            стр1.ЕдиницаИзмерения = ОбменВЕТИС.ПолучитьОбъект1сПоGUID(стр1.GUID);
        КонецЦикла;
        Если СписокВетис.count + Смещение >= СписокВетис.total Тогда Прервать; КонецЕсли;
        Смещение = Смещение + ListOptions.Count;
    КонецЦикла;
    
КонецПроцедуры    

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
    //ЭтаФорма.Заголовок = ЭтотОбъект.Метаданные().Представление();
    //Прокси = ОбменВЕТИС.ПолучитьПроксиDictionary();
    
КонецПроцедуры

&НаКлиенте
Процедура СписокЕдиницИзмеренияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    
    ОповеститьОВыборе(ВыбраннаяСтрока);
    СтандартнаяОбработка = Ложь;
    
КонецПроцедуры
1 FIXXXL
 
12.07.17
08:57
при закрытии выбора - надо Оповестить
в форме-получателе пиши обработку оповещения
2 gaur777
 
12.07.17
09:13
(1) чувствую, что требуется немного пояснений(
3 gaur777
 
12.07.17
09:23
у меня же уже есть обработка оповещения

&НаКлиенте
Процедура СписокЕдиницИзмеренияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    
    ОповеститьОВыборе(ВыбраннаяСтрока);
    СтандартнаяОбработка = Ложь;
    
КонецПроцедуры
4 gaur777
 
12.07.17
09:32
(1) в форме элемента создаю обработку оповещения

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

КонецПроцедуры

А что в ней прописывать?:(
5 FIXXXL
 
12.07.17
11:01
(3) нужно через
Оповестить(<ИмяСобытия>, <Параметр>, <Источник>)
тогда и ОбработкаОповещения(ИмяСобытия, Параметр, Источник)  заработает