Заполнение табличной части после выполненного запроса
Добрый день!
Столкнулся с маленькой задачей, не могу заполнить табличную часть акта сверки по данным организации значением из запроса.
Столкнулся с маленькой задачей, не могу заполнить табличную часть акта сверки по данным организации значением из запроса.
Процедура ЗаполнитьПоДаннымУправленческогоУчета(ФильтрСписокСчетов = неопределено) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Организация", ОбъектЭ.Организация);
Запрос.УстановитьПараметр("Контрагент", ОбъектЭ.Контрагент);
ТекстФильтра = "
| Организация = &Организация И Контрагент = &Контрагент ";
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорКонтрагента КАК ДоговорКонтрагента
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(,, , ," + ТекстФильтра + ")";
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщить("Ничего не найдено");
Иначе
Выборка = Результат.Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("ДоговорКонтрагента") Цикл
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачала", ОбъектЭ.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ОбъектЭ.ДатаОкончания));
Запрос.УстановитьПараметр("Организация", ОбъектЭ.Организация);
Запрос.УстановитьПараметр("Контрагент", ОбъектЭ.Контрагент);
Запрос.УстановитьПараметр("ДоговорКонтрагента", Выборка.ДоговорКонтрагента);
ТекстФильтра = "
| Организация = &Организация И Контрагент = &Контрагент ";
ТекстФильтра = ТекстФильтра + " И ДоговорКонтрагента В (&ДоговорКонтрагента) ";
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК ОстатокНаНачалоПоДоговору,
| ДоговорКонтрагента КАК ДоговорКонтрагента
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , ," + ТекстФильтра + ") КАК Взаиморасчеты";
Результат = Запрос.Выполнить();
РезультатЗапроса = Результат.Выбрать();
РезультатЗапроса.Следующий();
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("ДоговорКонтрагента");
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.ДоговорКонтрагента = РезультатЗапроса.ДоговорКонтрагента;
тз.ЗаполнитьЗначения(РезультатЗапроса.ДоговорКонтрагента, "ДоговорКонтрагента");
КонецЦикла;
ТаблицаЗначений = ТЗ.Выгрузить();
ПоДаннымОрганизации.Загрузить(ТаблицаЗначений);
КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Расширения... Использование на практике. Пример заполнения табличных частей в 1С Бухгалтерия 3.0.
- Создание подключаемой обработки табличной части с диалогом запроса параметров заполнения (управляемые формы)
- Универсальное заполнение табличных частей
- Как автоматически заполнить обработкой табличную часть документа "Ввод начальных остатков" (Тип операции = "Расчеты с партнерами"). 1С: ERP
- Заполнение табличной части документа из EXCEL универсальная (толстый клиент)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
У вас в цикле ТЗ каждый раз заново создается, если договоров несколько, то в результат попадет только последний.
А так вообще не понятно для чего вы первым запросом получаете сначала договора, потом остатки по нему, еще с таблицами значений что-то делаете, хотя можно сделать проще и понятнее.
У вас в цикле ТЗ каждый раз заново создается, если договоров несколько, то в результат попадет только последний.
А так вообще не понятно для чего вы первым запросом получаете сначала договора, потом остатки по нему, еще с таблицами значений что-то делаете, хотя можно сделать проще и понятнее.
ПоДаннымОрганизации.Очистить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачала", ОбъектЭ.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ОбъектЭ.ДатаОкончания));
Запрос.УстановитьПараметр("Организация", ОбъектЭ.Организация);
Запрос.УстановитьПараметр("Контрагент", ОбъектЭ.Контрагент);
ТекстФильтра = "
| Организация = &Организация И Контрагент = &Контрагент ";
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК ОстатокНаНачалоПоДоговору,
| ДоговорКонтрагента КАК ДоговорКонтрагента
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , ," + ТекстФильтра + ") КАК Взаиморасчеты";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ПоДаннымОрганизации.Добавить(), Выборка);
КонецЦикла;
Показать
(5)
Спасибо! Заработало, немного выгрузку изменил.
ПоДаннымОрганизации.Очистить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачала", ОбъектЭ.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ОбъектЭ.ДатаОкончания));
Запрос.УстановитьПараметр("Организация", ОбъектЭ.Организация);
Запрос.УстановитьПараметр("Контрагент", ОбъектЭ.Контрагент);
ТекстФильтра = "
| Организация = &Организация И Контрагент = &Контрагент ";
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК ОстатокНаНачалоПоДоговору,
| ДоговорКонтрагента КАК ДоговорКонтрагента
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , ," + ТекстФильтра + ") КАК Взаиморасчеты";
Выборка = Запрос.Выполнить();
ТаблицаЗначений = Выборка.Выгрузить();
ПоДаннымОрганизации.Загрузить (ТаблицаЗначений);
ПоказатьСпасибо! Заработало, немного выгрузку изменил.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот