В УТП обработка - и там для заполнения макета необходимо выбрать информацию из регистра себестоимости + штрихкод на номенклатуру. В УТП это реализовано так:
Код |
---|
//Запрос выбирает инфу из регистра себестоимости+штрихкод на номенклатуру. Запрос = Новый Запрос; Запрос.УстановитьПараметр("Контрагент",ЭтотОбъект.Поставщик); Запрос.УстановитьПараметр("ДатаНач",ЭтотОбъект.ДатаНачала); Запрос.УстановитьПараметр("ДатаКон",КонецДня(ЭтотОбъект.ДатаКонец)); Запрос.УстановитьПараметр("ДоговорКонтрагента",ЭтотОбъект.Договор); Запрос.Текст = "ВЫБРАТЬ | ПродажиСебестоимость.Подразделение.ЦПС КАК ПодразделениеЦПС, | Штрихкоды.Штрихкод, | ПродажиСебестоимость.Номенклатура КАК Номенклатура, | ПродажиСебестоимость.ХарактеристикаНоменклатуры, | СУММА(ПродажиСебестоимость.Количество) КАК Количество, | СУММА(ПродажиСебестоимость.Стоимость) КАК Стоимость |ИЗ | РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды | ПО ПродажиСебестоимость.Номенклатура = Штрихкоды.Владелец | И ПродажиСебестоимость.ХарактеристикаНоменклатуры = Штрихкоды.ХарактеристикаНоменклатуры |ГДЕ | ПродажиСебестоимость.ДокументОприходования.Контрагент = &Контрагент | И ПродажиСебестоимость.ДокументОприходования.ДоговорКонтрагента = &ДоговорКонтрагента | И ПродажиСебестоимость.Период МЕЖДУ &ДатаНач И &ДатаКон | |СГРУППИРОВАТЬ ПО | ПродажиСебестоимость.Номенклатура, | ПродажиСебестоимость.ХарактеристикаНоменклатуры, | Штрихкоды.Штрихкод, | ПродажиСебестоимость.Подразделение.ЦПС | |УПОРЯДОЧИТЬ ПО | ПодразделениеЦПС, | ПродажиСебестоимость.Номенклатура.Наименование |ИТОГИ | СУММА(Количество), | СУММА(Стоимость) |ПО | ПодразделениеЦПС"; Результат = Запрос.Выполнить(); ВыборкаЦПС = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ПодразделениеЦПС"); ИтогСумма = 0; ИтогКоличество = 0; НомерСтроки = 0; Пока ВыборкаЦПС.Следующий() Цикл ЦПС.Параметры.ЦПС = ВыборкаЦПС.ПодразделениеЦПС; ИтогСумма = ИтогСумма + ВыборкаЦПС.Стоимость; ИтогКоличество = ИтогКоличество + ВыборкаЦПС.Количество; ЦПС.Параметры.Количество = ВыборкаЦПС.Количество; ЦПС.Параметры.Сумма = ВыборкаЦПС.Стоимость; ТабДок.Вывести(ЦПС); ВыборкаНоменклатура = ВыборкаЦПС.Выбрать(); ТабДок.НачатьГруппуСтрок(); Пока ВыборкаНоменклатура.Следующий() Цикл НомерСтроки = НомерСтроки +1; Таблица.Параметры.НомерСтроки = НомерСтроки; Таблица.Параметры.Штрихкод = ВыборкаНоменклатура.Штрихкод; Таблица.Параметры.Номенклатура = ВыборкаНоменклатура.Номенклатура; Таблица.Параметры.Характеристика = ВыборкаНоменклатура.ХарактеристикаНоменклатуры; Таблица.Параметры.Количество = ВыборкаНоменклатура.Количество; Таблица.Параметры.Сумма = ВыборкаНоменклатура.Стоимость; ТабДок.Вывести(Таблица); КонецЦикла; ТабДок.ЗакончитьГруппуСтрок(); КонецЦикла; Итог.Параметры.ИтогКоличество = ИтогКоличество; Итог.Параметры.ИтогСумма = ИтогСумма; ТабДок.Вывести(Итог); Подвал.Параметры.ИтогСумма = ИтогСумма; Если Выборка.Количество()> 0 Тогда Подвал.Параметры.Менеджер = Выборка[Выборка.Количество()-1].Наименование; Подвал.Параметры.Должность = Трег(Выборка[Выборка.Количество()-1].Должность); Иначе Подвал.Параметры.Менеджер = ""; Подвал.Параметры.Должность = ""; КонецЕсли; ТабДок.Вывести(Подвал); |