|
v7: Что добавить в запрос? | ☑ | ||
---|---|---|---|---|
0
teploset
09.03.21
✎
13:58
|
Есть рабочий вполне запрос, в котором выбираются данные по заданному контрагенту ("ВыбКонтр"). Если же ВыбКонтр это группа, то в результирующей таблице ничего не показывается. Подскажите, пожалуйста, как надо изменить запрос, чтобы выводились в таблицу ВСЕ контрагенты выбранной группы?
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ОбработкаДок) |Период с ВыбНачПериода по ВыбКонПериода; |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |Контр = Документ.РеализацияУслуг.Контрагент, Документ.ПриходныйОрдер.Контрагент; |СуммаРеал = Документ.РеализацияУслуг.Сумма; |СуммаПрихОрд = Документ.ПриходныйОрдер.Сумма; |Функция СуммаРеалСумма = Сумма(СуммаРеал); |Функция СуммаПрихОрдСумма = Сумма(СуммаПрихОрд); |Группировка Контр; |Условие(Контр = ВыбКонтр); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Группировка Контр без групп все ВошедшиеВЗапрос; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("ОбработкаДок"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл Контраг = Запрос.ЗначениеУпорядочивания(1); СальдоКон = СальдоНач + Запрос.СуммаРеалСумма - Запрос.СуммаПрихОрдСумма; // Заполнение полей Контр Таб.ВывестиСекцию("Контр"); КонецЦикла; // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("ОбработкаДок", ""); |
|||
1
Davalebor
09.03.21
✎
14:04
|
Создать список значений, в него поместить ВыбКонтр .
Условие в запросе поменять на |Условие(Контр в СписокКонтрагентов); |
|||
2
Builder
09.03.21
✎
14:04
|
Дожили....
|Условие(Контр В ВыбКонтр); |
|||
3
Builder
09.03.21
✎
14:06
|
(1) Список значений тут не нужен.
|
|||
4
teploset
09.03.21
✎
14:08
|
(2) Дружище, спасибо! Всего один символ заменил (= на В) и все заработало, совсем глаз замылился :)
|
|||
5
Davalebor
09.03.21
✎
14:09
|
(3) А если выбконтр будет все-таки элементом справочника, а не группой?
Я так понял, что выбрать могут или элемент или группу. |
|||
6
vladko
09.03.21
✎
14:10
|
Можно красиво сделать:
//............ |Группировка Контр; |"//}}ЗАПРОС ; Если ВыбКонтр.ЭтоГруппа() = 1 Тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Контр В ВыбКонтр) |" ; Иначе ТекстЗапроса = ТекстЗапроса + " |Условие(Контр = ВыбКонтр) |" ; КонецЕсли; |
|||
7
Builder
09.03.21
✎
14:12
|
(5) (6) Йо, ну откройте СП уже....
Условие В будет работать во всех случаях - группа или элемент. |
|||
8
Злопчинский
09.03.21
✎
17:06
|
а вот если внезапно списокЗначений ВыбКонтр получится пустым - то запрос свернет всех контрагентов. в ряде случаев - это по логике неправильно.
поэтому Если СписокКонтрагентов.РазмерСписка()=0 Тогда Условие(Контр = СписокКонтрагентов); Иначе Условие(Контр в СписокКонтрагентов); КонецЕсли; |
|||
9
Волшебник
09.03.21
✎
18:02
|
на дворе стоял 2021 год...
|
|||
10
Злопчинский
09.03.21
✎
18:48
|
(9) ..а снеговик тормозит по прежнему...
|
|||
11
Ёпрст
09.03.21
✎
19:09
|
(10) у кого как..
|
|||
12
Arbuz
10.03.21
✎
16:26
|
(11) ... пуще прежнего
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |