Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab3.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1.13 Mб
Скачать

Обеспечение промежуточной подсуммировки итогов в отчете

Рассмотрим задачу:

Ведомость поступления товаров от поставщика ____________ за ___ период

С _____- по ______

Дата

Товар

Склад

Единицы

Колич.

цена

стоимость

Сумма ндс

Всего с ндс

Итого: < > < > < >

Замечание 1. Строки отчета группируются по складам. В конце группы следует включать строку «Итого по складу».

1. Разрабатываем новый документ (копированием предыдущего документа поступления товаров) и добавляем новые реквизиты в табличную часть

2. Формируем новый отчет. Форма диалога:

3. Макет:

  1. В форме отчета в свойствах элемента управления «ПолеТабличногоДокумент1» убрать вызов процедуры нестандартной расшифровки (см. событие «Обработка расшифровки»)

  1. Текст программы:

Процедура КнопкаСформироватьНажатие(Кнопка)

ТЗ=Новый ТаблицаЗначений;

ТЗ.Колонки.Добавить("Товар");

ТЗ.Колонки.Добавить("Документ");

ТЗ.Колонки.Добавить("Склад");

ТЗ.Колонки.Добавить("Количество");

ТЗ.Колонки.Добавить("Сумма");

ТЗ.Колонки.Добавить("СуммаНДС");

ТЗ.Колонки.Добавить("ВсегоСНДС");

ВыбДок=Документы.ПоступлениеТоваровСНДС.Выбрать(НачалоДня(НачПериода),КонецДня( КонПериода));

Пока ВыбДок.Следующий() Цикл

Если Не ВыбДок.Проведен Тогда

продолжить;

КонецЕСли;

Если ВыбПоставщик<>ВыбДок.Поставщик Тогда

Продолжить;

КонецЕСли;

ДЛя каждого стр из ВыбДок.Товары Цикл

ТекЗапись=ТЗ.Добавить();

ТекЗапись.Документ=ВыбДок.Ссылка;

ТекЗапись.Склад=ВыбДок.Склад;

ТекЗапись.товар=стр.Товар;

ТекЗапись.Количество=стр.Количество;

ТекЗапись.Сумма=Стр.Сумма;

ТекЗапись.СуммаНДС=Стр.СуммаНДС;

ТекЗапись.ВсегоСНДС=Стр.ВсегоСНДС;

КонецЦикла;

КонецЦикла;

ТЗ.Сортировать("Склад,товар");

//ТабличноеПоле1=ТЗ.Скопировать();

//ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

//Возврат;

Таб=ЭлементыФормы.ПолеТабличногоДокумента1;

Макет=Отчеты.ВедомостьПоступленияТоваров.ПолучитьМакет("МакетВедомости");

Область=Макет.ПолучитьОбласть("Шапка");

Область.Параметры.ОписаниеПериода=представлениепериода( НачалоДня(НачПериода),КонецДня( КонПериода),"ФП = Истина");

Таб.Вывести(Область);

ТекСклад="";

ИтогСумма=0;

ИтогКоличество =0;

ИтогСуммаНДС=0;

ИтогВсегоСНДС=0;

ДЛя ффф=0 По ТЗ.Количество()-1 Цикл

Если (ТекСклад<>ТЗ[ффф].Склад) и (ффф>0) Тогда

Область=Макет.ПолучитьОбласть("ПоСкладу");

Область.Параметры.ИтогСумма =ИтогСумма;

Область.Параметры.ИтогКоличество =ИтогКоличество;

Область.Параметры.ИтогСуммаНДС =ИтогСуммаНДС;

Область.Параметры.ИтогВсегоСНДС =ИтогВсегоСНДС;

Таб.Вывести(Область);

ИтогСумма=0;

ИтогКоличество =0;

ИтогСуммаНДС=0;

ИтогВсегоСНДС=0;

ТекСклад= ТЗ[ффф].Склад;

КонецЕсли;

Если ффф=0 Тогда

ТекСклад= ТЗ[ффф].Склад;

КонецЕсли;

Область=Макет.ПолучитьОбласть("Строка");

Область.Параметры.Ном =ффф+1;

Область.Параметры.Товар =ТЗ[ффф].товар;

Область.Параметры.Количество =ТЗ[ффф].Количество;

Область.Параметры.Сумма =ТЗ[ффф].Сумма;

Область.Параметры.Единица =ТЗ[ффф].товар.ЕдиницаИзмерения;

Область.Параметры.Склад =ТЗ[ффф].Склад;

Область.Параметры.СуммаНДС =ТЗ[ффф].СуммаНДС;

Область.Параметры.ВсегоСНДС =ТЗ[ффф].ВсегоСНДС;

Область.Параметры.ДокументРасшифровка=ТЗ[ффф].Документ;

ИтогСумма=ИтогСумма+ТЗ[ффф].Сумма;

ИтогКоличество =ИтогКоличество+ ТЗ[ффф].Количество;

ИтогСуммаНДС=ИтогСуммаНДС+ТЗ[ффф].СуммаНДС;

ИтогВсегоСНДС=ИтогВсегоСНДС+ТЗ[ффф].ВсегоСНДС;

Таб.Вывести(Область);

КонецЦикла;

Область=Макет.ПолучитьОбласть("ПоСкладу");

Область.Параметры.ИтогСумма =ИтогСумма;

Область.Параметры.ИтогКоличество =ИтогКоличество;

Область.Параметры.ИтогСуммаНДС =ИтогСуммаНДС;

Область.Параметры.ИтогВсегоСНДС =ИтогВсегоСНДС;

Таб.Вывести(Область);

Область=Макет.ПолучитьОбласть("Подвал");

Область.Параметры.ВсегоСумма =ТЗ.Итог("Сумма");

Область.Параметры.ВсегоКоличество = ТЗ.Итог("Количество");

Область.Параметры.ВсегоСуммаНДС =ТЗ.Итог("СуммаНДС");

Область.Параметры.ВсегоВсегоСНДС =ТЗ.Итог("ВсегоСНДС");

Таб.Вывести(Область);

Таб.ТолькоПросмотр = Истина;

Таб.Показать("ВедомостьПоступленияСНДС");

Замечание. Содержимое ТЗ до сортировки :

Содержимое ТЗ после сортировки :

Результат:

:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]