Процедура ПечатьПоКатегориям()
Перем Запрос,ТекстЗапроса, Таб;
Времяначало= ТекущееВремя();
СписокТоваров=СоздатьОбъект("СписокЗначений");
СписокКлиентов=СоздатьОбъект("СписокЗначений");
СС=СоздатьОбъект("СписокЗначений");
ФормированиеСписка(СписокТоваров,"Номенклатура","КатегорииТоваров",ВыбТовар,КатТоваров,МФВыбТовары,МФКатТоваров);
ФормированиеСписка(СписокКлиентов,"Контрагенты","КатегорииКонтрагентов",ВыбКлиент,КатКлиентов,МФВыбКлиенты,МФКатКлиентов);
Запрос = СоздатьОбъект("Запрос");
ТекстПеременных =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Фирма = Регистр.ПартииТоваров.Фирма;
|Товар = Регистр.ПартииТоваров.Товар;
|Категория = Регистр.ПартииТоваров.Товар.КатегорияДляГруппировки;
|Вес = Регистр.ПартииТоваров.Товар.Вес;
|Нетто = Регистр.ПартииТоваров.Товар.Нетто;
|ТекДокумент = Регистр.ПартииТоваров.ТекущийДокумент;
//|Контрагент= Регистр.ПартииТоваров.Контрагент;
|Контрагент= Регистр.ПартииТоваров.ТекущийДокумент.РасходнаяНакладная.Контрагент,Регистр.ПартииТоваров.ТекущийДокумент.ПриходнаяНакладная.Контрагент;
|Количество = Регистр.ПартииТоваров.ОстатокТовара;
|Оборот = Регистр.ПартииТоваров.Оборот;
|КодОперации= Регистр.ПартииТоваров.КодОперации;
|";
ТекстГруппировок = "
|Группировка Категория без групп упорядочить по Категория.Наименование;
|Группировка Контрагент без групп упорядочить по Контрагент.Наименование;
|";
ТекстФункций = "
|Функция КолРасход = Расход(Количество);
|Функция Сумма = Сумма(Оборот);
|Функция ВесРасход = Сумма(Запрос.КолРасход * Вес + Количество - Количество);
|Функция НеттоРасход = Сумма(Запрос.КолРасход * Нетто + Количество - Количество);
|Функция КолТТ = Счётчик(Контрагент);
|";
ТекстУсловий = "
|Условие (Фирма = ВыбФирма);
|Условие (ПустоеЗначение(Контрагент)=0);
// |Условие (Оборот<>0);
|Условие (КодОперации В КодыОперацийПродажи);
|Условие (Товар в СписокТоваров);
|Условие (Контрагент в СписокКлиентов);
|"//}}ЗАПРОС
;
ТекстЗапроса = ТекстПеременных+РазделительСтрок+ТекстФункций+РазделительСтрок+ТекстГруппировок+РазделительСтрок+ТекстУсловий;
Если глФильтрПоСправочнику("Номенклатура",0,0,КатТоваров,0,0,СписокТоваров,ТекстЗапроса,0,0,"Товар,,,СписокТоваров,,,,,")=0 Тогда
Возврат;
КонецЕсли;
Если глФильтрПоСправочнику("Контрагенты",0,0,КатКлиентов,0,0,СписокКлиентов,ТекстЗапроса,0,0,"Контрагент,,,СписокКлиентов,,,,,")=0 Тогда
Возврат;
КонецЕсли;
Запрос = СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Запрос.ВНачалоВыборки();
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("КатегорияТовара");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать по категории товара", "");
КонецПроцедуры
На печате Ставлю Запрос.КолТТ
Добрый подскажите пожалуйста как просчитать колвоТТ по выбраной категории товаров и почему Счетчик считает колво документов, если ему указано просчитать Контрагентов?
Во втором коде счетчик считает верно. Что я делаю не так?
ЗапросКлиенты= СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Считалочка)
|Клиент = Справочник.Контрагенты.ТекущийЭлемент;
|Группировка Клиент без групп упорядочить по Клиент.Наименование;
|Условие(Клиент в ВыбКлиент);
|Условие(Клиент в МФВыбКлиенты);
|Функция Колвокл = Счётчик (Клиент);
|"//}}ЗАПРОС
;