Имя: Пароль:
1C
1С v8
Внешняя обработка вида "Заполнение объекта" УФ
, ,
0 yusose
 
12.11.14
15:35
Помогите разобраться-первый раз столкнулась с управляемыми формами, уже голова кипит... Открыла из документа обработку, заполнила с директивой на сервере ТЧ этого документа. Как мне получить эту заполненную ТЧ на клиенте? Только передать в сервера на клиент эту ТЧ и перезаполнить или есть что-то лучшее?
1 butterbean
 
12.11.14
15:37
как ты смогла заполнить тч открытого документа обработкой??
2 yusose
 
12.11.14
15:40
(1) не знаю :) я получила объект и заполнила... он не ругался...
3 butterbean
 
12.11.14
15:43
(2) код обработки показывай
4 yusose
 
12.11.14
15:45
&НаКлиенте
Процедура ПриЗакрытии()
    
    СохранитьНастройкиФормыНаСервере();
    
    АдресТоваровВХранилище = АдресТоваровВХранилище();
    
    Если ПеренестиВДокумент И АдресТоваровВХранилище <> Неопределено Тогда
        Структура = Новый Структура("АдресТоваровВХранилище", АдресТоваровВХранилище);
        ОбработкаВыбораПодборНаКлиенте(Структура);
    КонецЕсли;
    

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

&НаКлиенте
Процедура ОбработкаВыбораПодборНаКлиенте(Структура)
    
    ОбработкаВыбораПодборНаСервере(Структура);
    
КонецПроцедуры

&НаСервере
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение)
    
    ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);
    ПолученныйОбъект = Параметры.Документ.ПолучитьОбъект();
    
    КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
    
    Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
        
        ТекущаяСтрока = ПолученныйОбъект.Товары.Добавить();
        ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаТовара, "НоменклатураНабора, ХарактеристикаНабора, Номенклатура, Характеристика, Упаковка, Склад, ВидЦены, Цена, КоличествоУпаковок, СрокПоставки, ПроцентРучнойСкидки");
        
        
    
КонецПроцедуры

это если убрать лишнее.
5 yusose
 
12.11.14
15:46
конец цикла случайно удалила
6 butterbean
 
12.11.14
15:47
(5) ты из ссылки на документ получаешь его объект, заполняешь, но не записываешь, поэтому ничего не меняется
7 yusose
 
12.11.14
15:48
Сначала здесь
ОбработкаВыбораПодборНаКлиенте(Структура);
передавала еще переменную, и после этого на клиенте циклом перезаписывала объект, тогда все получалось, но мне кажется, что это как-то не так...
8 yusose
 
12.11.14
15:48
(6) а записывать обязательно? почему ОбновитьОтображение не работает?
9 yusose
 
12.11.14
15:51
(7) выглядело примерно так:
Процедура ПриЗакрытии()
    
    СохранитьНастройкиФормыНаСервере();
    
    ОбъектФормы = ВладелецФормы.Объект;

    АдресТоваровВХранилище = АдресТоваровВХранилище();
    
    Если ПеренестиВДокумент И АдресТоваровВХранилище <> Неопределено Тогда
        Структура = Новый Структура("АдресТоваровВХранилище", АдресТоваровВХранилище);
        ОбработкаВыбораПодборНаКлиенте(Структура, ОбъектФормы);
    КонецЕсли;
    
    ВладелецФормы.Объект.Товары.Очистить();
    
    Для Каждого Строка Из ОбъектФормы.Товары Цикл
        
        НоваяСтрока = ВладелецФормы.Объект.Товары.Добавить();
        НоваяСтрока.Номенклатура = Строка.Номенклатура;
        
    КонецЦикла;

на то, что в цикле, не обращай внимания, это я для проверки. Тогда все перезаполнялось и выводилось на экран
10 yusose
 
12.11.14
15:53
(9) в ОбъектФормы как раз лежал этот ПолученныйОбъект