Имя: Пароль:
1C
1С v8
Получение в запросе всех периодов из указанного интервала...
0 serg_k
 
16.12.11
11:44
Помогите пожалуйста решить следующую задачу. В Запросе указан некий период, мне нужно за этот период с детализацией по месяцам получить определенные циферки, и потом выгрузить все это в Таблицу значений. НО запрос выбирает только данные из периодов где были обороты, а мне нужно еще получить и периоды в которых не было оборотов. Можно ли это сделать исключительно запросом, не прибегая к использованию коллекций? Запрос к примеру такого вида:


ВЫБРАТЬ
   БюджетированиеОборотыДтКт.Период КАК Период,
   БюджетированиеОборотыДтКт.КоличествоОборотДт
ИЗ
   РегистрБухгалтерии.Бюджетирование.ОборотыДтКт(&Дата1, &Дата2, Месяц, СчетДт = &СчетДт, , , , ) КАК БюджетированиеОборотыДтКт

УПОРЯДОЧИТЬ ПО
   Период
1 Sandy_S
 
16.12.11
11:58
Вот например как можно выбрать все дни в месяце
ВЫБРАТЬ
   Календарь.Период КАК Период
ИЗ
   (ВЫБРАТЬ
       ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВложенныйЗапрос.Поле1 * 8 + ВложенныйЗапрос1.Поле1 - 1) КАК Период
   {ВЫБРАТЬ
       Период}
   ИЗ
       (ВЫБРАТЬ
           1 КАК Поле1
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           2
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           3
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           0) КАК ВложенныйЗапрос
           ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
               1 КАК Поле1
           
           ОБЪЕДИНИТЬ ВСЕ
           
           ВЫБРАТЬ
               2
           
           ОБЪЕДИНИТЬ ВСЕ
           
           ВЫБРАТЬ
               3
           
           ОБЪЕДИНИТЬ ВСЕ
           
           ВЫБРАТЬ
               4
           
           ОБЪЕДИНИТЬ ВСЕ
           
           ВЫБРАТЬ
               5
           
           ОБЪЕДИНИТЬ ВСЕ
           
           ВЫБРАТЬ
               6
           
           ОБЪЕДИНИТЬ ВСЕ
           
           ВЫБРАТЬ
               7
           
           ОБЪЕДИНИТЬ ВСЕ
           
           ВЫБРАТЬ
               8) КАК ВложенныйЗапрос1
           ПО (ИСТИНА)
   ГДЕ
       МЕСЯЦ(ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, ВложенныйЗапрос.Поле1 * 8 + ВложенныйЗапрос1.Поле1 - 1)) = МЕСЯЦ(&НачалоПериода)) КАК Календарь

УПОРЯДОЧИТЬ ПО
   Период

Запрос.УстановитьПараметр("НачалоПериода",НачалоМесяца(Дата));

Далее помещаешь календарь в менеджер и пользуешь в основном запросе
2 serg_k
 
16.12.11
11:58
вроде сделал:

ВЫБРАТЬ РАЗЛИЧНЫЕ
   БюджетированиеОборотыДтКт1.Период КАК Период,
   БюджетированиеОборотыДтКт.КоличествоОборотДт
ИЗ
   РегистрБухгалтерии.Бюджетирование.ОборотыДтКт(&Дата1, &Дата2, Месяц, , , , , ) КАК БюджетированиеОборотыДтКт1
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Бюджетирование.ОборотыДтКт(&Дата1, &Дата2, Авто, СчетДт = &СчетДт, , , , ) КАК БюджетированиеОборотыДтКт
       ПО БюджетированиеОборотыДтКт1.Период = БюджетированиеОборотыДтКт.ПериодМесяц

УПОРЯДОЧИТЬ ПО
   БюджетированиеОборотыДтКт1.Период



но все таки интеоресно другое: допустим я работаю не с регистрами накопления/бухгалтерии/расчета - как мне тогда можно получать список всех периодов из диапазона????
3 zbv
 
16.12.11
12:00
(2) поиск по форуму поюзай.
4 Maxus43
 
16.12.11
12:01
в СКД это мышкой делается в настройках... если надо отчет конечно
5 serg_k
 
16.12.11
12:04
(1) красиво! а если мне по месяцам нужно???
6 serg_k
 
16.12.11
12:04
(3) юзал, что то не нашел....
7 serg_k
 
16.12.11
12:05
(4) да в том то и дело что не отчет.....
8 Alex S D
 
16.12.11
12:08
9 Sandy_S
 
16.12.11
12:21
(5) тоже самое только матрица 3х4 добавляй к дате не день, а месяц и бери начало года.
10 Sandy_S
 
16.12.11
12:25
У меня хуже проблема как в запросе выбрать остатки на начало и конец дня с условием, что день начинается допустим в 8 утра, а заканчивается в 8 утра след. дня.
11 Mort
 
16.12.11
12:27
Итог по периоду с дополнением + выборка с указанием "ВСЕ". Единственный минус - нужно "вручную" обходить результат.  И никаких  танцев с бубном.
12 serg_k
 
16.12.11
12:52
ВСЕМ огромное спасибо!!!! Задачу свою решил


ВЫБРАТЬ
   ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, ИтогЗапроса.Поле1) КАК Поле2
ИЗ
   (ВЫБРАТЬ
       Календарь.Поле1 КАК Поле1
   ИЗ
       (ВЫБРАТЬ
           0 КАК Поле1
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           1
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           2
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           3
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           4
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           5
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           6
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           7
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           8
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           9
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           10
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           11
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           12) КАК Календарь) КАК ИтогЗапроса
13 МишельЛагранж
 
16.12.11
12:58
а ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Массив) не работает?