- •Лабораторная работа № 3 Разработка объектов конфигурации в среде v8 Тема: Документы
- •Пример выполнения работы
- •Разработать Документ «Поступление товара»
- •Сформировать форму документа
- •Разработать Документ «Возврат товара».
- •6. Сформировать новый отчет «Ведомость о поступлениях и возврате».
- •Обеспечение промежуточной подсуммировки итогов в отчете
Обеспечение промежуточной подсуммировки итогов в отчете
Рассмотрим задачу:
Ведомость поступления товаров от поставщика ____________ за ___ период
С _____- по ______
Дата |
Товар |
Склад |
Единицы |
Колич. |
цена |
стоимость |
Сумма ндс |
Всего с ндс |
Итого: < > < > < >
Замечание 1. Строки отчета группируются по складам. В конце группы следует включать строку «Итого по складу».
1. Разрабатываем новый документ (копированием предыдущего документа поступления товаров) и добавляем новые реквизиты в табличную часть
2. Формируем новый отчет. Форма диалога:
3. Макет:
В форме отчета в свойствах элемента управления «ПолеТабличногоДокумент1» убрать вызов процедуры нестандартной расшифровки (см. событие «Обработка расшифровки»)
Текст программы:
Процедура КнопкаСформироватьНажатие(Кнопка)
ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Товар");
ТЗ.Колонки.Добавить("Документ");
ТЗ.Колонки.Добавить("Склад");
ТЗ.Колонки.Добавить("Количество");
ТЗ.Колонки.Добавить("Сумма");
ТЗ.Колонки.Добавить("СуммаНДС");
ТЗ.Колонки.Добавить("ВсегоСНДС");
ВыбДок=Документы.ПоступлениеТоваровСНДС.Выбрать(НачалоДня(НачПериода),КонецДня( КонПериода));
Пока ВыбДок.Следующий() Цикл
Если Не ВыбДок.Проведен Тогда
продолжить;
КонецЕСли;
Если ВыбПоставщик<>ВыбДок.Поставщик Тогда
Продолжить;
КонецЕСли;
ДЛя каждого стр из ВыбДок.Товары Цикл
ТекЗапись=ТЗ.Добавить();
ТекЗапись.Документ=ВыбДок.Ссылка;
ТекЗапись.Склад=ВыбДок.Склад;
ТекЗапись.товар=стр.Товар;
ТекЗапись.Количество=стр.Количество;
ТекЗапись.Сумма=Стр.Сумма;
ТекЗапись.СуммаНДС=Стр.СуммаНДС;
ТекЗапись.ВсегоСНДС=Стр.ВсегоСНДС;
КонецЦикла;
КонецЦикла;
ТЗ.Сортировать("Склад,товар");
//ТабличноеПоле1=ТЗ.Скопировать();
//ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
//Возврат;
Таб=ЭлементыФормы.ПолеТабличногоДокумента1;
Макет=Отчеты.ВедомостьПоступленияТоваров.ПолучитьМакет("МакетВедомости");
Область=Макет.ПолучитьОбласть("Шапка");
Область.Параметры.ОписаниеПериода=представлениепериода( НачалоДня(НачПериода),КонецДня( КонПериода),"ФП = Истина");
Таб.Вывести(Область);
ТекСклад="";
ИтогСумма=0;
ИтогКоличество =0;
ИтогСуммаНДС=0;
ИтогВсегоСНДС=0;
ДЛя ффф=0 По ТЗ.Количество()-1 Цикл
Если (ТекСклад<>ТЗ[ффф].Склад) и (ффф>0) Тогда
Область=Макет.ПолучитьОбласть("ПоСкладу");
Область.Параметры.ИтогСумма =ИтогСумма;
Область.Параметры.ИтогКоличество =ИтогКоличество;
Область.Параметры.ИтогСуммаНДС =ИтогСуммаНДС;
Область.Параметры.ИтогВсегоСНДС =ИтогВсегоСНДС;
Таб.Вывести(Область);
ИтогСумма=0;
ИтогКоличество =0;
ИтогСуммаНДС=0;
ИтогВсегоСНДС=0;
ТекСклад= ТЗ[ффф].Склад;
КонецЕсли;
Если ффф=0 Тогда
ТекСклад= ТЗ[ффф].Склад;
КонецЕсли;
Область=Макет.ПолучитьОбласть("Строка");
Область.Параметры.Ном =ффф+1;
Область.Параметры.Товар =ТЗ[ффф].товар;
Область.Параметры.Количество =ТЗ[ффф].Количество;
Область.Параметры.Сумма =ТЗ[ффф].Сумма;
Область.Параметры.Единица =ТЗ[ффф].товар.ЕдиницаИзмерения;
Область.Параметры.Склад =ТЗ[ффф].Склад;
Область.Параметры.СуммаНДС =ТЗ[ффф].СуммаНДС;
Область.Параметры.ВсегоСНДС =ТЗ[ффф].ВсегоСНДС;
Область.Параметры.ДокументРасшифровка=ТЗ[ффф].Документ;
ИтогСумма=ИтогСумма+ТЗ[ффф].Сумма;
ИтогКоличество =ИтогКоличество+ ТЗ[ффф].Количество;
ИтогСуммаНДС=ИтогСуммаНДС+ТЗ[ффф].СуммаНДС;
ИтогВсегоСНДС=ИтогВсегоСНДС+ТЗ[ффф].ВсегоСНДС;
Таб.Вывести(Область);
КонецЦикла;
Область=Макет.ПолучитьОбласть("ПоСкладу");
Область.Параметры.ИтогСумма =ИтогСумма;
Область.Параметры.ИтогКоличество =ИтогКоличество;
Область.Параметры.ИтогСуммаНДС =ИтогСуммаНДС;
Область.Параметры.ИтогВсегоСНДС =ИтогВсегоСНДС;
Таб.Вывести(Область);
Область=Макет.ПолучитьОбласть("Подвал");
Область.Параметры.ВсегоСумма =ТЗ.Итог("Сумма");
Область.Параметры.ВсегоКоличество = ТЗ.Итог("Количество");
Область.Параметры.ВсегоСуммаНДС =ТЗ.Итог("СуммаНДС");
Область.Параметры.ВсегоВсегоСНДС =ТЗ.Итог("ВсегоСНДС");
Таб.Вывести(Область);
Таб.ТолькоПросмотр = Истина;
Таб.Показать("ВедомостьПоступленияСНДС");
Замечание. Содержимое ТЗ до сортировки :
Содержимое ТЗ после сортировки :
Результат:
:
