|
v7: Результат запроса - вывод нулевых группировок? | ☑ | ||
---|---|---|---|---|
0
Злопчинский
31.01.13
✎
16:00
|
Туплю по страшному..
. Простой запрос . Период с ДатаНачала по ДатаНачала; СвойствоКонтр = Регистр.дВзаиморасчеты.Договор.Владелец.дМенеджер; Контрагент = Регистр.дВзаиморасчеты.Договор.Владелец; Договор = Регистр.дВзаиморасчеты.Договор; КодОперации = Регистр.дВзаиморасчеты.КодОперации; ТипВзаиморасчета = Регистр.дВзаиморасчеты.ТипВзаиморасчета; ДолгПокупателя = Регистр.дВзаиморасчеты.СуммаРуб; Функция ДолгПокупателяКонОст = КонОст(ДолгПокупателя); Условие(ТипВзаиморасчета=1); Группировка Контрагент без групп; Группировка Договор без групп; . Почему в результат запроса попадают группировки с нулевыми значениями функции..? |
|||
1
Ёпрст
31.01.13
✎
16:01
|
не верю
|
|||
2
Ёпрст
31.01.13
✎
16:02
|
на какой группировке смотрешь останки то хоть ?
|
|||
3
PALESIA
31.01.13
✎
16:08
|
(0)Пробуй так:
Период с (ДатаНачала+1); Функция ДолгПокупателяКонОст = НачОст(ДолгПокупателя); |
|||
4
Злопчинский
31.01.13
✎
16:09
|
Ёпрст, ситуация такая:
. по Фирме1 = долг=-100 по Фирме2 = долг= 100 . но в запросе ни группировок, ничего по фирме - нет... ??? . однако если вставить условие Условие(Запрос.ДолгПокупателяКонОст>0); - выводит положительные долги, если меньшенуля - выводит отрицательные... ... по моему разумению вообще такого быть не должно..? |
|||
5
Злопчинский
31.01.13
✎
16:10
|
Тестовый вывод такой:
. ТЗЗапрос = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗЗапрос,0,1); ПечатьТЗ(ТЗЗапрос); Т = СоздатьОбъект("Текст"); Т.ДобавитьСтроку(ТекстЗапроса); Т.Показать("ТекстЗапроса",); Возврат; |
|||
6
Злопчинский
31.01.13
✎
16:11
|
..ниччего не понимаю.. совсем тупой...
|
|||
7
Vladal
31.01.13
✎
16:12
|
Погодь... По разным фирмам разный остаток, а вместе ноль.
Добавь группировку по фирмам. |
|||
8
PALESIA
31.01.13
✎
16:13
|
(6) котик, миленький ... ну сделай как в (3) : нет движухи - нет проблем)
|
|||
9
Злопчинский
31.01.13
✎
16:14
|
(7) ну так мне нужно как раз без группировки по фирмам!
|
|||
10
Злопчинский
31.01.13
✎
16:15
|
(8) неактуально. в результат попадает мертвый клиент, по которому движухи уже несколько месяцев нет, только хвосты висят..?
|
|||
11
Злопчинский
31.01.13
✎
16:16
|
м.б. мешает то, что в качестве измерения регитсра ТипВзаиморасчета - базовый тип число?
|
|||
12
PALESIA
31.01.13
✎
16:18
|
(10) О_О так он и в (0) паподет ... зачистить проблема?
|
|||
13
Злопчинский
31.01.13
✎
16:19
|
(7) с группировкой по фирмам - все получается как положено.. - плюсы на одной, минусы на другой...
|
|||
14
Злопчинский
31.01.13
✎
16:19
|
(12) это почему он в (0) должен попасть..?
|
|||
15
PALESIA
31.01.13
✎
16:21
|
(14) а счего бы нет? НачОст(Дата+1) = КонОст(Дата) ... м-да .. . точно тупишь ..
|
|||
16
miki
31.01.13
✎
16:25
|
имхо, условие всё портит.
|
|||
17
Злопчинский
31.01.13
✎
16:25
|
(3) не получится - период вывалится за ТА
|
|||
18
Злопчинский
31.01.13
✎
16:26
|
(16) пофиг, вообще упростил.
. Период с ДатаНачала по ДатаНачала; Контрагент = Регистр.дВзаиморасчеты.Договор.Владелец; Договор = Регистр.дВзаиморасчеты.Договор; ДолгПокупателя = Регистр.дВзаиморасчеты.СуммаРуб; Функция ДолгПокупателяКонОст = КонОст(ДолгПокупателя); Группировка Контрагент без групп; Группировка Договор без групп; |
|||
19
Злопчинский
31.01.13
✎
16:26
|
результат тот же самый...
|
|||
20
PALESIA
31.01.13
✎
16:28
|
(17) мне бы твои проблемы с ТА ... вообщем как хочешь - мое дело предложить ...
|
|||
21
Злопчинский
31.01.13
✎
16:29
|
(20) ради тебя - попробую
|
|||
22
miki
31.01.13
✎
16:30
|
(19)т.е. вываливаются контрагенты, по которым пустые группировки по договорам? Контрагент есть, а вложенная группировка по договорам пустая?
|
|||
23
Злопчинский
31.01.13
✎
16:30
|
(20) - Невозможно обращение к итогам после ТА
|
|||
24
Злопчинский
31.01.13
✎
16:31
|
(22) да, результат нулевой и на уровне контрагента и на уровне договора (и это правильно) - но вываливаются в итог запроса
|
|||
25
PALESIA
31.01.13
✎
16:32
|
(23) пля .... мать... мать ... да сдвинь ТА на день - норм челы ТА всегда на конец 1-го числа ставят - моло-ли ...
|
|||
26
aka AMIGO
31.01.13
✎
16:32
|
(24) условие поставь при обходе.. отбросишь нули
|
|||
27
Злопчинский
31.01.13
✎
16:32
|
убрать группировку по договору - вываливаются с нулевым итогом по клиенту...
|
|||
28
miki
31.01.13
✎
16:35
|
(27)Это нормально, если перекрывается +/- по договорам, у тебя же измерение не контрагент, а договор.
|
|||
29
Злопчинский
31.01.13
✎
16:36
|
Итого, на данный момент:
. // Период с ДатаНачала по ДатаНачала; Контрагент = Регистр.дВзаиморасчеты.Договор.Владелец; ДолгПокупателя = Регистр.дВзаиморасчеты.СуммаРуб; Функция ДолгПокупателяКонОст = КонОст(ДолгПокупателя); Группировка Контрагент без групп; // // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТЗЗапрос = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗЗапрос,0,1); ПечатьТЗ(ТЗЗапрос); Т = СоздатьОбъект("Текст"); Т.ДобавитьСтроку(ТекстЗапроса); Т.Показать("ТекстЗапроса",); Возврат; // Результат - в итогах по клиентам - записи с нулевым значением... |
|||
30
Злопчинский
31.01.13
✎
16:38
|
(28) почему тогда с группировкой по договорам - та же самая хрень..?
|
|||
31
shadowfiend10
31.01.13
✎
16:38
|
(29) Сгруппируй еще по какомуто измерению регистра, может действительно перекрываются?
|
|||
32
1Сергей
31.01.13
✎
16:39
|
(29) сталкивался с таким на SQL, не победил
|
|||
33
Злопчинский
31.01.13
✎
16:40
|
(25) блин, ТА - стоит на 31.01
дата отчет ради тебя = 30.01 . Период с (ДатаНачала+1) по (ДатаНачала+1); Контрагент = Регистр.дВзаиморасчеты.Договор.Владелец; Договор = Регистр.дВзаиморасчеты.Договор; ДолгПокупателя = Регистр.дВзаиморасчеты.СуммаРуб; Функция ДолгПокупателяКонОст = НачОст(ДолгПокупателя); Группировка Контрагент без групп; Группировка Договор без групп; - резултат тот же самый. |
|||
34
Злопчинский
31.01.13
✎
16:41
|
(32) дбф ная база
|
|||
35
shadowfiend10
31.01.13
✎
16:42
|
(34) сгруппируй по другим измерениям, увидишь +/- если таковые есть
|
|||
36
Злопчинский
31.01.13
✎
16:42
|
как-тоя предполагал, что если на уровне группировки (самом нижнем) = функция возвращает ноль, то в результат запроса это не должно попасть...
. туплю где-то или что-то не так в базе...? |
|||
37
PALESIA
31.01.13
✎
16:44
|
(29) лан, убормотал - не поленись, допиши ремы - и будет тебе счастье:
ТЗЗапрос = СоздатьОбъект("ТаблицаЗначений"); // создание колонок таблицы Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "Период с ДатаНачала по ДатаНачала; |СвойствоКонтр = Регистр.дВзаиморасчеты.Договор.Владелец.дМенеджер; |Контрагент = Регистр.дВзаиморасчеты.Договор.Владелец; |Договор = Регистр.дВзаиморасчеты.Договор; |КодОперации = Регистр.дВзаиморасчеты.КодОперации; |ТипВзаиморасчета = Регистр.дВзаиморасчеты.ТипВзаиморасчета; |ДолгПокупателя = Регистр.дВзаиморасчеты.СуммаРуб; |Функция ДолгПокупателяКонОст = КонОст(ДолгПокупателя); |Условие(ТипВзаиморасчета=1); |Группировка Контрагент без групп; |Группировка Договор без групп; "; Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда Пока Запрос.Группировка(1) = 1 Цикл Пока Запрос.Группировка(2) = 1 Цикл Если Запрос.ДолгПокупателяКонОст <> 0 Тогда ТЗЗапрос.НоваяСтрока(); // заполнение строк таблицы КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; |
|||
38
Злопчинский
31.01.13
✎
16:44
|
(35) да так и есть - см.4 - если сделаю группировку по фирме - то все ок как и положено.
но я то хочу получить итоги в целом по "холдингу", без фирм - итог схлопывается в ноль, в выводе по идее - быть не должно..??? |
|||
39
miki
31.01.13
✎
16:44
|
(30)хз. Сделай с договорами, но без условия.
|
|||
40
Злопчинский
31.01.13
✎
16:45
|
(37) архимед, блин, это яи без тебя могу...
|
|||
41
Злопчинский
31.01.13
✎
16:46
|
(39) см.18 - пофиг
|
|||
42
Злопчинский
31.01.13
✎
16:47
|
срочно убегаю часа на полтора.
вся надежда на доктораДобро и супермозг Епрста, может глянет по тиму... . вернусь - выйду на связь |
|||
43
miki
31.01.13
✎
16:48
|
(38)быть не должно, если на этапе вычисления результат функции = 0, а не после наложения фильтров (если фильтры не по измерениям).
(41)хз. полтергейст... |
|||
44
Ёпрст
31.01.13
✎
16:49
|
(0)
>>>однако если вставить условие >>>Условие(Запрос.ДолгПокупателяКонОст>0); это собственно ответ на твой вопрос |
|||
45
PALESIA
31.01.13
✎
16:52
|
(44) и все уйдет на перса ... хотя на хрена ему скорость)
|
|||
46
Ёпрст
31.01.13
✎
17:34
|
Это пересчитай итоги + смотри, что возвращает ВыгрузитьИтоги()
|
|||
47
Ёпрст
31.01.13
✎
17:35
|
и не пользуйся чорными запросами
:) |
|||
48
Злопчинский
31.01.13
✎
19:08
|
(47) я понимаю, что не прав, но что есть то есть...
|
|||
49
Злопчинский
31.01.13
✎
19:08
|
я почему в сомнениях - штатный Ведомость по контрагентам в этом случае выводит все правильно - свернутый ноль не выводится - сейчас буду смотреть - как это там...
|
|||
50
Злопчинский
31.01.13
✎
19:13
|
ВыгрузитьИтоги на ТА - показывает правильные данные
|
|||
51
Злопчинский
31.01.13
✎
19:31
|
(49) соврал, ведомость по контрагентам - аналогично...
|
|||
52
Злопчинский
31.01.13
✎
19:43
|
Значится получается так в итоге: в чорном запросе свернутые по одному из измерений нулевые итоги отфильтровать возможности нет, функция в запросе применяется не к сгруппированным данным, а записям исходной выборки и только после этого происходит группировка с выдачей результатов...
|
|||
53
uno-group
31.01.13
✎
19:59
|
Контрагент= Регистр.дВзаиморасчеты.Договор.Владелец;
замени на если там есть конечно такой реквизит Контрагент= Регистр.дВзаиморасчеты.Контрагент |
|||
54
uno-group
31.01.13
✎
20:00
|
и что эт у тебя за конфа такая что по разным фирмам 1 договор
|
|||
55
Злопчинский
31.01.13
✎
20:10
|
(53) нет там такого.
|
|||
56
Злопчинский
31.01.13
✎
20:12
|
(54) с точки зрения клиента - он видит одно юрлицо. и расчеты ведет с этим юрлицом. С точки зрения НУ в одном юрлице - есть отдельные субъекты налогообложения, и учет по каждому должен идти отдельно - такое объяснение тебя устроит?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |