Есть много расходных накладных, на основании их созданы пко, подскажите как
сделать отчет, или как запрос сформировать, что б был список документов,
а вправо создавались колонки с датами оплат
перем ВыбТМЦ; перем контаге;
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|РасходнаяРеализатора = Документ.РасходнаяРеализатора.ТекущийДокумент;
|Контрагент = Документ.РасходнаяРеализатора.Контрагент;
|СуммаСНДС = Документ.РасходнаяРеализатора.СуммаСНДС;
|Оплачено = Документ.РасходнаяРеализатора.Оплачено;
|Функция Сумма = Сумма(СуммаСНДС);
|Функция РасходнаяРеализатораОплаченоСумма = Сумма(РасходнаяРеализатора.Оплачено);
|Группировка РасходнаяРеализатора упорядочить по РасходнаяРеализатора.Контрагент, РасходнаяРеализатора.ДатаДок, РасходнаяРеализатора.НомерДок, РасходнаяРеализатора.Оплачено, РасходнаяРеализатора.ДолгПоНакл, РасходнаяРеализатора.Город, РасходнаяРеализатора.Улица все ВошедшиеВЗапрос;
|Условие(Контрагент в ВыбКонтрагент);
|"//}}ЗАПРОС
;
Выборка = РезультатЗапроса.Выбрать();
ПодчинённыеДокументы = 0;
Пока Выборка.Следующий() Цикл
ПодчинённыеДокументы = 0;
Док = СоздатьОбъект("Документ");
Док.УстановитьФильтр(1, 0, 1, 1, 1, 1);
Док.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент());
Пока док.получитьДОкумент()=1 цикл
текДок = Док.Запрос.РасходнаяРеализатора;
ПодчинённыеДокументы = текДок.ДатаДок +" Оплачено = " + текДок.СуммаСНДС;
КонецЦикла;
КонецЦикла;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей РасходнаяРеализатора
Таб.ВывестиСекцию("РасходнаяРеализатора");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
Перем Док;
//*********************************************************************
Функция ПолучитьОплату(ТекДок)
ПодчиненныеДокументы = "";
Док.ВыбратьПодчиненныеДокументы(,,ТекДок);
Пока Док.ПолучитьДокумент()=1 Цикл
Если (Док.Вид() <> "ПриходныйКассовый") Тогда
Продолжить;
КонецЕсли; // (Док.Вид() неравно "ПКО")
ПодчиненныеДокументы=ПодчиненныеДокументы+Док.ДатаДок+", "+Док.СуммаСНДС+"; ";
КонецЦикла;
Возврат ПодчиненныеДокументы;
КонецФункции //ПолучитьОплату
//*********************************************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|РасходнаяРеализатора = Документ.РасходнаяРеализатора.ТекущийДокумент;
|Контрагент = Документ.РасходнаяРеализатора.Контрагент;
|СуммаСНДС = Документ.РасходнаяРеализатора.СуммаСНДС;
|Оплачено = Документ.РасходнаяРеализатора.Оплачено;
|Функция Сумма = Сумма(СуммаСНДС);
|Функция РасходнаяРеализатораОплаченоСумма = Сумма(РасходнаяРеализатора.Оплачено);
|Группировка РасходнаяРеализатора упорядочить по РасходнаяРеализатора.Контрагент, РасходнаяРеализатора.ДатаДок, РасходнаяРеализатора.НомерДок, РасходнаяРеализатора.Оплачено, РасходнаяРеализатора.ДолгПоНакл, РасходнаяРеализатора.Город, РасходнаяРеализатора.Улица все ВошедшиеВЗапрос;
|Условие(Контрагент в ВыбКонтрагент);
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Док=СоздатьОбъект("Документ");
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей РасходнаяРеализатора
ТекДок=Запрос.РасходнаяРеализатора;
ПодчиненныеДокументы=ПолучитьОплату(ТекДок);
Таб.ВывестиСекцию("РасходнаяРеализатора");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры