Группировка День Все #415603


#0 by Suxer
Есть такой кусок:    |Группировка День Все; В результате, в Феврале получается 31 день, если делать за большой период. В чем может быть проблема?
#1 by Rossovich
Полностью код можно?
#2 by AlexYurg
Проблема в ключевом слове "Все"
#3 by Suxer
#4 by Suxer
сорри:
#5 by AlexYurg
А вообще-то проблема в неправильном календаре. Не смогли все месяцы сделать одинаковыми! :)
#6 by Suxer
Понятно, что в слове "Все", но нужно получать всю "простынь" по дням, с промежуточными итогами по месяцам, для того и "Группировка Месяц Все"
#7 by YF
Я вот до сих пор не понимаю как это "все" работает, после него такая хрень обычно получается ...
#8 by Suxer
вместо юлианского и т.д. фирмой 1с, был изобретен новый календарь. ...и втихаря реализован :) анекдот
#9 by Suxer
Чего делать, кто подскажет?
#10 by AlexYurg
Не знаю точно, как движок отрабатывает запрос в случае ВСЕ, т.е. где он берет то, что не вошло в запрос, но мне кажется, что если в твой период попадает, например, январь, в котором 31 день, то похоже во всех месяцах и будет по 31 дню. Так что, придется тебе потом просто "руками" отфильтровать несуществующие дни типа 30 февраля.
#11 by Ахиллес
Кажись глюк платформы. При выводе на печать проверку делай и все.
#12 by Suxer
Ради эксперимента сделал: т.е. без "Группировка Месяц Все", все посчиталось нормально
#13 by Ахиллес
Это за какой период?
#14 by Suxer
с начала года и до 23.06.09
#15 by Cthulhu
Пока Запрос.Группировка("День")=1 Цикл Если ДатаГод(Дата(СокрЛП(Запрос.НачалоПериода)))=0 Тогда Продолжить КонецЕсли;
#16 by Ахиллес
Почитал запросы... прифигел мальца... В товаре виды происхождения, в видах ЯЗЫКИ ЭТИКЕТКИ! В ЭТИКЕТКАХ СЕРИИ!! В сериях месяца... Да тут у кого угодно башню снесет, не только у 1С.
#17 by Rossovich
Запутанно!!
#18 by Suxer
Пасиб, красиво. Я начал уже мудрить. Тока Дата(СокрЛП), не обязательно Запрос.День, уже хранится как дата
#19 by Suxer
Проверил на 27 релизе, (работаю на 25), та же ерунда
#20 by Suxer
Да пипец полный, у товара (косметика) при одном штрих-коде, может быть до 30 артикулов. Собсна этой ерундой артикула и кодируются. Продавцам это конечно не нужно. Нужно логистам.
#21 by Rossovich
А если перебрать группировку по доте, он что показывает на "29.08","30.08","31.08"  нули или там есть чего??
#22 by Suxer
>Да тут у кого угодно башню снесет, не только у 1С. Тут я с вами не согласен. Обычные измерения регистра
#23 by Suxer
Совершенно верно
#24 by Rossovich
Вернее на 29 Февраля 30 Февраля 31 Февраля
#25 by Rossovich
Ща попробую.....
#26 by AlexYurg
Это не ерунда. Это нормальный результат. Все правильно! Ты же просишь все дни во всех месяцах. Вот он и запоминает все дни (не даты, а именно номера дней от 1 до 31), какие только попадаются, и выдает тебе. Чем же ты недоволен?
#27 by Rossovich
Да, максимальное количество дней 31 вот он и работает, ему все равно Сколько дней в месяце!!!
#28 by Suxer
Нормальный, не нормальный спорить бесполезно. Вопрос, как получить желанный результат
#29 by Cthulhu
Кстати никогда не юзал группировку "День" да ещё и "Все". НО. Мнится мне, что не все дни попадают, а только те дни (как числа), в даты которых (за указанный период) по максимально вложенной группировке значения функций были ненулевыми (и существовали объекты данных, используемые в переменных запроса и в группировках  - если они испорльзуются там)... Ну, т.е., если ты выбираешь запросом (с такой группировкой), например, документы с 1 января по 31 марта - то если ни 10 января, ни 10 февраля, ни 10 марта у тебя нет документов - то 10-е число не попадет в результат запроса... Проверишь для коллективного разума?.. )))
#30 by Rossovich
Да нормальный запрос, просто переменные необычные
#31 by Suxer
Результат оказался еще неожиданнее:
#32 by Suxer
и на 025 и на 027 платформе
#33 by AlexYurg
Н-да... Однако, странный результат. Ты ничего не напутал? Как это у тебя январские даты по всем месяцам размножились?
#34 by AlexYurg
Если это правда, то таким результатам вообще никакого доверия. Значит, не стоит делать группировки Месяц и День одновременно. Кстати, а если без "Все", то что получится?
#35 by Cthulhu
ТекстЗапроса = "Период с ВыбНачПериода по ВыбКонПериода;    Пока Запрос.Группировка = 1 Цикл Таб.ВывестиСекцию("День") КонецЦикла; 01.01.09     02.01.09     03.01.09     04.01.09     05.01.09    1 06.01.09     07.01.09     08.01.09     09.01.09     10.01.09     11.01.09     13.01.09    3 ... и далее без пропусков дней!.. 30.01.09    5 31.01.09     01.02.09     02.02.09    1 ... и далее без пропусков дней!.. 27.02.09    5 28.02.09     01.03.09     02.03.09    3 ------- так что все номано отрабатывает, не знаю, чо там у тя наворочено... )))))))
#36 by Suxer
Наворочено группировка по месяцам и дням одновременно
#37 by AlexYurg
Ты не понял главного! Вся фишка в сочетании ДВУХ группировок: Группировка Месяц Все; Группировка День Все;
#38 by AlexYurg
Уже интересно! Сделай все то же самое без ключевых слов "Все"!
#39 by Suxer
без "Все" - все ОК. но структурировать такую таблу не представляется возможным
#40 by Suxer
т.е. у каждого товара разные дни реализации и получается геморр с шапкой
#41 by Cthulhu
: у тебя проблема с твоим "не обязательно Запрос.День, уже хранится как дата" .. попробуй (чисто для прикола хотя бы) заюзать Запрос.НачалоПериода
#42 by AlexYurg
Что значит ОК? Январские даты уже не попадают в другие месяцы?
#43 by AlexYurg
Покажи код, которым ты ПОСЛЕ выполнения запроса перебираешь его результаты!
#44 by Cthulhu
: кстати, да. А пропос. Смотрим внимательно. Ключевое слово "Все". Означает. Что при выборке результатов этой(!) группировки. Будут перебраны. Все значения группировки, попавшие в запрос (чтение по слогам до просветления и понимания того факта, что при выпобке такой группировки - "группировка День все;" - будут выданы ВСЕ ДНИ, КОТОРЫЕ ВООБЩЕ(!!!) БЫЛИ В ЗВАПРОСЕ - причем при этом ДО ЛАМПОЧКИ КАКОЕ ЗНАЧЕНИЕ У ВЫШЕСТОЯЩЕЙ ГРУППИРОВКИ (ну и что что Месяц Январь?.. внутри при проходе по дням получишь именно ВСЕ ДНИ, которые есть В ЗАПРОСЕ)...
#45 by Suxer
Запрос.НачалоПериода: Январь 09   01.01.09   01.01.09 ... Февраль 09   01.02.09 ... Март 09   01.03.09 ... и т.д.
#46 by AlexYurg
Это без "Все" ? И, все-таки, покажи, как ты группировки перебираешь!
#47 by Suxer
тогда в лог (см. это бы все попало, чего не произошло
#48 by Suxer
это с "Все" Запрос: Обход:
#49 by Cthulhu
: === Выдает: Январь 09    56 01.01.09     02.01.09     ... 31.01.09     01.02.09     ... 28.02.09     01.03.09     ... 31.03.09     Февраль 09    80 01.01.09     01.01.09     02.01.09     ... 31.01.09     01.02.09     ... 28.02.09     01.03.09     ... 31.03.09     Март 09    71 01.01.09     02.01.09     ... 31.01.09     01.02.09     ... 28.02.09     01.03.09     ... 31.03.09     --- что соответствует .
#50 by Suxer
База DBF, интересен результат на SQL-е
#51 by Suxer
Нужно     |Группировка Месяц Все; Иначе разнобой по товару идет
#52 by Suxer
в логе как раз в группировке месяца, по дням нет перебора нескольких месяцев: Июнь 09 ... вот и все
#53 by Cthulhu
: ну тогда у тебя по каждому товару будет перебор ВСЕХ МЕСяцев, вошедших в результаты ЗАПРОСа, а во ВЛОЖенной группировке по дням ПО КАЖДОМУ МЕСЯЦУ - перебор ВСЕХ ДНЕЙ, вошедших в результат ЗАПРОСа. Все логично и понятно, глюков не наблюдается.. что попросил - то получил..
#54 by Suxer
>ПО КАЖДОМУ МЕСЯЦУ - перебор ВСЕХ ДНЕЙ, вошедших в результат ЗАПРОСа Вы в логе видели ВСЕ ДНИ в разрезе ОДНОГО МЕСЯЦА???
#55 by AlexYurg
Не совсем так. Внутри группировки "Январь" все даты январские, а внутри, например, "Апреля" - только за январь и за апрель. Ни то, ни се. Видимо, все-таки, глюк платформы.
#56 by Suxer
а какая последняя?
#57 by AlexYurg
Если вернуться к исходной задаче, то я бы посоветовал в твоем случае загнать все результаты в ТаблицуЗначений, а потом уже выводить как тебе надо. Что "последняя"? Дата? Платформа? ...
#58 by Suxer
да, какой последний номер платформы? Я сделал два запроса, один по дням и второй для промежуточных итогов по месяцам. Может и считать немного дольше будет, но не нужно делать из ТаблийЗначений подобие дерева.
#59 by AlexYurg
У меня платформа 25 DBF. А по поводу двух запросов - тоже нормальное решение. Главное, теперь все знают, что "Месяц все" и "День все" дают полную ерунду.
#60 by AlexYurg
Группировка День Все; получилось так: теперь КАЖДЫЙ месяц содержит ВСЕ даты за все месяцы. Сейчас наоборот попробую...
#61 by AlexYurg
Наоборот тоже не лучше. Теперь первый рабочий день января вклинивается во все остальные месяцы. Т.е. опять ерунда.
#62 by Suxer
Я бы сказал, что "Запрос.НачалоПериода" видит в качестве периода старшую группировку "Месяц Все", а вложенную "День Все" - как-будто не замечает
#63 by AlexYurg
Абсолютно точно. Я-то смотрю на Запрос.День.
#64 by Suxer
>А по поводу двух запросов - тоже нормальное решение. Да, только, если нужно еще один разрез (например по покупателям), то уже 4 запроса получается :)
#65 by Suxer
это если итоги нужно вверху подбивать
#66 by Cthulhu
Круто.. Все дни первого месяца входят в группировку по любому месяцу, а после них (если значение группировки не первый месяц запроса) следуют только те дни, в которых есть значение функции... Мораль: авотнехрен юзать "все" с предопределенными группировками. )))))))
#67 by Cthulhu
".. только те дни, в которых есть значение функции... " >> "... только те дни месяца группировки запроса, в которых есть значение функции... "
#68 by AlexYurg
юзать "Все" с предопределенными группировками можно, но только если временнЫх группировок - не более одной!
#69 by Suxer
Где-то баг фиксировать нужно или нет?
#70 by Cthulhu
: в мозгах.. ещё можно тут:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С