Получение данных из бух. регистра с разбиением по датам

1. Bassgood 1429 08.02.11 23:32 Сейчас в теме
Здравствуйте!
Помогите, пожалуйста, решить следующую задачку. Суть задачи следующая.
Нужно получить данные из бух.регистра по определенному бух.счету за определенный период по выбранным в списке организациям и их банковским счетам. При этом результат должен отображаться с разбиением по дням, входящих в выбранный период. Ниже привожу свой текст запроса, данные получаются верные, но проблема в том, что разбиение по датам происходит не по всем выбранным банковским счетам. Поясню: для счета №1 получается 3 даты (допустим 1,2,3 января) с данными, а для счета №2 только 1 дата (2 января) с данными, а нужно чтобы по счету №2 были отображены также еще данные и на две других даты из счета №1 (на 1 и 3 января, начальный и конечный остатки, т.к. проводок в эти даты не зафиксировано). Поясню текст запроса: вложенным запросом получаю список дат, по которым были зафиксированы проводки по всем выбранным организациям и банковским счетам, далее делаю левое соединение с аналогичным запросом для получения данных по отобранным датам.
Что нужно изменить в запросе для получения правильного результата или как можно реализовать эту задачу по-другому?
ВЫБРАТЬ
	|	ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
	|	ХозрасчетныйОстаткиИОбороты.Субконто1.Ссылка КАК Счет,
	|	СписокДат.Период КАК Период,
	|	ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток, 0) КАК НачОстаток,
	|	ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт, 0) КАК Приход,
	|	ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, 0) КАК Расход,
	|	ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток, 0) КАК КонОстаток
	|ИЗ
	|	(ВЫБРАТЬ
	|		НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, ДЕНЬ) КАК Период
	|	ИЗ
	|		РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
	|				НАЧАЛОПЕРИОДА(&НачПериод, ДЕНЬ),
	|				КОНЕЦПЕРИОДА(&КонПериод, ДЕНЬ),
	|				День,
	|				,
	|				Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета),
	|				,
	|				Организация В (&СписокОрганизаций)
	|					И Субконто1.Ссылка В (&СписокСчетов)) КАК ХозрасчетныйОстаткиИОбороты
	|	ГДЕ
	|		(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт <> 0
	|				ИЛИ ХозрасчетныйОстаткиИОбороты.СуммаОборотКт <> 0)) КАК СписокДат
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
	|				,
	|				,
	|				День,
	|				,
	|				Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетныеСчета),
	|				,
	|				Организация В (&СписокОрганизаций)
	|					И Субконто1.Ссылка В (&СписокСчетов)) КАК ХозрасчетныйОстаткиИОбороты
	|		ПО (СписокДат.Период = НАЧАЛОПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, ДЕНЬ))
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. troglodit 11.12.11 00:56 Сейчас в теме
При выборе запросов с определенной периодичностью он выводит в результат только за те периоды где были движения.

Если этот запрос будет использоваться в отчете тогда самое оптимальное использовать уже заложенный в СКД механизм настройки группировки по периоду. При редактировании группировки указать группировку периодами и указать начало и конец периода.

Для реализациии в запросе есть механизм в итогах -Ключевое слово ПЕРИОДАМИ
3. mie24 2 06.04.12 00:58 Сейчас в теме
Могу предложить еще один вариант: добавить в запрос регистр сведений "Производственный календарь", определив границы периода. В результате получим данные на каждый день, даже если не было движений.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот