Имя: Пароль:
1C
1C 7.7
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-ое февраля не попадает :)
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.