Отчет должен иметь промежуточные подсуммировки по поставщикам




Отчет основывается на проводках

Дебет Кредит Сумма
Счет   Субконто (Материал) Количество Счет Субконто (Поставщик)  
    и т.д.   Вилка   ложка     Искра   Комета    

Каждая проводка по поступлению ТМЦ за период войдет в отчет отдельной строкой. Кроме того, в отчете участвуют субконто проводок (Товар, поставщик). Следовательно, для формирования запроса обращаемся к таблице регистра бухгалтерии, ведущей детальные записи по проводкам с учетом субконто. Это таблица:

Движения с субконто. Доступ к записям регистра бухгалтерии с учетом субконто

Поля таблицы:

    • <Измерения>
    • <Измерения>Дт
    • <Измерения>Кт
    • <Реквизиты>
    • <Ресурсы>
    • <Ресурсы>Дт
    • <Ресурсы>Кт
    • Активность
    • ВидСубконтоДт<Номер субконто>
    • ВидСубконтоКт<Номер субконто>
    • МоментВремени
    • НомерСтроки
    • Период
    • Регистратор
    • СубконтоДт<Номер субконто>
    • СубконтоДт<Номер субконто>
    • СчетДт
    • СчетКт

Кроме того, таблица содержит параметры:

 

Начало периода   Тип параметра: Дата, МоментВремени, Граница. Начало периода, за который будут выбираться проводки. Значение по умолчанию: Неопределено
Конец периода   Тип параметра: Дата, МоментВремени, Граница. Конец периода, за который будут выбираться проводки. Значение по умолчанию: Неопределено
Условие Конструкция языка запросов. Условие выбора проводок. В условии могут использоваться все поля таблицы

 

А) Сначала формируем новый отчет с формой диалога

 

 

ПолеТабличногоДокумента для вывода отчета     ТабличноеПоле для вывода результатов запроса (временное)    

 

Б) Затем для него формируем макет

 

в) Формируем запрос:

// данный счет введен в план счетов как предопределенный

Счет41=Планысчетов.Хозрасчетный.Товары;

Запрос = Новый Запрос;

 

Запрос.Текст =

"ВЫБРАТЬ

| ЖурналОперацийДвиженияССубконто.Регистратор как документ,

| ЖурналОперацийДвиженияССубконто.СубконтоДт1 как ТОвар,

| ЖурналОперацийДвиженияССубконто.СубконтоКт1 как Поставщик,

| ЖурналОперацийДвиженияССубконто.Количество Дт как количество,

| ЖурналОперацийДвиженияССубконто.Сумма как сумма

|ИЗ

| РегистрБухгалтерии.ЖурналОпераций.ДвиженияССубконто(&Нач,&Кон) КАК ЖурналОперацийДвиженияССубконто

| Где ЖурналОперацийДвиженияССубконто.СчетДТ=&Счет41

| Итоги Сумма(КоличествоДт), Сумма(Сумма) по Поставщик, ОБЩИЕ";

 

Запрос.УстановитьПараметр("Нач", НачалоДня(НачПериода));

Запрос.УстановитьПараметр("Кон", КонецДня(КонПериода));

Запрос.УстановитьПараметр("Счет41", Счет41);

 

Результат = Запрос.Выполнить();

ТабличноеПоле1 = Результат.Выгрузить();

 

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

Возврат;

После вывода результата запроса в ТабличноеПоле получим

 

После того, как убеждаемся, что в таблице результатов запроса есть и группировочные, и детализированные строчки, продолжаем текст модуля формирования отчета:

 

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

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

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

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

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

 

ффф=0;

ВыбРег = Результат.Выбрать();

ВсегоСумма=0;

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

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

Если ВыбРег.ТипЗаписи()=ТипЗаписиЗапроса.ИтогПоГруппировке Тогда

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

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

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

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

ИначеЕсли ВыбРег.ТипЗаписи()=ТипЗаписиЗапроса.ОбщийИтог Тогда

Продолжить;

Иначе

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

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

Область.Параметры.Товар =ВыбРег.товар;

Область.Параметры.ТоварРасшифровка=ВыбРег.товар;

 

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

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

Область.Параметры.Поставщик =ВыбРег.Поставщик;

Область.Параметры.ПоставщикРасшифровка=ВыбРег.Поставщик;

Область.Параметры.Документ=ВыбРег.Документ;

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

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

ффф=ффф+1;

ВсегоСумма=ВсегоСумма+ВыбРег.Сумма;

ВсегоКоличество=ВсегоКоличество+ВыбРег.Количество;

КонецЕсли;

 

КонецЦикла;

 

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

Тз=Результат.Выгрузить();

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

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

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

 

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

 

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

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

КонецПроцедуры

 

Получим результат:

 

 

В отчете работают расшифровки:

· по поставщику:

 

· по товару:

 

· по документу:

 

 

 

Второе задание.

Сформировать Отчет: « Ведомость поступления товаров от поставщиков за ___ месяц ___ года»

Поставщик Товар Количество Сумма

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

 

Решение второго задания

Отчет требует вывода сводных итогов по товарам и поставщикам: в отчете должно быть столько строк, сколько различных поставщиков за период поставляли различные товары.

Источником для отчета может служить виртуальная таблица «Обороты»

· Обороты. Получение оборотов по счетам и между счетами, а также по измерениям и субконто.

Поля таблицы:

o <Имя измерения>

o <ИмяРесурса>Оборот

o <ИмяРесурса>ОборотДт

o <ИмяРесурса>ОборотКт

o КорСубконто<Номер субконто>

o КорСчет

o НомерСтроки

o Период

o Регистратор

o Субконто<НомерСубконто>

o Счет

Параметры:

 

Начало периода   Тип параметра: Дата, МоментВремени, Граница. Начало периода, за который будут выбираться проводки. Значение по умолчанию: Неопределено
Конец периода   Тип параметра: Дата, МоментВремени, Граница. Конец периода, за который будут выбираться проводки. Значение по умолчанию: Неопределено
Периодичность Конструкция языка запросов. Задает периодичность, с которой надо сгруппировать данные. Допустимые значения: Период, Год, Полугодие, Квартал, Месяц, Декада, Неделя, День, Регистратор, Запись. Значение по умолчанию: Период
Условие по счету Конструкция языка запросов. Условие, по каким счетам получать данные. В условие можно использовать только поле <Счет>. Значение по умолчанию: Неопределено
Субконто   Тип параметра: ПланВидовХарактеристикСсылка, массив значений ПланВидовХарактеристикСсылка. Задает набор и порядок субконто, которыми можно оперировать в запросе. Накладывает фильтр на записи по видам субконто (если массив, то по И). Если параметр <Субконто> не задан, то субконто определяются позиционно. То есть берется вид субконто соответствующего счета из соответствующей позиции. Так, если <Субконто> не определен, и делается запрос по счету, у которого определены виды субконто первое "Материалы", второе "Склад", то поле "Субконто1" будет содержать материалы, а поле "Субконто2" - склады. Если делается запрос по двум счетам, при этом у первого настройка субконто "Материалы, Склад", а у второго "Склад, Материал" и не задан параметр <Субконто>, то поле "Субконто1" будет содержать и материалы для первого счета и склады для второго счета. Поле "Субконто2" будет содержать склады для первого счета и материалы для второго. Если параметр <Субконто> задан, то выбираются данные только по тем счетам, у которых определены все указанные виды субконто. При этом поля "Субконто<N>", будут содержать значения, соответствующие переданным видам субконто. Например, если один счет имеет настройку субконто "Материалы, Склад", а второй "Склад, Материалы", и параметр виды субконто задан как массив "Материалы, Склад", то поле "Субконто1" будет содержать материалы, а поле "Субконто2" - склады, не зависимо от счета. Значение по умолчанию: Неопределено
Условие Конструкция языка запросов. Условие, по которому отбираются данные. Можно использовать поля <Субконто<Номер субконто>>, <Имя измерения>. Значение по умолчанию: Неопределено
Условие по кор. счету Конструкция языка запросов. Условие, по каким счетам получать данные. В условие можно использовать только поле <Счет>. Значение по умолчанию: Неопределено
КорСубконто Тип параметра: ПланВидовХарактеристикСсылка, массив значений ПланВидовХарактеристикСсылка. Задает набор и порядок кор. субконто, которыми можно оперировать в запросе. Накладывает фильтр на записи по видам кор. субконто (если массив то по И). Значение по умолчанию: Неопределено

 

Формируем новый отчет, его форму диалога, макет.

Запрос в модуле расчета будет иметь вид:

Счет41=Планысчетов.Хозрасчетный.Товары;

Запрос = Новый Запрос;

 

Запрос.Текст =

"ВЫБРАТЬ

| ЖурналОперацийОбороты.Субконто1 как ТОвар,

| ЖурналОперацийОбороты.КорСубконто1 как Поставщик,

| ЖурналОперацийОбороты.КоличествоОборотДт как количество,

| ЖурналОперацийОбороты.СуммаОборот как сумма

|ИЗ

| РегистрБухгалтерии.ЖурналОпераций.Обороты(&Нач,&Кон) КАК

| ЖурналОперацийОбороты

| Где ЖурналОперацийОбороты.Счет=&Счет41

| Итоги Сумма(КоличествоОборотДт), Сумма(СуммаОборот) по Поставщик";

 

Запрос.УстановитьПараметр("Нач", НачалоДня(НачПериода));

Запрос.УстановитьПараметр("Кон", КонецДня(КонПериода));

Запрос.УстановитьПараметр("Счет41", Счет41);

 

Результат = Запрос.Выполнить();

ТабличноеПоле1 = Результат.Выгрузить();

 

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

Возврат;

 

Результат формирования запроса:

 

 

После того, как убеждаемся, что в таблице результатов запроса есть и группировочные, и детализированные строчки, продолжаем текст модуля формирования отчета:

 

 

Результат:

 

Третье задание.

Сформировать Отчет: «Ведомость безвозмездного поступления ТМЦ от организаций за период с___ по ___ »

 

Организация   Поступило материалов на сумму   Поступило ОС на сумму     Поступило денег на сумму     Всего поступило от организации    

Итого: _________ _________ ____________ ______________

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: