Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2019
Просмотров: 51824
Скачиваний: 8725
В данном запросе на список движений регистра бухгалтерии накладывается отбор по
полю Регистратор. Выбранный документ-регистратор Операция или Приходная
накладная передается как значение параметра &Регистратор.
Для документа Операция №3 мы получим следующий результат (рис. 3.58).
Рис. 3.58. Отбор движений регистра бухгалтерии по регистратору
Получение остатков
Для построения бухгалтерских отчетов и анализа данных в большинстве случаев
используются виртуальные таблицы регистров бухгалтерии. Эти таблицы предназначены
для решения конкретных задач.
Для получения остатков по счетам в разрезе субконто и измерений используется таблица
остатков Остатки(). Агрегация данных производится по счетам, а также измерениям и
субконто, указанным в запросе. Итоги ресурсов получаются только по активным записям.
Виртуальная таблица Остатки имеет следующий состав полей:
<Имя измерения> – поле, содержащее значения измерения регистра с именем,
заданным в конфигурации. Количество таких полей равно количеству измерений,
определенных для регистра как объекта конфигурации;
<Имя общего реквизита> – поле, содержащее значения общего реквизита с именем,
заданным в конфигурации. Такие поля создаются для общих реквизитов, являющихся
разделителями (режим разделения данных – Разделять) с режимом использования
разделяемых данных НезависимоИСовместно, в которых участвует данный регистр;
<Имя ресурса>Остаток – поле, содержащее остаток ресурса регистра по именам
ресурсов, как они заданы в конфигураторе, с добавлением слова Остаток.
Содержит абсолютный остаток без учета вида счета – дебетовый остаток
показывается положительным числом, кредитовый – отрицательным числом;
<Имя ресурса>ОстатокДт – поле, содержащее дебетовый остаток ресурса
регистра по именам ресурсов, как они заданы в конфигураторе, с добавлением слова
ОстатокДт. Содержит дебетовый остаток с учетом вида счета. Если счет
пассивный, значение этого поля всегда равно нулю. Если счет активный, значение
поля равно значению поля Остаток. Если счет активно-пассивный, значение поля
равно значению поля Остаток, если Остаток больше или равен нулю. Если
Остаток меньше нуля, значит – ноль;
<Имя ресурса>ОстатокКт – поле, содержащее кредитовый остаток ресурса
регистра по именам ресурсов, как они заданы в конфигураторе, с добавлением слова
ОстатокКт. Содержит кредитовый остаток с учетом вида счета. Если счет
активный, значение этого поля всегда равно нулю. Если счет пассивный, равно -
Остаток. Если счет активно-пассивный, значение поля равно нулю, если значение
поля Остаток больше или равно нулю. Если значение поля Остаток меньше нуля,
значение этого поля равно -Остаток;
<Имя ресурса>РазвернутыйОстатокДт – содержит развернутый дебетовый
остаток, который считается развернуто по всем измерениям, указанным в запросе.
Имеет смысл только при использовании в запросе итогов по измерениям. Для
детальной записи значение этого поля равно значению поля <Имя
ресурса>ОстатокДт. Для итоговой записи равно сумме дебетовых остатков всех
детальных записей;
<Имя ресурса>РазвернутыйОстатокКт – содержит развернутый кредитовый
остаток, который считается развернуто по всем измерениям, указанным в запросе.
Имеет смысл только при использовании в запросе итогов по измерениям. Для
детальной записи значение этого поля равно значению поля <Имя
ресурса>ОстатокКт. Для итоговой записи равно сумме кредитовых остатков всех
детальных записей;
Субконто<Номер субконто> – имеет тип Характеристика.<имя>. Содержит
значение субконто. Количество полей Субконто зависит от максимального
количества субконто на счете плана счетов. Номер субконто начинается с 1. Набор и
порядок этих полей определяются параметром Субконто, переданным в
виртуальную таблицу;
Счет – имеет тип ПланСчетовСсылка.<имя>. Позволяет получить остатки,
сгруппированные по счетам.
При построении этой виртуальной таблицы могут использоваться параметры, с помощью
которых настраивается или уточняется состав получаемых данных. Параметры следует
задавать строго в порядке их описания:
Период – имеет тип Дата, МоментВремени или Граница. Момент времени, на
который нужно посчитать остатки. Если параметр не задан, то будут получены
актуальные остатки, включающие движения последнего проведенного документа;
УсловиеСчета – содержит конструкцию языка запросов. Позволяет установить
фильтр по счету или счетам. Как правило, содержит следующие условия: Счет = (В
ИЕРАРХИИ, В) &Счет;
Субконто – в этот параметр передается ссылка, или массив ссылок, или
фиксированный массив ссылок, или список значений, содержащий ссылки, на виды
субконто. Задает набор и порядок субконто, которыми можно оперировать в запросе.
А также служит для отбора записей регистра по видам субконто. Если параметр
задан, то будут выбираться данные только по тем счетам, у которых определены все
указанные виды субконто. Если параметр не задан, то ограничений по видам субконто
нет. Субконто определяются позиционно по соответствующему счету;
Условие – содержит конструкцию языка запросов. Позволяет устанавливать отбор
данных виртуальной таблицей по значениям субконто и измерений регистра
бухгалтерии.
Рассмотрим примеры построения запросов к таблице остатков регистра бухгалтерии.
Предположим, требуется получить абсолютный количественный остаток определенного
товара со счета товаров. Для этого нужно выполнить следующий запрос (листинг 3.49).
Листинг 3.49. Вывод остатка заданного товара со счета товаров
В данном запросе в параметр УсловиеСчета, используемый при построении виртуальной
таблицы остатков, мы передаем ссылку на счет товаров (ссылку для предопределенного
счета можно получить по имени, например: СчетТоваров =
ПланыСчетов.ОсновнойПланСчетов.Товары). В параметр Условие передаем условие
отбора конкретного товара по значению субконто, т. е. ссылку на элемент справочника
Номенклатура, который используется на счете товаров как первый вид субконто.
Результат запроса будет содержать одну строку в одном поле: абсолютный остаток по
ресурсу регистра Количество.
По аналогии с помощью следующего запроса можно получить стоимостной остаток
материалов на определенном складе на счете материалов. Для этого нужно выполнить
следующий запрос (листинг 3.50).
Листинг 3.50. Вывод остатка материалов на заданном складе на счете материалов
В данном запросе в виртуальную таблицу остатков мы передаем ссылку на счет
материалов и условие отбора конкретного склада по значению субконто, т. е. ссылку на
элемент справочника Склады, который используется на счете материалов как первый вид
субконто.
Результат запроса будет содержать одну строку в одном поле: абсолютный остаток по
ресурсу регистра Сумма (рис. 3.59).
Рис. 3.59. Вывод остатка материалов на заданном складе на счете материалов
Следующий запрос позволяет отобрать остатки в разрезе валют по всем счетам, на
которых ведется валютный учет (листинг 3.51).
Листинг 3.51. Вывод остатков на валютных счетах
Результат выполнения данного запроса представлен на рис. 3.60.
Рис. 3.60. Вывод остатков на валютных счетах
В данном запросе в параметр УсловиеСчета передается условие отбора по счетам с
признаком учета Валютный. Остатки подсчитываются в разрезе счетов и валют
(значения измерения Валюта).
Параметр «Субконто»
На примере таблицы остатков рассмотрим особенности третьего параметра Субконто,
используемого при построении виртуальной таблицы остатков. Все нижесказанное
актуально также для виртуальных таблиц оборотов (имена параметров Субконто,
КорСубконто), остатков и оборотов, оборотов ДтКт (имена параметров СубконтоДт,
СубконтоКт).
Все перечисленные параметры могут принимать значения
ПланыВидовХарактеристикСсылка.<имя> или содержать массив, состоящий из
значений указанного типа данных. То есть, точнее говоря, в параметре Субконто можно
передать не значение субконто, а значение вида субконто или массив видов субконто. А
для отбора по значению субконто используется параметр Условие (см. листинги 3.49,
3.50).
Рассмотрим два аспекта использования параметра Субконто. Прежде всего, это отбор
итогов по виду субконто.
Продемонстрируем это на примере нашей демонстрационной конфигурации.
Предположим, нам необходимо получить отчет по остаткам товарно-материальных
запасов. Для этого мы должны получить остатки со счетов учета материальных
ценностей. Таких счетов два: предопределенный счет Товары, на котором первым
субконто учитывается Номенклатура, а вторым – Склады. И предопределенный счет
Материалы, на котором первым субконто учитываются Склады, а вторым –
Номенклатура.
Выведем стоимостные остатки со счетов учета материальных ценностей в разрезе
субконто Номенклатура с помощью следующего запроса (листинг 3.52).
Листинг 3.52. Вывод остатков товарно-материальных ценностей в разрезе субконто «Номенклатура»
В консоли запросов установим значение параметра ВидСубконто как субконто
Номенклатура типа СправочникСсылка.Номенклатура, значения параметров
СчетМатериалов и СчетТоваров как ссылки на предопределенные счета Материалы и
Товары соответственно. Выполним запрос (рис. 3.61).