|
v7: Группировка День все; | ☑ | ||
---|---|---|---|---|
0
burrya
28.02.13
✎
18:34
|
Запрос
Период с ВыбНачПериода по ВыбКонПериода; |Автор = Документ.ФРВ.Автор; |ДатаДок = Документ.ФРВ.ДатаДок; |ТекущийДокумент = Документ.ФРВ.ТекущийДокумент; |Группировка Автор без групп; |Группировка День все; |Группировка ТекущийДокумент; |Функция Сумма = Сумма(1); в результате не имеет всех дней по группировке День В чем может быть причина |
|||
1
viktor_vv
28.02.13
✎
18:44
|
В том, что не во всех днях были документы ФРВ.
Или, если я че-то не так понял, то еще так. |Группировка День все ВошедшиеВЗапрос; |
|||
2
burrya
28.02.13
✎
18:45
|
Т.е. если документов не будет в какой-то день, то соответственно и дня в группировках не будет
|
|||
3
viktor_vv
28.02.13
✎
18:47
|
И Все - это для справочников, вернее, если применить для группировки по справлчнику, например Автор, то выведутся все элементы справочника.
А вот для День, такое не прокатит. Через все ВошедшиеВЗапрос можно получить только все значения группировки попавшие в запрос, не зависимо от уровня группировки. |
|||
4
viktor_vv
28.02.13
✎
18:48
|
(2) Собственно да.
|
|||
5
burrya
28.02.13
✎
18:48
|
ВошедшиеВЗапрос поставил только дни под каждого автора отличаются, это так и работает?
|
|||
6
burrya
28.02.13
✎
18:50
|
(3) что-то все ВошедшиеВЗапрос тоже ничего не изменило
|
|||
7
FN
28.02.13
✎
18:54
|
Вместо группировки с параметром ВСЕ (это страшный тормоз) лучше при обходе результатов использовать конструкцию
Для х=НачДата по КонДата Цикл Запрос.Получить(груп1,х,груп3...) ввыестисекцию(...) КонецЦикла так же и с другими видами группировок (со справочниками...) |
|||
8
viktor_vv
28.02.13
✎
19:01
|
(6) Ну значит получается, что у всех авторов из запроса было хотя бы по одному документу ФРВ в каждой дате из запроса.
|
|||
9
viktor_vv
28.02.13
✎
19:02
|
Но таки лучше прислушаться к (7), так как помимо тормозов, если нужны все даты из периода, по любому придется так делать.
|
|||
10
Фокусник
28.02.13
✎
19:03
|
(0) А чего хотим от "День все", все дни от Рождества Христова вывести? :)
|
|||
11
burrya
28.02.13
✎
19:40
|
такая конструкция
//Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ФРВ) |Период с ВыбНачПериода по ВыбКонПериода; |Автор = Документ.ФРВ.Автор; |ДатаДок = Документ.ФРВ.ДатаДок; |ТекущийДокумент = Документ.ФРВ.ТекущийДокумент; |Группировка Автор без групп; |Группировка День все ВошедшиеВЗапрос; |Группировка ТекущийДокумент; |Функция Сумма = Сумма(1);" + ?(ПустоеЗначение(выбАвтор) = 1, ""," |Условие(Автор = выбАвтор);") + " |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Состояние("Заполнение выходной таблицы..."); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Автор Таб.ВывестиСекцию("Автор|Лев"); Для День = ВыбНачПериода По ВыбКонПериода Цикл Если Запрос.Получить(Запрос.Автор, День, ) = 1 Тогда Если Запрос.Группировка(3) = 1 Тогда // Заполнение полей ТекущийДокумент ПланНачало = Запрос.ТекущийДокумент.ПланНачало; ПланОкончание = Запрос.ТекущийДокумент.ПланОкончание; ОтклонениеНач = 0; ОтклонениеКон = 0; Таб.ПрисоединитьСекцию("Автор|День"); КонецЕсли; Иначе ПланНачало = ""; ПланОкончание = ""; ОтклонениеНач = ""; ОтклонениеКон = ""; Таб.ПрисоединитьСекцию("Автор|День"); КонецЕсли; КонецЦикла; КонецЦикла; вобще ничего не выводит |
|||
12
burrya
28.02.13
✎
19:41
|
Такая конструкция:
//Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ФРВ) |Период с ВыбНачПериода по ВыбКонПериода; |Автор = Документ.ФРВ.Автор; |ДатаДок = Документ.ФРВ.ДатаДок; |ТекущийДокумент = Документ.ФРВ.ТекущийДокумент; |Группировка Автор без групп; |Группировка День все ВошедшиеВЗапрос; |Группировка ТекущийДокумент; |Функция Сумма = Сумма(1);" + ?(ПустоеЗначение(выбАвтор) = 1, ""," |Условие(Автор = выбАвтор);") + " |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Состояние("Заполнение выходной таблицы..."); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Автор Таб.ВывестиСекцию("Автор|Лев"); Для День = ВыбНачПериода По ВыбКонПериода Цикл Если Запрос.Получить(Запрос.Автор, День, ) = 1 Тогда Если Запрос.Группировка(3) = 1 Тогда // Заполнение полей ТекущийДокумент ПланНачало = Запрос.ТекущийДокумент.ПланНачало; ПланОкончание = Запрос.ТекущийДокумент.ПланОкончание; ОтклонениеНач = 0; ОтклонениеКон = 0; Таб.ПрисоединитьСекцию("Автор|День"); КонецЕсли; Иначе ПланНачало = ""; ПланОкончание = ""; ОтклонениеНач = ""; ОтклонениеКон = ""; Таб.ПрисоединитьСекцию("Автор|День"); КонецЕсли; КонецЦикла; КонецЦикла; вобще ничего не выводит. |
|||
13
КонецЦикла
28.02.13
✎
19:41
|
Перебирай дни + Получить() из результата запроса
Или используй прямой запрос |
|||
14
1Сергей
01.03.13
✎
09:33
|
(12) обход первой группировки сбивается, или проходит?
|
|||
15
Ёпрст
01.03.13
✎
09:36
|
(0) не верю.
И как ты проверяешь, что дни у тебя не все из интервала с ВыбНачПериода по ВыбКонПериода ? |
|||
16
1Сергей
01.03.13
✎
09:39
|
(15) Видимо, 30-ое февраля не попадает :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |