1.
tomskiy_proger1c
1324.01.24 20:13 Сейчас в теме
Процедура СформироватьОтчет(ТабДок) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СчетаУчетаРасчетовПоЗаймамИКредитам.ДоговорКонтрагента КАК ДоговорКонтрагента,
| СчетаУчетаРасчетовПоЗаймамИКредитам.ДоговорКонтрагента.Владелец КАК ДоговорКонтрагентаВладелец,
| СчетаУчетаРасчетовПоЗаймамИКредитам.СчетОсновногоДолга КАК СчетОсновногоДолга,
| ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
| ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
| ХозрасчетныйОстаткиИОбороты.Период КАК Период
|ПОМЕСТИТЬ ВТ_Долги
|ИЗ
| РегистрСведений.СчетаУчетаРасчетовПоЗаймамИКредитам КАК СчетаУчетаРасчетовПоЗаймамИКредитам
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , , {(&ВидыСубконто)}, {(Субконто1 = &Контрагент) КАК Поле2, (Субконто2 = &ДоговорКонтрагента) КАК Поле4}) КАК ХозрасчетныйОстаткиИОбороты
| ПО СчетаУчетаРасчетовПоЗаймамИКредитам.СчетОсновногоДолга = ХозрасчетныйОстаткиИОбороты.Счет
| И СчетаУчетаРасчетовПоЗаймамИКредитам.ДоговорКонтрагента.Владелец = ХозрасчетныйОстаткиИОбороты.Субконто1
| И СчетаУчетаРасчетовПоЗаймамИКредитам.ДоговорКонтрагента = ХозрасчетныйОстаткиИОбороты.Субконто2
|ГДЕ
| (ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт > 0
| ИЛИ ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт > 0)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СчетаУчетаРасчетовПоЗаймамИКредитам.ДоговорКонтрагента КАК ДоговорКонтрагента,
| СчетаУчетаРасчетовПоЗаймамИКредитам.ДоговорКонтрагента.Владелец КАК ДоговорКонтрагентаВладелец,
| СчетаУчетаРасчетовПоЗаймамИКредитам.СчетОсновногоДолга КАК СчетОсновногоДолга,
| ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
| ХозрасчетныйОстаткиИОбороты.Период КАК Период
|ПОМЕСТИТЬ ВТ_Проценты
|ИЗ
| РегистрСведений.СчетаУчетаРасчетовПоЗаймамИКредитам КАК СчетаУчетаРасчетовПоЗаймамИКредитам
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , , {(&ВидыСубконто)}, {(Субконто1 = &Контрагент) КАК Поле2, (Субконто2 = &ДоговорКонтрагента) КАК Поле4}) КАК ХозрасчетныйОстаткиИОбороты
| ПО СчетаУчетаРасчетовПоЗаймамИКредитам.СчетУчетаПроцентов = ХозрасчетныйОстаткиИОбороты.Счет
| И СчетаУчетаРасчетовПоЗаймамИКредитам.ДоговорКонтрагента.Владелец = ХозрасчетныйОстаткиИОбороты.Субконто1
| И СчетаУчетаРасчетовПоЗаймамИКредитам.ДоговорКонтрагента = ХозрасчетныйОстаткиИОбороты.Субконто2
|ГДЕ
| ХозрасчетныйОстаткиИОбороты.СуммаОборотДт > 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_Долги.ДоговорКонтрагента КАК ДоговорКонтрагента,
| ВТ_Долги.ДоговорКонтрагентаВладелец КАК ДоговорКонтрагентаВладелец,
| ВТ_Долги.СчетОсновногоДолга КАК СчетОсновногоДолга,
| ВТ_Долги.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
| ВТ_Долги.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
| ВТ_Проценты.СуммаОборотДт КАК СуммаОборотДт,
| ВТ_Проценты.СуммаОборотДт / 2 * 100 КАК Поле1,
| ВТ_Проценты.СуммаОборотДт / 2 * 100 * 365 КАК Поле2,
| ВТ_Долги.Период КАК Период
|ПОМЕСТИТЬ ВТ_ИТОГ
|ИЗ
| ВТ_Долги КАК ВТ_Долги
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Проценты КАК ВТ_Проценты
| ПО ВТ_Долги.ДоговорКонтрагента = ВТ_Проценты.ДоговорКонтрагента
| И ВТ_Долги.ДоговорКонтрагентаВладелец = ВТ_Проценты.ДоговорКонтрагентаВладелец
| И ВТ_Долги.Период = ВТ_Проценты.Период
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ИТОГ.Период КАК Период,
| ВТ_ИТОГ.ДоговорКонтрагента КАК ДоговорКонтрагента,
| ВТ_ИТОГ.ДоговорКонтрагентаВладелец КАК Контрагент,
| ВТ_ИТОГ.СчетОсновногоДолга КАК Счет,
| ВТ_ИТОГ.СуммаНачальныйОстатокДт КАК СальдоНаНачало,
| ВТ_ИТОГ.СуммаКонечныйОстатокДт КАК СальдоНаКонец,
| ВТ_ИТОГ.СуммаОборотДт КАК НачисленныеПроценты,
| ВТ_ИТОГ.Поле1 КАК ПроцентнаяСтавкаДневная,
| ВТ_ИТОГ.Поле2 КАК ПроцентнаяСтавкаГодовая
|ИЗ
| ВТ_ИТОГ КАК ВТ_ИТОГ
|
|УПОРЯДОЧИТЬ ПО
| Контрагент";
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Макет = ПолучитьМакет("Макет");
Область = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(Область);
Пока Выборка.Следующий() Цикл
Область.Макет.ПолучитьОбласть("СтрокаОтчета");
Область.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Область);
КонецЦикла;
КонецПроцедуры
Показать
Тут выдает ошибку и прерывается. Почему и как поправить? Не формировал особо отчетов вот так, не через скд, что то могу не знать.
Как у вас выглядит макет?
Как я понимаю:
Область шапка
Область заголовок
Область Поставщик
Область Покупатель
Область Товар
Область подписи
Есть ли у вас в макете конкретно название области "Строка Отчета" Или вы решили выборку данных назвать таковой переменной?
Должна быть логика
И так далее по каждой области. Разом все заполнить нельзя, 1С не телепат
Посмотрите статью. Старая правда, но думаю информации для понятия должно хватить https://infostart.ru/1c/tools/258450/