Остатки и обороты с регистраторами


Рассмотрим решение проблемы написания отчета, в котором необходимо взять остатки и обороты по регистру бухгалтерии или накопления и при этом вывести разрез по регистраторам(документам). Казалось бы эта проблема решается использованием таблицы ОстаткиИОбороты, которая позволяет нам использовать регистратор в запросе. Но при таком методе написания запроса начальные и конечные остатки не рассчитаются верно. Это произойдет потому что в запросе помимо нужной нам аналитики остатки возьмуться и по регистраторам, а это некорректно. Решается эта задача использованием объединения запросов: в первом запросе берем остатки на начало, во втором обороты с регистраторами, в третьем остатки на конец.

Пример: В запросе взять остатки и обороты по сумме, счет 62, по организации, за период, в разрезе Контрагентов, Договоров и Регистраторов

ВЫБРАТЬ
	ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
	ХозрасчетныйОстатки.Субконто2 КАК Договор,
	СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК НачальныйОстаток,
	NULL КАК Регистратор,
	NULL КАК Приход,
	NULL КАК Расход,
	NULL КАК КонечныйОстаток
ПОМЕСТИТЬ ОстаткиИОбороты
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаНач, Счет В ИЕРАРХИИ (&Счет62), , Организация = &Организация) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
	ХозрасчетныйОстатки.Субконто1,
	ХозрасчетныйОстатки.Субконто2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ХозрасчетныйОбороты.Субконто1,
	ХозрасчетныйОбороты.Субконто2,
	NULL,
	ХозрасчетныйОбороты.Регистратор,
	ХозрасчетныйОбороты.СуммаОборотДт,
	ХозрасчетныйОбороты.СуммаОборотКт,
	NULL
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, Регистратор, Счет В ИЕРАРХИИ (&Счет62), , Организация = &Организация, , ) КАК ХозрасчетныйОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ХозрасчетныйОстатки.Субконто1,
	ХозрасчетныйОстатки.Субконто2,
	NULL,
	NULL,
	NULL,
	NULL,
	СУММА(ХозрасчетныйОстатки.СуммаОстаток)
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Остатки(ДОБАВИТЬКДАТЕ(&ДатаКон, СЕКУНДА, 1), Счет В ИЕРАРХИИ (&Счет62), , Организация = &Организация) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
	ХозрасчетныйОстатки.Субконто1,
	ХозрасчетныйОстатки.Субконто2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ОстаткиИОбороты.Контрагент КАК Контрагент,
	ОстаткиИОбороты.Договор КАК Договор,
	СУММА(ОстаткиИОбороты.НачальныйОстаток) КАК НачальныйОстаток,
	ОстаткиИОбороты.Регистратор КАК Регистратор,
	СУММА(ОстаткиИОбороты.Приход) КАК Приход,
	СУММА(ОстаткиИОбороты.Расход) КАК Расход,
	СУММА(ОстаткиИОбороты.КонечныйОстаток) КАК КонечныйОстаток
ИЗ
	ОстаткиИОбороты КАК ОстаткиИОбороты

СГРУППИРОВАТЬ ПО
	ОстаткиИОбороты.Контрагент,
	ОстаткиИОбороты.Договор,
	ОстаткиИОбороты.Регистратор

УПОРЯДОЧИТЬ ПО
	Контрагент,
	Договор,
	Регистратор

После написания запроса в схеме компоновки данных в ресурсы выкидываем поля: НачальныйОстаток, Приход, Расход и КонечныйОстаток, в группировки выносим поля: Контрагент, Договор и Регистратор. Отчет будет выводить вам верные остатки по контрагентам и договорам, а обороты еще и по регистраторам.


Читайте также:
1. Срез последних на каждую дату в запросе
2. Проверка типа поля в запросе
3. Запрос к таблице значений
4. Проверка на пустую ссылку в запросе 1с 8
5. Сообщество 1С-программистов
6. Обороты за период по регистру бухгалтерии
7. Остатки по регистру бухгалтерии
8. Зачем параметр «Субконто» в виртуальных таблицах регистров бухгалтерии
9. Как передать параметр в запрос?
10. Левое и внутреннее соединения в запросе

Форум по разработке на 1с
1c-code.ru

Остатки и обороты с регистраторами: 4 комментария

  1. Уведомление: Проверка типа поля в запросе | Программирование на 1с 8

  2. Уведомление: Срез последних на каждую дату в запросе | Программирование на 1с 8

  3. Уведомление: Нарастающий итог по группировкам в скд | Программирование на 1с 8

  4. Уведомление: Программное формирование отчета на скд | Программирование на 1с 8

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>