|
v7: Правильный Счетчик в Запросе | ☑ | ||
---|---|---|---|---|
0
aleksander1sk
03.09.15
✎
14:45
|
Есть обработка:
//******************************************* // Процедура генерации запроса Сформировать. // Процедура ОбработкаПодбора(Эл, Конт) Если Эл.Вид() = "дТовары" Тогда Если спТовары.Принадлежит(Эл.ТекущийЭлемент()) = 0 Тогда спТовары.ДобавитьЗначение(Эл.ТекущийЭлемент(), ?(Эл.ЭтоГруппа() = 1, ВРег(Эл.Наименование), Эл.Наименование)); КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ДобавитьТовар() Перем Конт; ОткрытьПодбор("Справочник.дТовары", "ФормаСписка", Конт, 1); Конт.ВыборГруппы(1); КонецПроцедуры Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; // сз = СоздатьОбъект("СписокЗначений"); //спр = СоздатьОбъект("Справочник.дТовары"); //спр.НайтиПоКоду("9906"); //сз.ДобавитьЗначение(спр.текущийЭлемент()); сз2 = СоздатьОбъект("СписокЗначений"); спр = СоздатьОбъект("Справочник.дПунктыДоставки"); спр.НайтиПоКоду("0002927-01"); сз2.ДобавитьЗначение(спр.текущийЭлемент()); //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Обрабатывать НеПомеченныеНаУдаление; |Продажи = Регистр.Продажи.Товар; |ТочкаДоставки = Регистр.Продажи.ТекущийДокумент.дкРасходнаяНакладная.рПунктДоставки; |Сумма = Регистр.Продажи.Сумма; |ТП = Регистр.Продажи.ТП; |Товар = Регистр.Продажи.Товар; |дкРасходнаяНакладная = Регистр.Продажи.ТекущийДокумент.дкРасходнаяНакладная.ТекущийДокумент; |Клиент = Регистр.Продажи.ТекущийДокумент.дкРасходнаяНакладная.рКлиент; |Функция СуммаСумма = Сумма(Сумма); |Функция Счётчик = Счётчик(дкРасходнаяНакладная); |Группировка ТП; |Группировка Клиент; |Группировка дкРасходнаяНакладная упорядочить по дкРасходнаяНакладная.рПунктДоставки; // |Группировка Продажи1 по дкРасходнаяНакладная.рПунктДоставки; |Условие(ТП в ВыбТП); |Условие(Товар в спТовары); |Условие(НЕ(ТочкаДоставки в сз2)); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей ТП Таб.ВывестиСекцию("ТП"); Пока Запрос.Группировка(2) = 1 Цикл // Заполнение полей дкРасходнаяНакладная Таб.ВывестиСекцию("дкРасходнаяНакладная"); Пока Запрос.Группировка(3) = 1 Цикл // Заполнение полей дкРасходнаяНакладная Таб.ВывестиСекцию("дкРасходнаяНакладная"); КонецЦикла; КонецЦикла; КонецЦикла; // Заполнение полей "Итого" Таб.ВывестиСекцию("Итого"); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры Мне нужно посчитать, сколько расходных накладных было проведено. Счетчик работает корректно, только тогда, когда выбираю один товар, если группу или несколько, то уже все сбивается. Как можно реализовать подсчет правильно? |
|||
1
zenik
03.09.15
✎
16:49
|
Если значения счетчика выводятся в Итого - то подсчитай количество в переменной:
Пока Запрос.Группировка(3) = 1 Цикл Счетчик = Счетчик + 1; |
|||
2
aleksander1sk
03.09.15
✎
16:57
|
(1) Спасибо за совет, так и сделал сам
|
|||
3
Злопчинский
03.09.15
✎
21:15
|
у вас там что, в регистр.продажи - нет измерения "контрагент"..?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |