|
УФ Как заполнить табличную часть документа, данными из запроса. |
☑ |
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
|
Вообщем данный вопрос можно считать закрытым. спасибо всем.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший