Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2019
Просмотров: 51809
Скачиваний: 8725
данных виртуальной таблицей по значениям субконто и измерений регистра
бухгалтерии.
Рассмотрим примеры построения запросов к таблице оборотов регистра бухгалтерии.
Самым распространенным примером отчета, который формируется с использованием
таблицы остатков и оборотов, является отчет «Оборотно-сальдовая ведомость», текст
которого приведен в листинге 3.72.
Листинг 3.72. Запрос для формирования отчета «Оборотно-сальдовая ведомость»
Если использовать этот запрос как источник данных для отчета в системе компоновки
данных (без секции описания итогов) и выводить отчет в виде иерархических группировок
по счетам, то мы получим следующий результат (рис. 3.75).
Рис. 3.75. Отчет «Оборотно-сальдовая ведомость»
ВНИМАНИЕ!
Таблица остатков и оборотов универсальна и содержит поля, необходимые во многих
отчетах. Однако платой за универсальность всегда является производительность.
Формирование таблицы может включать в себя выполнение до трех запросов.
Использование таблицы имеет смысл только в случаях, когда в одной группировке отчета
требуется получение и остатков на начало, и оборотов и остатков на конец периода. Если же
этого не требуется, то, возможно, более производительным будет вариант с несколькими
запросами к таблице остатков или к таблице оборотов.
Периодичность таблицы остатков и оборотов
Для получения дополнительного разворота оборотов по периодичности при построении
таблицы остатков и оборотов используется параметр Периодичность. Его назначение и
использование аналогично другим таблицам оборотов.
подробнее
Раздел «
».
При построении таблиц оборотов, оборотов ДтКт с определенной периодичностью в них
попадают только те периоды, которые содержали обороты.
Таблица остатков и оборотов позволяет в одной группировке запроса получить и остатки
(входящие и исходящие), и обороты. Поэтому в таблице присутствует еще один параметр
МетодДополнения, который может принимать два значения:
ДвиженияИГраницыПериода (по умолчанию) и Движения. В первом случае в результат
отчета включаются периоды, за которые были обороты, и, кроме того, еще и границы
интервала, если на эти даты были остатки. Во втором случае в результат отчета
включаются только те периоды, за которые были обороты.
Рассмотрим эти отличия на примере запроса, получающего остатки и обороты по счету
товаров за период с 01.06.2013 по 30.06.2013 включительно (листинг 3.73).
Листинг 3.73. Остатки и обороты по счету «Товары»
Если параметр МетодДополнения принимает значение ДвиженияИГраницыПериода или
если он не задан, то в отчет включается дата начала интервала отбора итогов
(01.06.2013, так как на эту дату был входящий остаток), и дата конца интервала
(30.06.2013, по той же причине), рис. 3.76.
Рис. 3.76. Остатки и обороты по счету «Товары»
В случае, если параметр МетодДополнения принимает значения Движения (листинг
3.74), в отчет попадают только те даты, за которые были обороты по счету Товары (рис.
3.77).
Листинг 3.74. Остатки и обороты по счету «Товары»
Рис. 3.77. Остатки и обороты по счету «Товары»
Развернутые остатки
В некоторых случаях требуется получить не просто остатки на счетах, а развернутые
остатки, которые считаются развернуто для измерений и субконто, используемых в
запросе. Например, на активно-пассивных счетах может быть как дебетовый, так и
кредитовый остаток. В этом случае важно видеть не общий остаток, а остаток с
разворотом по аналитике, учитываемой на счете.
Например, в нашей демонстрационной конфигурации существует активно-пассивный счет
Контрагенты, по которому проведены следующие операции (табл. 3.7).
Таблица 3.7. Проводки по счету «Контрагенты»
№
Период
Счет дт
Аналитика
Счет кт
Аналитика
Сумма
1
31.05.2013
Касса
Контрагенты
Иванов
8
2
31.05.2013
Контрагенты
Петров
Касса
3
3
20.06.2013
Контрагенты
Иванов
Касса
10
4
20.06.2013
Касса
Контрагенты
Петров
10
Предположим, требуется узнать за период с 01.06.2013 по 30.06.2013 начальный остаток,
обороты и конечный остаток на счете Контрагенты. Причем требуется развернуть
остатки по контрагентам, т. е. получить остатки в разрезе аналитики (Субконто1),
ведущейся на счете.
Это можно сделать с помощью следующего запроса (листинг 3.75).
Листинг 3.75. Получение развернутых остатков из таблицы остатков и оборотов
Развернутый остаток не имеет смысла без критерия, по которому он будет
«разворачиваться». В практике учета чаще всего получают развернутые остатки счета с
разворотом по аналитике этого счета. Поэтому в выборку запроса включено поле
Субконто1 (в качестве первого субконто на счете Контрагенты учитываются
Контрагенты).
Поля развернутых остатков, присутствующие в виртуальных таблицах в детальной
выборке запроса, полностью повторяют содержимое полей остатков (свернутых).
Развернутые остатки имеют смысл только при наличии в запросе итогов. Поэтому в
запросе мы рассчитываем итоги по полю Счет, суммируя все числовые поля.
В результате будет получена следующая динамика остатков и оборотов по счету
Контрагенты за июнь 2013 года (рис. 3.78).
Рис. 3.78. Остатки, развернутые остатки и обороты по счету «Контрагенты»
Мы видим, что на 01.06.2013 контрагент Иванов был нашим кредитором, и мы были ему
должны 8 рублей. В текущем отчетном периоде мы заплатили ему 10 рублей.
Переплатили 2 рубля, и теперь он наш дебитор (он нам должен 2 рубля). Контрагент
Петров, наоборот, был дебитором (был нам должен 3 рубля), в текущем отчетном