|   |   | 
| 
 | Остатки на каждый месяц - баг или что? | ☑ | ||
|---|---|---|---|---|
| 0
    
        D_Sergeevich 08.05.14✎ 10:37 | 
        Привет.
 Запрос формирует таблицу дат (месяцы) и выводит остатки на начало и конец в разрезе ИсточникаКредитования за каждый месяц в выбранном периоде. Я не могу понять из за чего баг, не показывает остатки именно в мае этого года т.к. в мае еще не было оборотов. Но если выбрать период 15 год где вообще еще не было оборотов, то там все выводит. Может где то недоработка в запросе? ВЫБРАТЬ СУММА(ВЫБОР КОГДА ДенежныеСредстваОстаткиИОбороты.Валюта.Наименование = "RUP" ТОГДА ДенежныеСредстваОстаткиИОбороты.СуммаНачальныйОстаток ИНАЧЕ ДенежныеСредстваОстаткиИОбороты.СуммаВалНачальныйОстаток КОНЕЦ) КАК ОстатокНаНачало, СУММА(ВЫБОР КОГДА ДенежныеСредстваОстаткиИОбороты.Валюта.Наименование = "RUP" ТОГДА ДенежныеСредстваОстаткиИОбороты.СуммаКонечныйОстаток ИНАЧЕ ДенежныеСредстваОстаткиИОбороты.СуммаВалКонечныйОстаток КОНЕЦ) КАК ОстатокНаКонец, ДенежныеСредстваОстаткиИОбороты.Период КАК Период, ДенежныеСредстваОстаткиИОбороты.ИсточникКредитования КАК Группа ПОМЕСТИТЬ ВТ_Остатки ИЗ РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, МЕСЯЦ, , ) КАК ДенежныеСредстваОстаткиИОбороты ГДЕ ДенежныеСредстваОстаткиИОбороты.ИсточникКредитования.ЭтоГруппа = ЛОЖЬ СГРУППИРОВАТЬ ПО ДенежныеСредстваОстаткиИОбороты.Период, ДенежныеСредстваОстаткиИОбороты.ИсточникКредитования ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1) КАК Период ПОМЕСТИТЬ ВТ_Календарь ИЗ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры2 ПО (Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ)) ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры3 ПО (Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ)) ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры4 ПО (Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Дата КАК Период, ВТ_Остатки.ОстатокНаНачало, ВТ_Остатки.ОстатокНаКонец, ВТ_Остатки.Группа ИЗ (ВЫБРАТЬ МИНИМУМ(ВТ_Остатки.Период) КАК ПериодНач, МАКСИМУМ(ВТ_Остатки1.Период) КАК ПериодКон, ВТ_Календарь.Период КАК Дата ИЗ ВТ_Календарь КАК ВТ_Календарь ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВТ_Календарь.Период <= ВТ_Остатки.Период ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки1 ПО ВТ_Календарь.Период >= ВТ_Остатки1.Период СГРУППИРОВАТЬ ПО ВТ_Календарь.Период) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВложенныйЗапрос.ПериодНач = ВТ_Остатки.Период ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки1 ПО ВложенныйЗапрос.ПериодКон = ВТ_Остатки1.Период СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Дата, ВТ_Остатки.ОстатокНаНачало, ВТ_Остатки.ОстатокНаКонец, ВТ_Остатки.Группа УПОРЯДОЧИТЬ ПО Период | |||
| 1
    
        shuhard 08.05.14✎ 10:38 | 
        (0) это фича     | |||
| 2
    
        ptiz 08.05.14✎ 10:40 | 
        Я бы добавил - неприятная фича.     | |||
| 3
    
        D_Sergeevich 08.05.14✎ 10:41 | 
        (1) Ну помогите плиз, увы я не селен в запросах...     | |||
| 4
    
        Segate 08.05.14✎ 10:41 | 
        (0)чумачеччий календарь!     | |||
| 5
    
        Godofsin 08.05.14✎ 10:42 | 
        (4) +1. И чо люди СКД не пользуются? =(     | |||
| 6
    
        D_Sergeevich 08.05.14✎ 10:57 | 
        Что никто в запросах не шарит? правильный он или нет?     | |||
| 7
    
        ptiz 08.05.14✎ 11:05 | 
        В последней выборке, по-моему надо так:
 ВЫБРАТЬ ... ВТ_Остатки1.ОстатокНаКонец, // а не ВТ_Остатки.ОстатокНаКонец | |||
| 8
    
        D_Sergeevich 08.05.14✎ 11:09 | 
        (7) Не помогает     | |||
| 9
    
        GROOVY 08.05.14✎ 11:16 | 
        (0) Извращение какое-то.
 Для вывода записей по пустым периодам нужно либо итоги подвести с периодичностью, либо в СКД дополнение юзать. А вот так извращаться как в (0) не надо. | |||
| 10
    
        ptiz 08.05.14✎ 11:16 | 
        А так?
 ВЫБРАТЬ ВложенныйЗапрос.Дата КАК Период, ВТ_Остатки.ОстатокНаНачало, ВТ_Остатки.ОстатокНаКонец, ВТ_Остатки.Группа ИЗ (ВЫБРАТЬ МАКСИМУМ(ВТ_Остатки.Период) КАК ПериодНач, ВТ_Остатки.Группа, ВТ_Календарь.Период КАК Дата ИЗ ВТ_Календарь КАК ВТ_Календарь ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВТ_Календарь.Период >= ВТ_Остатки.Период СГРУППИРОВАТЬ ПО ВТ_Календарь.Период, ВТ_Остатки.Группа) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВложенныйЗапрос.ПериодНач = ВТ_Остатки.Период ВложенныйЗапрос.Группа = ВТ_Остатки.Группа СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Дата, ВТ_Остатки.ОстатокНаНачало, ВТ_Остатки.ОстатокНаКонец, ВТ_Остатки.Группа УПОРЯДОЧИТЬ ПО Период | |||
| 11
    
        D_Sergeevich 08.05.14✎ 11:29 | 
        (10) во теперь остатки появились, на конец месяца правильные, а вот на начало почему то не правильные     | |||
| 12
    
        D_Sergeevich 08.05.14✎ 11:30 | 
        (11) именно в мае     | |||
| 13
    
        D_Sergeevich 08.05.14✎ 11:33 | 
        (12) хм, оно показывает остаток на начало мая мартовский     | |||
| 14
    
        ptiz 08.05.14✎ 11:51 | 
        (13) Сдается мне, что картину еще портит
 КОГДА ДенежныеСредстваОстаткиИОбороты.Валюта.Наименование = "RUP" Убери поле "Валюта" из запроса вообще - цифры сойдутся? Если да, то добавляй Валюту в группировки аналогично Группе, и сворачивай в самом конце, если нужно. | |||
| 15
    
        D_Sergeevich 08.05.14✎ 12:13 | 
        (14) вот так все пашет! 
 ВЫБРАТЬ ДенежныеСредстваОстаткиИОбороты.Период КАК Период, ДенежныеСредстваОстаткиИОбороты.ИсточникКредитования КАК Группа, ДенежныеСредстваОстаткиИОбороты.СуммаНачальныйОстаток, ДенежныеСредстваОстаткиИОбороты.СуммаКонечныйОстаток, ДенежныеСредстваОстаткиИОбороты.СуммаВалНачальныйОстаток, ДенежныеСредстваОстаткиИОбороты.СуммаВалКонечныйОстаток, ДенежныеСредстваОстаткиИОбороты.Валюта ПОМЕСТИТЬ ВТ_Остатки ИЗ РегистрНакопления.ДенежныеСредства.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, МЕСЯЦ, , ) КАК ДенежныеСредстваОстаткиИОбороты ГДЕ ДенежныеСредстваОстаткиИОбороты.ИсточникКредитования.ЭтоГруппа = ЛОЖЬ СГРУППИРОВАТЬ ПО ДенежныеСредстваОстаткиИОбороты.Период, ДенежныеСредстваОстаткиИОбороты.ИсточникКредитования, ДенежныеСредстваОстаткиИОбороты.СуммаНачальныйОстаток, ДенежныеСредстваОстаткиИОбороты.СуммаКонечныйОстаток, ДенежныеСредстваОстаткиИОбороты.СуммаВалНачальныйОстаток, ДенежныеСредстваОстаткиИОбороты.СуммаВалКонечныйОстаток, ДенежныеСредстваОстаткиИОбороты.Валюта ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1) КАК Период ПОМЕСТИТЬ ВТ_Календарь ИЗ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры2 ПО (Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ)) ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры3 ПО (Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ)) ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК Цифра ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9) КАК Цифры4 ПО (Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВложенныйЗапрос.Дата КАК Период, ВложенныйЗапрос.Группа, ВЫБОР КОГДА ВТ_Остатки.Валюта.Наименование = "RUP" ТОГДА ВТ_Остатки.СуммаНачальныйОстаток ИНАЧЕ ВТ_Остатки.СуммаВалНачальныйОстаток КОНЕЦ КАК ОстатокНаНачало, ВЫБОР КОГДА ВТ_Остатки.Валюта.Наименование = "RUP" ТОГДА ВТ_Остатки.СуммаКонечныйОстаток ИНАЧЕ ВТ_Остатки.СуммаВалКонечныйОстаток КОНЕЦ КАК ОстатокНаКонец, ВложенныйЗапрос.Группа.Родитель КАК ИсточникКредитования ИЗ (ВЫБРАТЬ МИНИМУМ(ВТ_Остатки.Период) КАК ПериодНач, МАКСИМУМ(ВТ_Остатки1.Период) КАК ПериодКон, ВТ_Календарь.Период КАК Дата, ВТ_Остатки.Группа КАК Группа ИЗ ВТ_Календарь КАК ВТ_Календарь ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВТ_Календарь.Период <= ВТ_Остатки.Период ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки1 ПО ВТ_Календарь.Период >= ВТ_Остатки1.Период СГРУППИРОВАТЬ ПО ВТ_Календарь.Период, ВТ_Остатки.Группа) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки ПО ВложенныйЗапрос.ПериодНач = ВТ_Остатки.Период И ВложенныйЗапрос.Группа = ВТ_Остатки.Группа СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Дата, ВложенныйЗапрос.Группа, ВЫБОР КОГДА ВТ_Остатки.Валюта.Наименование = "RUP" ТОГДА ВТ_Остатки.СуммаНачальныйОстаток ИНАЧЕ ВТ_Остатки.СуммаВалНачальныйОстаток КОНЕЦ, ВЫБОР КОГДА ВТ_Остатки.Валюта.Наименование = "RUP" ТОГДА ВТ_Остатки.СуммаКонечныйОстаток ИНАЧЕ ВТ_Остатки.СуммаВалКонечныйОстаток КОНЕЦ УПОРЯДОЧИТЬ ПО Период | |||
| 16
    
        D_Sergeevich 08.05.14✎ 12:14 | 
        (14) Походу действительно в валютах дело было     | |||
| 17
    
        D_Sergeevich 08.05.14✎ 12:15 | 
        (14) Благодарю за помощь!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |