Имя: Пароль:
1C
1С v8
ДанныеФормыКоллекция в ТЧ документа УТ11
0 fakeyou
 
17.12.13
13:49
Всем привет.
Заполнил обработкой табличную часть, необходимо ее перенести в документ

Не могу понять почему не заполняет табличную часть.
&НаСервере
Функция СоздатьНовыйДокументНаСервере(Данные)
                ТекДокумент = Документы.ЗаказПоставщику.СоздатьДокумент();
        ТекДокумент.Дата = ТекущаяДата();
        
        Для Каждого СтрТабЧасти из Результат Цикл
            Товары = ТекДокумент.Товары.Добавить();
            Товары.Количество = СтрТабЧасти.Количество;
        Сообщить(СтрТабЧасти.Количество);
                КонецЦикла
              ТекДокмент.Записать();
КонецФункции;


Результат возвращает значение ДанныеФормыКоллекция
1 Wobland
 
17.12.13
13:50
а преобразовать данные формы в нормальную ТЗ ты не догадался?
2 fakeyou
 
17.12.13
14:25
(1)
Как то так?

ТЗ = ДанныеФормыВЗначение(Результат,Тип("ТаблицаЗначений"));
    
    Для Каждого Элемент Из Результат Цикл
                 Элемент.Количество =
//как передать сюда табличную часть дока?
         Сообщить(Элемент.Количество);
        
    КонецЦикла;
    
    ЗначениеВРеквизитФормы(ТЗ,"Результат");
3 fakeyou
 
17.12.13
14:29
НаКлиенте
Процедура Изменить(Команда,Данные)
    Форма = ПолучитьФорму("Документ.ЗаказПоставщику.ФормаОбъекта");
    Данные = Форма.Объект;
    СоздатьНовыйДокументНаСервере(Данные);
    Форма.Открыть();
    
    //СоздатьНовыйДокументНаСервере(Данные)
    
КонецПроцедуры

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

Весь кусок кода
4 fakeyou
 
17.12.13
17:29
up

Если вы знаете ответ, не скрывайтесь от народа плиз:)
5 Wobland
 
17.12.13
17:34
&НаКлиенте
Процедура Команда1(Команда)
    Пуск();
КонецПроцедуры

&НаСервере
Процедура Пуск()
    Для Каждого ТекСтрока Из Объект.ТабличнаяЧасть1 Цикл
        Сообщить(ТекСтрока.Реквизит1);
    КонецЦикла;
КонецПроцедуры
6 hhhh
 
17.12.13
17:37
(4) Чего вы издеваетесь?

   Для Каждого СтрокаТЗ Из ТЗ Цикл

чего вы свой Результат подсовываете?
7 fakeyou
 
17.12.13
18:26
(5)
Отлично, но что то я так и не понял как мне передать из только что сфомированной формы внешней обработки в документ, табличную часть:(

Сообщить я и раньше мог
8 Wobland
 
17.12.13
18:28
(7) в чём же разница?
9 fakeyou
 
17.12.13
18:28
(6)

Верно, не могу только понять как передать СтрокуТЗ из ТЗ в табличную часть, программно созданного дока.


Эту строку я пробовал передавать даже в комментарий и там все ок:), но что то с табличной частью в Управляемых формах не клеится.
Есть идеи?
10 Wobland
 
17.12.13
18:30
(9) что не выходит?
11 fakeyou
 
17.12.13
18:37
(10)
На выходе получаю созданный документ с совпадающим кол-вом строк из обработки, с пустыми полями
12 Wobland
 
17.12.13
18:38
(11) ну вот так вот ты пожелал его заполнить. ничо не понял
13 fakeyou
 
17.12.13
18:43
(12)
&НаКлиенте
Процедура Изменить(Команда,Данные,ФормаТовары)
    
    СоздатьНовыйДокументНаСервере(Данные,ФормаТовары)
    
КонецПроцедуры

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

    ЗначениеВРеквизитФормы(ТЗ,"Результат");
    
    ТекДокумент.Записать();        
    
КонецФункции


Товары.Количество = СтрокаТЗ.Количество;   // вот тут не могу передать значение


Если обработка добавляет кол-во позиций, но не заполняет количество, здесь возникает вопрос о том, что у них разный тип в Ячейках, т.е обращение к ячейкам есть, но т.к тип разный, заполнения нет
14 Wobland
 
17.12.13
18:44
попробуй (5). только сообщай прямо в новую строку нового документа
15 fakeyou
 
17.12.13
18:55
16 Wobland
 
17.12.13
18:55
>Заполнил обработкой табличную часть
вот и заполняй ТЧ
17 fakeyou
 
20.12.13
12:04
Отпишусь для отчетности...
Ребята в УТ11, в табличной части реквизит называется КоличествоУпаковок.

На другое название реквизита я никак не думал:)