Имя: Пароль:
1C
1C 7.7
v7: Фильтр по сумме в запросе 7.7
0 zarik
 
19.09.11
07:49
Подскажите, можно ли в запросе поставить условие на сумму? Выбирается регистр продаж, конфигурация торговля+склад
есть функция в запросе типа
Функция СуммаСумма = Сумма(Сум)
а а дальше надо поставить условия чтобы результат функции не превышал допустим 1000
такое возможно? или надо только при переборе запроса отфильтровывать?
1 1Сергей
 
19.09.11
08:04
(0) >> чтобы результат функции не превышал допустим 1000

фигня какая-то... тут надо не над запросом думать, а над задачей
2 VladZ
 
19.09.11
08:07
(0) Фильтруй после получения данных.
3 nicxxx
 
19.09.11
08:08
(1) почему фигня?  ты же пишешь в SQL запросе: HAVING SUM(aaa) > 1000
4 Песец
 
19.09.11
08:16
(0) Запусти визард запроса...
|Условие(СуммаСумма > 30000);
5 Темный Эльф
 
19.09.11
08:19
(4)для функции условие будет
|Условие(Запр.СуммаСумма > 30000);
или какое там имя у переменной запроса...
6 andrewks
 
19.09.11
08:22
(5) а теперь самое время упомянуть про скуль
7 Песец
 
19.09.11
08:24
(5) Если я правильно понял ТС, нужно условие не по вхождению, а по результату групповой операции.
8 poligraf
 
19.09.11
08:25
(5) в 7-ке развер может функция в условии участвовать?
9 andrewks
 
19.09.11
08:26
(8) может
10 Песец
 
19.09.11
08:27
(7)+ Можно результат запроса выгрузить в тз, отсортировав по убыванию СуммаСумма, потом обрубить хвост где СуммаСумма меньше нужной величины.
11 Темный Эльф
 
19.09.11
08:28
(8)Может. Но этого нет в документации :)
(6)Пусть пишет на прямых запросах, кто ему мешает.
(7)Ну вот условие и есть на функцию, на результат. А по твоему условию запрос даже не выполнится, так как среди переменных запроса СуммаСумма нет.
12 Песец
 
19.09.11
08:32
(11) Вот что построил визард:
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Сумма = Документ.АвансовыйОтчет.Сумма;
   |Функция СуммаСумма = Сумма(Сумма);
   |Условие(Сумма > 30000);
   |"//}}ЗАПРОС
   ;
13 andrewks
 
19.09.11
08:33
хорош спорить, горячие финские парни.
пока автор не озвучил задачу, спорить бесполезно, прав может быть любой
14 Песец
 
19.09.11
08:36
(12)+ Тху, да, надо через Запрос.СуммаСумма
15 Песец
 
19.09.11
08:37
Вот так:

   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Сумма = Документ.АвансовыйОтчет.Сумма;
   |Функция СуммаСумма = Сумма(Сумма);
   |Условие(Запрос.СуммаСумма>1000);
   |"//}}ЗАПРОС
   ;
16 Песец
 
19.09.11
08:38
(15+) ...и визардом так не строится, да, и в документации не сказано.
17 zarik
 
19.09.11
08:44
Текст = "Период с Дата1 по Дата2;
|Фирма = Регистр.Продажи.Фирма;
|Автор = Регистр.Продажи.ТекущийДокумент.Автор;
|Покупатель = Регистр.Продажи.Покупатель;
|Док = Регистр.Продажи.ТекущийДокумент;
|Номенклатура = Регистр.Продажи.Номенклатура;
|Сум = Регистр.Продажи.ПродСтоимость;
|Себ = Регистр.Продажи.Себестоимость;
|Кол = Регистр.Продажи.Количество;
|Функция Сумма = Сумма(Сум);";  


а теперь мне надо выбрать продажи сумма которых не превышает 5000 руб.
я думаю так понятнее будет
18 andrewks
 
19.09.11
08:45
нет. не понятней.
"продажи сумма которых не превышает 5000 руб" по группировке, или по движению?
19 zarik
 
19.09.11
08:46
по группировке допустим за месяц
20 Темный Эльф
 
19.09.11
08:47
(17)А группировки тебе совсем не нужны?
21 Темный Эльф
 
19.09.11
08:50
(19)Тебе цифры нужны в целом за месяц? Или по номенклатуре? Или по клиенту? Или по автору? Или по каждому документу?
22 zarik
 
19.09.11
08:56
Группировка идет по покупателю без групп,потом за период (месяц)

|Группировка Покупатель без групп;
|Группировка Месяц;
23 Ёпрст
 
19.09.11
09:02
(0) фильтруй при выводе группировки отчета.
24 ЧеловекДуши
 
19.09.11
09:12
Отфильтруй лучше на выходе, т.е. в цикле.
А в запросе лучше не усложняться.
А то эти запросы от 1С так тупо написаны, что порой даже и не знаешь, какой выпадет результат ;)
25 ЧеловекДуши
 
19.09.11
09:13
+(24)>>> запросы от 1С так тупо написаны
Вернее сказать не тупо, а просто у них ограничен функционал.
26 OFF
 
19.09.11
09:29
27 Ёпрст
 
19.09.11
09:37
(26) не поможет, да и статья там не верная.
28 Ёпрст
 
19.09.11
09:39
+27 в чОрном запросе нет having, только фильтр на каждую строку выборки при расчете функций.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.