Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
V8_11_ЗапросыКРегистрамБухгалтерии.doc
Скачиваний:
14
Добавлен:
18.11.2018
Размер:
227.84 Кб
Скачать

11.2. Примеры запросов к регистрам бухгалтерии

Разберем на примерах, как извлекать из регистра бухгалтерии требуемую информацию. Реализуем некоторые стандартные бух­галтерские отчеты с помощью запросов.

Структура регистра бухгалтерии

Ниже в примерах будет использован регистр бухгалтерии Основной, поддерживающий корреспонденцию и имеющий сле­дующую структуру:

Измерения

Организация

балансовый

Тип: СправочникСсылка. Организации

Валюта

Небалансовый

Тип: СправочникСсылка.Валюты. Только для при­знака учета Валютный

Ресурсы

Сумма

балансовый

Тип: Число.

Количество

Небалансовый

Тип: Число. Только для признака учета Количест­венный

ВалютнаяСумма

небалансовый

Тип: Число. Только для признака учета Валютный

Реквизиты

ЖО

Тип: Строка

Движения без субконто

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

Обратите внимание, что для небалансовых измерений и ресурсов, а также для счета существуют поля с добавлением «Дт» и «Кт», например, ВалютаДт:

Пример 1. (запрос расположен в модуле объекта Документ.АвансовывйОтчет)

ЗапросПоПроводкам = Новый Запрос();

ЗапросПоПроводкам.УстановитьПараметр("Ссылка", Ссылка);

ЗапросПоПроводкам.Текст =

"ВЫБРАТЬ

|Хозрасчетный.СчетДт,

|Хозрасчетный.СчетКт,

|СУММА(Хозрасчетный.Сумма) КАК Сумма,

|МИНИМУМ(Хозрасчетный.НомерСтроки) КАК НомерСтроки

|ИЗ

|РегистрБухгалтерии.Основной КАК Хозрасчетный

|ГДЕ

|Хозрасчетный.Регистратор = &Ссылка

|И (НЕ(Хозрасчетный.СчетДт.Забалансовый

|ИЛИ Хозрасчетный.СчетКт.Забалансовый))

|

|СГРУППИРОВАТЬ ПО

|Хозрасчетный.СчетДт,

|Хозрасчетный.СчетКт

|

|УПОРЯДОЧИТЬ ПО

| НомерСтроки";

ВыборкаПроводок = ЗапросПоПроводкам.Выполнить().Выбрать();

Заметьте, что эта таблица не предоставляет информацию о суб­конто. Для этого предназначена следующая таблица.

Движения с указанием субконто

Теперь получим список движений регистра с субконто. Для этого нужно воспользоваться таблицей ДвиженияССубконто. Для де­монстрации мы включим в результат поле ВидСубконтоДт1 и другие поля, содержащие информацию о субконто по дебету и кредиту проводки.

Это реализуется в следующем запросе:

Пример 2a.

|ВЫБРАТЬ

|Период, //дата и время записи

|Организация, //балансовое измерение Организация

|СчетДт, СчетКт, //счета дебета и кредита

|Сумма, //балансовый ресурс Сумма

|ВидСубконтоДт1, СубконтоДт1, //вид и значение субконто 1 по дебету

|СубконтоДт2, //субконто 2 по дебету

|СубконтоКт1, СубконтоКт2, //субконто 1 и 2 по кредиту

|КоличествоДт КолДт, КоличествоКт КолКт, //небалансовый ресурс

|ЖО //реквизит записи ЖО

|ИЗ РегистрБухгалтерии.Основной.ДвиженияССубконто

Пример 2б.

ЗапросПоПроводкам = Новый Запрос();

ЗапросПоПроводкам.УстановитьПараметр("Ссылка", Ссылка);

ЗапросПоПроводкам.УстановитьПараметр("КурсоваяРазница", Справочники.ПрочиеДоходыИРасходы.КурсовыеРазницы);

ЗапросПоПроводкам.Текст =

"ВЫБРАТЬ

|СУММА(ВЫБОР

|КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1 = &КурсоваяРазница

|ТОГДА ХозрасчетныйДвиженияССубконто.Сумма

|ИНАЧЕ 0

|КОНЕЦ) КАК СуммаДт,

|СУММА(ВЫБОР

|КОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 = &КурсоваяРазница

|ТОГДА ХозрасчетныйДвиженияССубконто.Сумма

|ИНАЧЕ 0

|КОНЕЦ) КАК СуммаКт

|ИЗ

|РегистрБухгалтерии.Основной.ДвиженияССубконто(, , Регистратор =

|&Ссылка) КАК ХозрасчетныйДвиженияССубконто

|";

ВыборкаКР = ЗапросПоПроводкам.Выполнить().Выгрузить();