Пример объединения запроса в отчете по резервам в системе 1С:Предприятие 8

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

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

Внешний вид отчета по резервам следующий:

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

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

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

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

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

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

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



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


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

0 ответы

Ответить

Want to join the discussion?
Feel free to contribute!

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

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