Имя: Пароль:
1C
1С v8
Внешняя обработка заполнения табличной части
0 Zixxx
 
26.07.13
11:13
Хлопцы, выручайте. Создал внешнюю обработку заполнения табличной части документа (Управляемые формы). Все работает хорошо за исключением одного момента. После заполнения данные отображаются только в том случае если я сначала запишу документ а потом перечитаю форму. Но хотелось бы дать пользователю шанс закрыть документ без сохранения.

Ниже код формы, в ней для примера я очищаю все данные. Но данные без записи формы остаются

[CODE]
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
  
   Для каждого Элемент из ОбъектыНазначенияМассив Цикл
      
      КлючПоиска = Новый Структура("Ключ", Элемент);
      
      Форма = ОткрытьФорму("Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента", КлючПоиска,,,);
      ОбъектФормы = Форма.Объект;
      ОбъектФормы.Товары.Очистить();
      
      //Форма.Записать();
      
      КопироватьДанныеФормы(ОбъектФормы, Форма.Объект);
      Форма.ОбновитьОтображениеДанных();
      Форма.Прочитать();
      
   КонецЦикла;

КонецПроцедуры
[/CODE]

Подскажите как все же отобразить данные без записи формы?
1 cw014
 
26.07.13
11:15
КопироватьДанныеФормы - это что?
2 cw014
 
26.07.13
11:16
А нафига через форму делать?
3 Zixxx
 
26.07.13
11:23
(1) Копирует одну структуру в другую, если они совместимы
(2) Так не через форму надо будет записывать объект, а тут вроде как еще нет
4 Zixxx
 
26.07.13
11:32
fg
5 Zixxx
 
26.07.13
11:44
ап
6 Zixxx
 
26.07.13
12:02
up
7 Zixxx
 
26.07.13
12:25
гз
8 Zixxx
 
26.07.13
13:31
ап
9 Zixxx
 
26.07.13
14:47
Это баг механизма подключаемых внешних обработок или нет?

Вед такой код не во внешних обработках работает хорошо.

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

&НаСервереБезКонтекста
Процедура ЗаполнитьОбъект(НовыйОбъект)
    
    ОбъектЗначение = ДанныеФормыВЗначение(НовыйОбъект, Тип("ДокументОбъект.УстановкаЦенНоменклатуры"));
    ОбъектЗначение.Товары.Очистить();
    //ОбъектЗначение.Записать();
    
    ЗначениеВДанныеФормы(ОбъектЗначение, НовыйОбъект);
    
КонецПроцедуры