0
- 13.06.2014 - 12:26
|
Запрос по документам: ... Склад=Документ.ОтчетККМ.Склад; ТекДок=Документ.ОтчетККМ.ТекущийДокумент; Группировка Склад; Группировка ТекДок; ... Работает нормально. А вот при варианте Группировка Склад Все документы не группируются по складам. (По каждому складу идут все документы). Как быть ? Группировка Склад Все нужна для того, чтобы в запросе получить и те склады, по которым не было документов. | |
1
- 13.06.2014 - 13:23
| Что группируешь, приведи запрос целиком | |
2
- 13.06.2014 - 16:33
|
Документы группирую |ПЕРИОД С ДатаНачала По ДатаКонца; |ОбрабатыватьДокументы Все; |Обрабатывать НеПомеченныеНаУдаление; |Склад = Документ.ОтчетККМ.Склад; |ДатаДок = Документ.ОтчетККМ.ДатаДок.ДатаДок; |ТекДок = Документ.ОтчетККМ.ТекущийДокумент; |Условие (Склад В спСкладовМагазинов); |Группировка Склад Все; |Группировка ДатаДок Все; |Группировка ТекДок;"; | |
3
- 13.06.2014 - 16:35
| Мне нужно, чтобы в запрос попали ВСЕ склады и ВСЕ даты, независимо от существуют ли по этим складам и датам документы. | |
4
- 13.06.2014 - 17:12
| соединяй со справочником, если хочешь все склады | |
5
- 13.06.2014 - 18:20
|
4-Управление торговлей 11 > Склад = Справочник.Склады,Документ.ОтчетККМ.Склад,... Так? А с группировкой по дате что делать? Там та же проблема - Группировка ДатаДок Все "цепляет" ВСЕ документы. | |
6
- 13.06.2014 - 18:42
|
А нахрена нужна группировка по дате? А нахрена нужна группировка по документу? "Мне нужно, чтобы в запрос попали ВСЕ склады и ВСЕ даты, независимо от существуют ли по этим складам и датам документы" - А вот индейское жилище... С какой это стати запрос будет формировать строку на какай-нить день, если в этот день не было затребованных движений? Шизофреническое задание... | |
7
- 13.06.2014 - 18:47
|
6-VZ >Мне надо построить таблицу: строки-склады, столбцы-дни (КАЖДЫЙ день из опр.периода), в ячейках - документы. Причем в таблицу должны попадать все склады и все дни, независимо от того, есть ли документы. Вот я и пытаюсь выбрать данные для заполнения таблицы одним запросом. | |
8
- 13.06.2014 - 18:51
| есть КалендарныеГрафики | |
9
- 13.06.2014 - 18:56
|
8-Управление торговлей 11 >Что есть "КалендарныеГрафики" ? Парни, да у меня другая задача. Сеть магазинов, которая свои продажи сбрасывает в центр.базу. Продажи загружаются в виде документов ОтчетККМ. А я хочу сделать отчет по этим загрузкам - есть документ за данный день по данному магазину, нет документа. Без всяких движений. А вы сразу обзываться начинаете - "Шизофреническое задание"... | |
10
- 13.06.2014 - 19:00
|
Проблему-то я решил. Не совсем красиво, но тем не менее. При обходе группировки по документам отсекаю лишние документы проверкой по дате и складу "родительских" группировок. Но хотелось без костылей. | |
11
- 13.06.2014 - 19:08
|
И, похоже, это "семерка"... Что за конфа? | |
12
- 13.06.2014 - 19:09
|
11-VZ Так я и обозначал, что v7. Конфа - допиленная ТиС 9.2. | |
13
- 13.06.2014 - 19:20
|
аааа, 7.7, это я проглядел я бы сделал наверно так - по документам обычный запрос без излишеств, встроенными циклами вывожу табличку магазин/день и методом ПолучитьГруппировку(магазин,день) смотрю наличие документов | |
14
- 13.06.2014 - 19:21
| 13-Управление торговлей 11 >"встроенными" - это "вложенными" :) | |
15
- 13.06.2014 - 19:39
|
14-Управление торговлей 11 >Где это, интересно, в v7 метод ПолучитьГруппировку? Данные для заполнения таблицы Склады-Даты элегантно было бы получить одним запросом. Вопрос только в том, почему так "неочевидно" работает группировка по складам и датам с параметром ВСЕ. "Очевидно" было бы, если бы при отсутствии документов для данной даты или склада группировка по документам давала бы пустой список, а она тащит все документы других складов и дат... | |
16
- 13.06.2014 - 20:00
|
15-Marlboro >ну ошибся, по памяти писал Получить(<?>) Синтаксис: Получить(<ЗначениеГруппировки1>,...,<ЗначениеГрупп ировкиN>) Назначение: Прямое позиционирование на запись в выборке по конкретным значениям группировок. Возвращает: 1 - если запись найдена, 0 - иначе. Параметры: <ЗначениеГруппировкиN> - значение параметра N-ой группировки запроса. Замечание: Опущенные при вызове последние значения группировок должны заменяться запятыми. Если при вызове метода опущены все параметры, то выборка позиционируется на самое начало временного набора данных, на строку итогов. После выполнения метода Получить может осуществляться дальнейший обход выборки вызовами метода Группировка. | |
17
- 13.06.2014 - 20:08
| кстати, есть же стандартная группировка "день" вроде? | |
18
- 13.06.2014 - 23:42
|
16-Управление торговлей 11 >Да это неважно, как я прохожу итоги запроса - вложенными циклами по группировкам или прямым позиционированием на запись, все равно я получаю неправильные значения группировки по документам (если использовался параметр ВСЕ для вышестоящих группировок Склад и Дата). А Группировка День ВСЕ дает тоже самое. | |
19
- 14.06.2014 - 07:27
| Зачастую в семерке выгружают в ТЗ. В ней сортируют и её обрабатывают, считая итоги. | |
20
- 14.06.2014 - 17:51
| я так и не понял, что за группировки, если нет никакой функции - ни остатков, ни прихода, ни расхода | |
21
- 14.06.2014 - 20:13
|
20-USSR > "Группируются" поля. Хоть явно их обозначай, хоть через функцию. Извращение (7) напрямую одним запросом в ТЗ, как мечтает автор, "красиво", не сотворить. | |
22
- 14.06.2014 - 20:54
|
+21 Но можно попробовать нечто вроде: |ПЕРИОД С ДатаНачала По ДатаКонца; |Обрабатывать НеПомеченныеНаУдаление; |Док = Документ.ОтчетККМ.ТекущийДокумент; |Склад = Документ.ОтчетККМ.Склад; |Условие (Склад В спСкладовМагазинов); |Группировка Склад Все; |Группировка День Все;"; | |
23
- 15.06.2014 - 10:25
| Я по такой проблеме никогда бы не стал заморачиваться. Выбрал в ТЗ документы, добавил нужные колонки, в цикле заполнил, затем делай что хочешь. 5 строчек лишнего года, с точки зрения потери скорости полная ерунда, зато полная гибкость. Не надо быть апологетом парадигмы - абсолютно все извлекать из запроса. Будьте проще ... Это не проблема, чтобы всерьез обсуждать | |
24
- 15.06.2014 - 11:25
|
23-USSR > Извлекать данные только и исключительно только - это "восьмеризм" ;) В v8, правило "только запрос", в общем-то, оправдано (в силу самой концепции недоущения клиента к прямому контакту с базой. Но в "семерке" акцент на "только" - это эстетство. А в случае с ДБФ-ной базой - и нерационально: выборка бысрее. | |
25
- 15.06.2014 - 21:44
| Это-то фигня. А вот то, что объектное чтение в режиме автоматического управления блокировками так и норовит установить хотя бы S-блокировки на уровне СУБД - это проблема. Доставляет, когда какой-нить балбес идя на поводу у пользователей делает раскраску списков обращаясь к данным через пару точек (а я даже 4 видел). С ростом числа пользователей такой коллапс приходит - просто пипец. | |
| Интернет-форум Краснодарского края и Краснодара |