Имя: Пароль:
1C
 
УФ Как заполнить табличную часть документа, данными из запроса.
0 invest
 
30.09.15
11:30
Доброго времени.

Собственно суть вопроса в сабже.
1 Cyberhawk
 
30.09.15
11:31
Вместо заполнения ТЧ документа лучше заполни таблицу на форме
2 Cyberhawk
 
30.09.15
11:32
А схема вкратце такая: зовешь сервер, выполняешь запрос, результат запроса пихаешь в ТЧ объекта формы
3 invest
 
30.09.15
11:32
(1) это как?
4 Cyberhawk
 
30.09.15
11:33
(3) Это так: ТЧ документа - это объект базы данных (таблица), а таблица на форме - это ЭУ (элемент управления) для отображения данных и/или записи данных в базу
5 invest
 
30.09.15
11:33
вот что имеется

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


но, выдает ошибку типа:
.Форма.ФормаДокумента.Форма(94)}: Ошибка при вызове метода контекста (ДанныеФормыВЗначение)
    ФинансовыеДокументы = ДанныеФормыВЗначение(Объект.ФинансовыеДокументы, Тип("ТаблицаЗначений"));
по причине:
Недопустимое значение параметра (параметр номер '1')
6 invest
 
30.09.15
11:38
(4) ну и добей ветку написав грамотный код.
7 Buster007
 
30.09.15
11:50
НоваяСтрока = Объект.ФинансовыеДокументы.Добавить();
так не работает?
8 jurassic
 
30.09.15
11:52
Процедура ДобавитьВсёНаСервере()
    об=РеквизитФормыВЗначение("Объект");
    об.Товары.Загрузить(Запрос.Выполнить().Выгрузить());
    ЗначениеВРеквизитФормы(об, "Объект");
КонецПроцедуры
9 jurassic
 
30.09.15
11:52
(6) а где волшебное слово?
10 invest
 
30.09.15
11:54
(7) это просто гениально. Спасибо добрый человек.
11 invest
 
30.09.15
11:55
(9) и вам спасибо большое. Теперь вопрос что будет работать быстрее тот вариант который привели Вы или же вариант из (7)
12 jurassic
 
30.09.15
11:59
(11) мне тупо влом ходить по выборке
13 Buster007
 
30.09.15
12:00
(11) это разные варианты.
По твоему коду у тебя происходит добавление строк, а по его коду он заменяет все записи в таблице. Исходя из твоего кода, можно догадаться, что тебе надо добавление.
14 jurassic
 
30.09.15
12:02
(13) или он не догадался почистить перед собой

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

&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
    Если Результат=КодВозвратаДиалога.Да Тогда
        ДобавитьВсёНаСервере();
    КонецЕсли;
КонецПроцедуры
15 invest
 
30.09.15
12:07
Вообщем данный вопрос можно считать закрытым. спасибо всем.