Запрос Который Должен Заполнить Табличную Часть Документа

Статус
Закрыто для дальнейших ответов.
20.02.2013
16
0
#1
Доброго времени суток.

Задание на этот раз такое: По кнопке «Заполнить» в табличную часть подбираются данные из регистра сведений «Инвестиционные договора».

Код:
Запрос=Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|	ИнвестиционныеДоговораСрезПоследних.Регистратор,
|	ИнвестиционныеДоговораСрезПоследних.НомерСтроки,
|	ИнвестиционныеДоговораСрезПоследних.Активность,
|	ИнвестиционныеДоговораСрезПоследних.Организация,
|	ИнвестиционныеДоговораСрезПоследних.Контрагент,
|	ИнвестиционныеДоговораСрезПоследних.Договор,
|	ИнвестиционныеДоговораСрезПоследних.Сумма,
|	ИнвестиционныеДоговораСрезПоследних.Валюта,
|	ИнвестиционныеДоговораСрезПоследних.ДатаВклада,
|	ИнвестиционныеДоговораСрезПоследних.ДатаВозврата,
|	ИнвестиционныеДоговораСрезПоследних.РасчетныеДни,
|	ИнвестиционныеДоговораСрезПоследних.ПроцентДохода,
|	ИнвестиционныеДоговораСрезПоследних.Период
|ИЗ
|	РегистрСведений.ИнвестиционныеДоговора.СрезПоследних(&Период, ) КАК ИнвестиционныеДоговораСрезПоследних
|ИТОГИ ПО
|	ОБЩИЕ";


Запрос.УстановитьПараметр("Период" = ЭлементыФормы.Дата.Значение);
РезультатЗапроса = Запрос.Выполнить();
ТабличноеПоле = РезультатЗапроса.Выбрать();	

Для каждого стр из ТабличноеПоле Цикл

п = ТабличнаяЧасть1.Добавить();
п.ПроцентныйДоход = стр.ПроцентДохода;
п.Договор = стр.Договор;
п.Валюта = стр.Валюта;

КонецЦикла;
У меня во первых с датой документа проблемы! + В табличнойЧасти появляются лишние пустые записи.
Прошу вас помогите решить..
 

unknown181538

НеГуру
28.12.2008
1 417
0
#2
"У меня во первых с датой документа проблемы! "
Какие?

"В табличнойЧасти появляются лишние пустые записи."
Итоги уберите из запроса для начала.

" Для каждого стр из ТабличноеПоле Цикл" это вообще работает? обычно выборку так не обходят.
 
20.02.2013
16
0
#3
Код:
Запрос.УстановитьПараметр(&Период, ЭлементыФормы.Дата.Значение)
- Вот это я делаю с датой. Дабы Период моей выборки совпал с выборкой документа.
Пока получаю ошибку "Недостаточно фактических параметров"

Итоги убрал, пустые поля не появляются! Супер

" Для каждого стр из ТабличноеПоле Цикл" это вообще работает? обычно выборку так не обходят."
Ну а как по другому, Циклом Пока Элемент.Следующий() я очень плохо понимаю как заносить туда параметры.
По крайней мере, некие данные заносятся в табличку через эдакий метод (Для Каждого)
 
20.02.2013
16
0
#4
Код:
Запрос=Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|	ИнвестиционныеДоговораСрезПоследних.Период,
|	ИнвестиционныеДоговораСрезПоследних.Регистратор,
|	ИнвестиционныеДоговораСрезПоследних.НомерСтроки,
|	ИнвестиционныеДоговораСрезПоследних.Активность,
|	ИнвестиционныеДоговораСрезПоследних.Организация,
|	ИнвестиционныеДоговораСрезПоследних.Контрагент,
|	ИнвестиционныеДоговораСрезПоследних.Договор,
|	ИнвестиционныеДоговораСрезПоследних.Сумма,
|	ИнвестиционныеДоговораСрезПоследних.Валюта,
|	ИнвестиционныеДоговораСрезПоследних.ДатаВклада,
|	ИнвестиционныеДоговораСрезПоследних.ДатаВозврата,
|	ИнвестиционныеДоговораСрезПоследних.РасчетныеДни,
|	ИнвестиционныеДоговораСрезПоследних.ПроцентДохода,
|	КурсыВалютСрезПоследних.Курс,
|	КурсыВалютСрезПоследних.Кратность
|ИЗ
|	РегистрСведений.ИнвестиционныеДоговора.СрезПоследних(&Дата, ) КАК ИнвестиционныеДоговораСрезПоследних
|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, ) КАК КурсыВалютСрезПоследних
|		ПО ИнвестиционныеДоговораСрезПоследних.Валюта = КурсыВалютСрезПоследних.Валюта";


Запрос.УстановитьПараметр("Дата", ЭлементыФормы.Дата.Значение);
РезультатЗапроса = Запрос.Выполнить();
ТабличноеПоле = РезультатЗапроса.Выгрузить();									

//Пока ТабличноеПоле.Следующий() цикл
//ТабЧ = ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока;
//ТабЧ.Договор = ТабличноеПоле.Договор; 
//КонецЦикла;

Для каждого стр из ТабличноеПоле Цикл

п = ТабличнаяЧасть1.Добавить();
п.ПроцентныйДоход = стр.ПроцентДохода;
п.Договор = стр.Договор;
п.Валюта = стр.Валюта;	 
п.Контрагент = стр.Контрагент;


п.Курс = стр.Курс; 

КонецЦикла;
Всё теперь как положено работает) Всем спс
 

-master-

Well-known member
14.01.2012
616
12
#5
если ТабличнаяЧасть1 это таблица, то все это можно решить 1-им запросом, без клиента и циклов.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#6
"если ТабличнаяЧасть1 это таблица, то все это можно решить 1-им запросом, без клиента и циклов."
Вы о чем вообще?? Апдейтом что ли или инсертом?
 

Дайнеко

Well-known member
19.11.2009
951
0
#7
Вот где косяк:
Код:
	  Для каждого стр из ТабличноеПоле Цикл
Логически понимаю, что надо выбрать Результат запроса. И на каждый проход цикла добавить по 1 строке в ТЧ "ТабличнаяЧасть1" (убивал бы за такие названия и за такое оформление текста).

А Вы делаете столько циклов, сколько строк в "ТабличноеПоле". А, кстати, что это оно такое?

Добавлено: Ой! Только сейчас рассмотрел!. Данные исходные берутся из все той же стр = ТабличноеПоле.

Ставлю диагноз: .... Ладно дам задание: расставьте в голове, что Вы хотите сделать? Сосредоточьтесь на вопросе: Откуда берем и Куда пишем?
 
Статус
Закрыто для дальнейших ответов.