Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2019
Просмотров: 51845
Скачиваний: 8727
<Имя ресурса>Приход – поле, содержащее сумму всех движений типа Приход по
ресурсу регистра с именем, заданным в конфигурации. Количество таких полей равно
количеству ресурсов, определенных для регистра как объекта конфигурации. Имена
полей соответствуют именам ресурсов, как они заданы в конфигураторе, с
добавлением слова Приход. Существует только для регистра накопления остатков;
<Имя ресурса>Расход – поле, содержащее сумму всех движений типа Расход по
ресурсу регистра с именем, заданным в конфигурации. Количество таких полей равно
количеству ресурсов, определенных для регистра как объекта конфигурации. Имена
полей соответствуют именам ресурсов, как они заданы в конфигураторе, с
добавлением слова Расход. Существует только для регистра накопления остатков;
НомерСтроки – имеет тип Число. Существует только в случаях, если указано
значение параметра виртуальной таблицы оборотов Периодичность: Запись.
Содержит значение поля НомерСтроки записи движения регистра;
Период – имеет тип Дата. Существует только в случаях, если указано значение
параметра виртуальной таблицы оборотов Периодичность: Год, Полугодие,
Квартал, Месяц, Декада, Неделя, День, Секунда, Минута, Час, Регистратор или
Запись. Данное поле содержит начальную дату и время периода, к которому
относится оборот регистра. Это поле не может быть использовано в условии отбора
записей;
Регистратор – имеет тип ДокументСсылка.<имя>. Существует только в случаях,
если указано значение параметра виртуальной таблицы оборотов Периодичность:
Регистратор или Запись. Данное поле содержит ссылку на документ-регистратор, к
которому относится оборот регистра. Это поле не может быть использовано в
условии отбора записей.
При построении этой виртуальной таблицы могут использоваться параметры, с помощью
которых настраивается или уточняется состав получаемых данных:
НачалоПериода – имеет тип Дата, МоментВремени или Граница. Используется для
указания начала периода расчета оборотов. Значение этого параметра по умолчанию
включается в период расчета оборотов. Если параметр не задан, обороты
рассчитываются с самой первой записи;
КонецПериода – имеет тип Дата, МоментВремени или Граница. Используется для
указания конца периода расчета оборотов. Значение этого параметра по умолчанию
включается в период расчета оборотов. Если параметр не задан, обороты
рассчитываются по самую последнюю запись;
Периодичность – содержит конструкцию языка запросов. Задается одним из
следующих вариантов: Период, Запись, Регистратор, Секунда, Минута, Час,
День, Неделя, Декада, Месяц, Квартал, Полугодие, Год, Авто. Используется для
указания дополнительного разворота оборотов по периодичности. При указании
значения Период обороты представляются за весь период (с НачалоПериода по
КонецПериода) без дополнительных разворотов. В остальных случаях – с
разворотом по записям, регистраторам, неделям, месяцам, кварталам и т. п.
соответственно. Значение по умолчанию – Период;
Условие – содержит конструкцию языка запросов – условие. Строится по полям
регистра накопления (или по подчиненным им полям). Используется для ограничения
состава исходных записей, по которым при построении виртуальной таблицы
оборотов будут получаться обороты. То есть условие будет применяться к исходным
записям, а не к уже отобранным. Если параметр не указан, для получения оборотов
будут анализироваться все активные записи регистра.
Пример 1
Рассмотрим пример получения оборотов из регистра накопления остатков
ТоварыНаСкладах. Предположим, требуется получить данные об оборотах, приходе и
расходе товаров по складам за период. Это можно сделать с помощью следующего
запроса (листинг 3.29).
Листинг 3.29. Вывод оборотов товаров на складах за заданный период
В данном запросе в виртуальную таблицу оборотов мы передаем границы интервала, за
который нужно получить обороты. Чтобы получить конец дня, мы используем функцию
языка запросов КОНЕЦПЕРИОДА(). При построении виртуальной таблицы оборотов
данные регистра накопления остатков ТоварыНаСкладах группируются по измерениям
Номенклатура и Склад. В итоге мы получаем суммарное количество оборотов, приходов
и расходов по ресурсу Количество для каждого товара в разрезе складов.
Если мы зададим значение параметров НачалоПериода и КонецПериода как 12.02.13, мы
получим обороты товаров на складах в течение дня (рис. 3.37).
Рис. 3.37. Вывод оборотов товаров на складах за заданный период
В результате запроса отражены движения типа Приход по документу Поступление
товаров №14 от 12.02.13 и движения типа Расход по документу Реализация товаров
№1 от 12.02.13.
На этом же примере поясним ряд особенностей использования периодов и моментов
времени при получении оборотов.
Параметры НачалоПериода и КонецПериода виртуальной таблицы оборотов могут
принимать значения типа Дата, МоментВремени и Граница. В рассмотренном примере
(см. рис. 3.37) параметры НачалоПериода и КонецПериода имеют тип Дата.
При получении таблицы оборотов с указанием параметров НачалоПериода и
КонецПериода типа Дата необходимо учитывать, что дата в системе «1С:Предприятие»
включает в свой состав время. Даже если время не указано явно, оно принимает
значение 00:00:00. Поэтому чтобы включить в результат запроса данные на конец дня,
указанного в параметре КонецПериода, нужно использовать функцию языка запросов
КОНЕЦПЕРИОДА().
Таблица оборотов строится с начала секунды значения параметра НачалоПериода по
конец секунды параметра КонецПериода, то есть включая границы заданного периода.
Теперь зададим значение параметра НачалоПериода как Момент времени документа
Поступление товаров №14 от 12.02.2013 и посмотрим, как изменится результат (рис.
3.38).
Рис. 3.38. Вывод оборотов товаров на складах за заданный период
Мы видим, что результат запроса не изменился, то есть он включает движения документа
Поступление товаров №14.
При получении таблицы оборотов с указанием параметров НачалоПериода и
КонецПериода типа МоментВремени, полученного из даты документа и ссылки на
документ, необходимо иметь в виду, что данные получаются, включая записи движений
самого документа.
Для случаев, когда необходимо получить данные об оборотах, исключая движения,
относящиеся к дате или моменту времени, применяют значения параметров
НачалоПериода и КонецПериода с типом значения Граница и видом границы Исключая.
Зададим значение параметра НачалоПериода как Граница на момент времени документа
Поступление товаров №14 от 12.02.2013 с видом границы Исключая и посмотрим, как
изменится результат (рис. 3.39).
Рис. 3.39. Вывод оборотов товаров на складах за заданный период
Мы видим, что в результате запроса отсутствуют данные о приходе товара, т. е. обороты
получены, исключая движения указанного документа.
Пример 2
Рассмотрим теперь следующий пример получения оборотов из оборотного регистра
накопления Продажи. Предположим, требуется получить данные о продажах
определенного товара по контрагентам за определенный период. Это можно сделать с
помощью следующего запроса (листинг 3.30).
Листинг 3.30. Вывод оборотов заданного товара по контрагентам за заданный период