|
остатки по месяцам | ☑ | ||
---|---|---|---|---|
0
емое
26.01.12
✎
14:34
|
Пришла беда откуда не ждали
Нужно получить остатки на конец каждого месяца в указанном периоде, сделал запрос (упрощенный вид): ВЫБРАТЬ ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт, ХозрасчетныйОстаткиИОбороты.Период ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПер, &КонПер, Месяц, , , , ) КАК ХозрасчетныйОстаткиИОбороты ГДЕ ХозрасчетныйОстаткиИОбороты.Счет = &Счет И ХозрасчетныйОстаткиИОбороты.Организация = &Организация Оказалось, что если взять период, например 3 месяца, то по счетам, по которым остатки не менялись, т.е. не было оборотов запрос вернет только остаток на первый и последний месяц :( А нужно на каждый. Пробовал поставить метод дополнения ДвиженияИГраницыПериода, ничего не изменилось. Как победить? Можно взять остатки на конец нескольких месяцев одним запросом? |
|||
1
Alex S D
26.01.12
✎
14:37
|
ищи, тут много тем таких было
|
|||
2
емое
26.01.12
✎
14:41
|
гуглил, искал по форму, нашел только вопросы без ответов.
|
|||
3
Shurjk
26.01.12
✎
14:42
|
В книге знаний была такая статья.
|
|||
4
емое
26.01.12
✎
14:45
|
хотя бы запрос поисковый подскажите
|
|||
5
Ненавижу 1С
гуру
26.01.12
✎
14:48
|
соедини с регламентным производственным календарем например
|
|||
6
Sandy_S
26.01.12
✎
14:54
|
v8: Получение в запросе всех периодов из указанного интервала...
|
|||
7
Sandy_S
26.01.12
✎
14:54
|
||||
8
емое
26.01.12
✎
15:11
|
т.е. надо соединить мой запрос с таблицей периодов, и там где нулл взять данные на прошлый период, еще раз соединив с таблицей остатков...
|
|||
9
емое
26.01.12
✎
16:02
|
сделал, может кому пригодиться:
ВЫБРАТЬ Периоды.текпериод, ХозрасчетныйОстаткиИОбороты.Период, isnull(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт, isnull(ХозрасчетныйОстаткиИОборотыПрошПериод.СуммаКонечныйОстатокКт, 0)), isnull(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт, isnull(ХозрасчетныйОстаткиИОборотыПрошПериод.СуммаКонечныйОстатокДт, 0)) ИЗ ( ВЫБРАТЬ периоды.Период КАК текпериод, МАКСИМУМ(прошлостатки.Период) КАК предыдущийпериод ИЗ (ВЫБРАТЬ НАЧАЛОПЕРИОДА(Хозрасчетный.Период, МЕСЯЦ) КАК Период ИЗ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный ГДЕ Хозрасчетный.Период МЕЖДУ &НачПер И &КонПер СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(Хозрасчетный.Период, МЕСЯЦ)) КАК периоды ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПер, &КонПер, Месяц, , , , ) КАК прошлостатки ПО периоды.Период > прошлостатки.Период И прошлостатки.Счет = &Счет И прошлостатки.Организация = &Организация СГРУППИРОВАТЬ ПО периоды.Период ) периоды левое соединение РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПер, &КонПер, Месяц, , , , ) КАК ХозрасчетныйОстаткиИОбороты по периоды.текпериод = ХозрасчетныйОстаткиИОбороты.Период и ХозрасчетныйОстаткиИОбороты.Счет = &Счет И ХозрасчетныйОстаткиИОбороты.Организация = &Организация левое соединение РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПер, &КонПер, Месяц, , , , ) КАК ХозрасчетныйОстаткиИОборотыПрошПериод по периоды.предыдущийпериод = ХозрасчетныйОстаткиИОборотыПрошПериод.Период и ХозрасчетныйОстаткиИОборотыПрошПериод.Счет = &Счет И ХозрасчетныйОстаткиИОборотыПрошПериод.Организация = &Организация Упорядочить по периоды.текпериод |
|||
10
емое
26.01.12
✎
21:51
|
Если кому надо, запрос для получения остатков по всем счетам в разрезе контрагентов (там где есть)
ВЫБРАТЬ ХозрасчетныйОстаткиИОбороты.Период, ХозрасчетныйОстаткиИОбороты.Счет, ХозрасчетныйОстаткиИОбороты.Организация, ЕСТЬNULL(ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Контрагенты), ЕСТЬNULL(ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Контрагенты), ЕСТЬNULL(ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто3 КАК Справочник.Контрагенты), ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)))) КАК Контрагент, Сумма(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт) КАК СуммаКонечныйОстатокДт, Сумма(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт) КАК СуммаКонечныйОстатокКт Поместить Остатки ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПер, &КонПер, Месяц, , , , ) КАК ХозрасчетныйОстаткиИОбороты Где ХозрасчетныйОстаткиИОбороты.Организация = &Организация ИЛИ &Организация = Значение(Справочник.Организации.ПустаяСсылка) СГРУППИРОВАТЬ По ХозрасчетныйОстаткиИОбороты.Период, ХозрасчетныйОстаткиИОбороты.Счет, ХозрасчетныйОстаткиИОбороты.Организация, ЕСТЬNULL(ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Контрагенты), ЕСТЬNULL(ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Справочник.Контрагенты), ЕСТЬNULL(ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто3 КАК Справочник.Контрагенты), ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)))) ; ВЫБРАТЬ Периоды.текпериод КАК ТекущийПериод, ЕСТЬNULL(ОстаткиТекПериод.Счет, ОстаткиПрошлПериод.Счет) Как Счет, ЕСТЬNULL(ОстаткиТекПериод.Контрагент, ОстаткиПрошлПериод.Контрагент) Как Контрагент, ЕСТЬNULL(ОстаткиТекПериод.Организация, ОстаткиПрошлПериод.Организация) Как Организация, ЕСТЬNULL(ОстаткиТекПериод.СуммаКонечныйОстатокКт, ЕСТЬNULL(ОстаткиПрошлПериод.СуммаКонечныйОстатокКт, 0)) КАК ОстатокКт, ЕСТЬNULL(ОстаткиТекПериод.СуммаКонечныйОстатокДт, ЕСТЬNULL(ОстаткиПрошлПериод.СуммаКонечныйОстатокДт, 0)) КАК ОстатокДт ИЗ ( ВЫБРАТЬ Месяцы.Период КАК ТекПериод, МАКСИМУМ(ПрошлОстатки.Период) КАК ПредыдущийПериод, ПрошлОстатки.Счет, ПрошлОстатки.Контрагент, ПрошлОстатки.Организация ИЗ (ВЫБРАТЬ НАЧАЛОПЕРИОДА(Хозрасчетный.Период, МЕСЯЦ) КАК Период ИЗ РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный ГДЕ Хозрасчетный.Период МЕЖДУ &НачПер И &КонПер СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(Хозрасчетный.Период, МЕСЯЦ)) КАК Месяцы ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК ПрошлОстатки ПО Месяцы.Период > ПрошлОстатки.Период СГРУППИРОВАТЬ ПО ПрошлОстатки.Счет, Месяцы.Период, ПрошлОстатки.Контрагент, ПрошлОстатки.Организация ) КАК Периоды ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК ОстаткиТекПериод ПО Периоды.текпериод = ОстаткиТекПериод.Период И Периоды.Счет = ОстаткиТекПериод.Счет И Периоды.Контрагент = ОстаткиТекПериод.Контрагент И Периоды.Организация = ОстаткиТекПериод.Организация ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК ОстаткиПрошлПериод ПО Периоды.предыдущийпериод = ОстаткиПрошлПериод.Период И Периоды.Счет = ОстаткиПрошлПериод.Счет И Периоды.Контрагент = ОстаткиПрошлПериод.Контрагент И Периоды.Организация = ОстаткиПрошлПериод.Организация УПОРЯДОЧИТЬ ПО 2,1 |
|||
11
емое
26.01.12
✎
23:49
|
приврал малость :) завтра еще проверю...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |