Форма отчета 1С8 отчета по резервам

Здравствуйте, уважаемые читатели блога SoftMaker.kz! В статье «Для чего используется объединение результатов запросов в системе 1С:Предприятие 8?» было подробно рассказано об объединении запросов. Здесь приведён реальный пример реализации объединения для типовой конфигурации Управление торговым предприятием для Казахстана, редакция 1.0. Внешний вид отчета по резервам следующий:

Форма отчета 1С8 отчета по резервам

Ниже приведен код запроса для формирования отчета по резервам с помощью объединения:

Текст = "ВЫБРАТЬ
|	Номенклатура,
|	Склад,
|	СУММА(Остаток) КАК Остаток,
|	СУММА(Резерв) КК Резерв
|ИЗ
|	(ВЫБРАТЬ
|		ТоварыНаСкладахОстатки.Склад.Ссылка КАК Склад,
|		ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Номенклатура,
|		ТоварыНаСкладахОстатки.КоличествоКонечныйОстаток КАК Остаток,
|		0 КАК Резерв
|	ИЗ
|	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач,&ДатаКон,,,) 
|	КАК ТоварыНаСкладахОстатки
|	
|	ОБЪЕДИНИТЬ
|	
|	ВЫБРАТЬ
|		ТоварыВРезервеНаСкладахОстатки.Склад.Ссылка,
|		ТоварыВРезервеНаСкладахОстатки.Номенклатура.Ссылка,
|		0 КАК Резерв,
|	ТоварыВРезервеНаСкладахОстатки.КоличествоКонечныйОстаток КАК Остаток
|	ИЗ
|РегистрНакопления.ТоварыВРезервеНаСкладах.ОстаткиИОбороты(&ДатаНач,&ДатаКон,,,) 
|	КАК ТоварыВРезервеНаСкладахОстатки) КАК ВложенныйЗапрос
|ГДЕ
|	((НЕ Номенклатура.ЭтоГруппа)";

Был = 0;
Если Номенклатура.Наименование <> "" Тогда
Текст = Текст + " 
| И	(Номенклатура.Ссылка = &Номенклатура) ";
Был = 1;
КонецЕсли;
Если Склад.Наименование <> "" Тогда
Если Был = 0 Тогда
	Текст = Текст + " И";
Иначе
	Текст = Текст + " ИЛИ";
КонецЕсли;

Текст = Текст + "
|	(Склад.Ссылка = &Склад)) ";
Иначе
        Текст = Текст + ") ";
КонецЕсли;
Текст = Текст + "
|
|СГРУППИРОВАТЬ ПО
|	Номенклатура,
|	Склад";

Построитель.Текст = Текст;
Построитель.ЗаполнитьНастройки();
Построитель.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Интерфейс);
Построитель.ОформитьМакет();
КонецПроцедуры

Как видим, чтобы вывести отчет используется механизм построителя отчета. При нажатии на кнопку «Сформировать» происходит вывод отчета в поле табличного документа.

Процедура КнопкаСформироватьНажатие(Кнопка)
	ЗаполнитьТекстЗапроса();
	Построитель.Параметры.Вставить("ДатаНач", ДатаНач);
	Построитель.Параметры.Вставить("ДатаКон", ДатаКон);
	Если Склад.Наименование <> "" Тогда
		Построитель.Параметры.Вставить("Склад", Склад);
	КонецЕсли;
	Если Номенклатура.Наименование <> "" Тогда
		Построитель.Параметры.Вставить("Номенклатура", Номенклатура);
	КонецЕсли;
	Построитель.Выполнить();
	ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();
	Построитель.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1);
КонецПроцедуры

Вы также можете посмотреть обработку, в которой приводится небольшой пример того, как программно вывести табличное поле в табличный документ, используя построитель отчета.

 


Этот блог читают уже более 3000 человек
- читай и ТЫ!
0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *