Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2019
Просмотров: 51844
Скачиваний: 8727
В данном запросе в виртуальную таблицу оборотов мы передаем границы интервала, за
который нужно получить обороты, и товар, по которому отбираются исходные записи
оборотного регистра накопления. Чтобы получить конец дня, мы используем функцию
языка запросов КОНЕЦПЕРИОДА(). При построении виртуальной таблицы оборотов
данные оборотного регистра накопления Продажи группируются по измерениям
Номенклатура и Контрагент. В итоге мы получаем суммарное количество значений
ресурсов Количество и Сумма для заданного товара в разрезе контрагентов.
В результате для товара Клавиатура Apple Pro Keyboards за период 01.02.2013 –
28.02.2013 мы получим следующий результат (рис. 3.40).
Рис. 3.40. Вывод оборотов заданного товара по контрагентам за заданный период
Вывод оборотов с заданной периодичностью
Часто бывает нужно получить дополнительный разворот оборотов по периодичности,
например, получить данные о продажах товаров по месяцам в течение года или по
неделям в течение месяца. Для этого при построении виртуальной таблицы оборотов
нужно использовать параметр Периодичность. При этом в запросе к виртуальной
таблице становится доступным поле Период.
В следующем запросе (листинг 3.31) получаются обороты заданного товара за заданный
период с периодичностью НЕДЕЛЯ.
Листинг 3.31. Вывод оборотов заданного товара за заданный период с периодичностью «Неделя»
В результате для товара Клавиатура Apple Pro Keyboards за период 01.02.2013 –
28.02.2013 мы получаем данные о продажах с разворотом по неделям (рис. 3.41).
Рис. 3.41. Вывод оборотов заданного товара за заданный период с периодичностью «Неделя»
Мы видим, что данные о продажах за первую и вторую неделю февраля (01.02.2013,
04.02.2013) отсутствуют, т. к. реализация товаров началась с 12.02.2013.
Вывод оборотов продаж товаров за период с определенной периодичностью удобно
представить в виде кросс-отчета, в котором товары расположены в строках, а периоды –
в колонках таблицы.
Данные для такого отчета будут получаться при выполнении следующего запроса
(листинг 3.32).
Листинг 3.32. Запрос для получения данных
В запросе получаются обороты продаж по товарам за период с периодичностью НЕДЕЛЯ
и рассчитываются общие итоги, а также итоги по полям Товар и Период. Причем если за
какой-то период (неделю) не было продаж, колонка с этим периодом также попадет в
результат запроса, благодаря использованию конструкции ПЕРИОДАМИ() при описании
итогов по полю Период.
подробнее
Этот вопрос подробно рассматривался в разделе «
Вывод итогов по периодам с заданной
Этот запрос может служить источником набора данных для получения отчета с помощью
системы компоновки данных. Следует иметь в виду, что в системе компоновки данных
секция описания итогов не используется, а дополнение периодов указывается в
настройках отчета для группировки Период.
Можно вывести кросс-отчет также средствами встроенного языка.
подробнее
Этот вопрос подробно рассматривался в разделе «
».
Этот пример можно посмотреть в демонстрационной конфигурации «Учет движения
средств», прилагающейся к книге, в обработке Продажи номенклатуры. Поясним только,
что при выводе кросс-отчета в табличный документ нужно учитывать следующие
моменты.
Во-первых, при обходе выборки результата запроса для группировки Период нужно
использовать третий параметр метода Выбрать() со значением "ВСЕ". Если при
получении выборки третий параметр опустить, то в нее не попадут дополненные периоды,
то есть те периоды, за которые не было продаж (листинг 3.33).
Листинг 3.33. Заполнение данными табличного документа
Во-вторых, при обходе выборки группировки Товар для вложенной в нее группировки
Период нужно также использовать третий параметр метода Выбрать() со значением
"ВСЕ". Иначе те периоды, за которые не было продаж конкретного товара, не попадут в
выборку, и таблица «поплывет» (листинг 3.34).
Листинг 3.34. Заполнение данными табличного документа
В результате мы получим данные о продажах товаров за указанный период с
периодичностью НЕДЕЛЯ в виде кросс-отчета с дополнением периодов продаж (рис.
3.42).
Рис. 3.42. Кросс-отчет по продажам товаров
Получение остатков и оборотов
Для решения прикладных задач управления ресурсами предприятий часто требуется
одновременно оценить не только состояние показателей остатков, но и увидеть в
динамике, как эти показатели были получены.
Например, для контроля наличия товара на складах предприятия пользователю часто
необходимо видеть картину и остатков, и оборотов за определенный период. То есть
информацию и о начальном остатке значения ресурса (КоличествоНачальныйОстаток),
и о том, какой за указанный промежуток времени был оборот данного ресурса
(КоличествоОборот), и о том, как этот оборот был получен (КоличествоПриход,
КоличествоРасход), и о том, какое конечное значение ресурса после этого получилось
(КоличествоКонечныйОстаток).
Для эффективного решения подобных задач в системе «1С:Предприятие» реализована
виртуальная таблица остатков и оборотов ОстаткиИОбороты() для регистра
накопления остатков. Эта таблица позволяет получать итоговые значения и остатков, и
оборотов ресурсов за временной интервал. Итоговые значения могут быть получены в
разрезе комбинаций значений измерений и/или в развороте по дополнительной
периодичности. Итоги получаются только по активным записям.
Виртуальная таблица ОстаткиИОбороты имеет следующий состав полей:
<Имя измерения> – поле, содержащее значения измерения регистра с именем,
заданным в конфигурации. Количество таких полей равно количеству измерений,
определенных для регистра как объекта конфигурации;
<Имя общего реквизита> – поле, содержащее значения общего реквизита с именем,
заданным в конфигурации. Такие поля создаются для общих реквизитов, являющихся
разделителями (режим разделения данных – Разделять), с режимом использования
разделяемых данных НезависимоИСовместно, в которых участвует данный регистр;
<Имя ресурса>КонечныйОстаток – поле, содержащее конечные остатки ресурса
регистра с именем, заданным в конфигурации. Количество таких полей равно
количеству ресурсов, определенных для регистра как объекта конфигурации. Имена
полей соответствуют именам ресурсов, как они заданы в конфигураторе, с
добавлением слова КонечныйОстаток;
<Имя ресурса>НачальныйОстаток – поле, содержащее начальные остатки ресурса
регистра с именем, заданным в конфигурации. Количество таких полей равно
количеству ресурсов, определенных для регистра как объекта конфигурации. Имена
полей соответствуют именам ресурсов, как они заданы в конфигураторе, с
добавлением слова НачальныйОстаток;
<Имя ресурса>Оборот – поле, содержащее обороты ресурса регистра с именем,
заданным в конфигурации. Количество таких полей равно количеству ресурсов,
определенных для регистра как объекта конфигурации. Имена полей соответствуют
именам ресурсов, как они заданы в конфигураторе, с добавлением слова Оборот.
Оборот подсчитывается как сумма всех движений Приход со знаком «+» (плюс) и
Расход со знаком «-» (минус);
<Имя ресурса>Приход – поле, содержащее сумму всех движений типа Приход по
ресурсу регистра с именем, заданным в конфигурации. Количество таких полей равно
количеству ресурсов, определенных для регистра как объекта конфигурации. Имена
полей соответствуют именам ресурсов, как они заданы в конфигураторе, с
добавлением слова Приход;
<Имя ресурса>Расход – поле, содержащее сумму всех движений типа Расход по
ресурсу регистра с именем, заданным в конфигурации. Количество таких полей равно
количеству ресурсов, определенных для регистра как объекта конфигурации. Имена
полей соответствуют именам ресурсов, как они заданы в конфигураторе, с
добавлением слова Расход;
НомерСтроки – имеет тип Число. Существует только в случаях, если указано
значение параметра виртуальной таблицы остатков и оборотов Периодичность:
Запись. Содержит значение поля НомерСтроки записи движения регистра;
Период – имеет тип Дата. Существует только в случаях, если указано значение
параметра виртуальной таблицы остатков и оборотов Периодичность: Год,
Полугодие, Квартал, Месяц, Декада, Неделя, День, Секунда, Минута, Час,
Регистратор или Запись. Данное поле содержит начальную дату и время периода,
к которому относятся итоги регистра. Это поле не может быть использовано в
условии отбора записей;
Регистратор – имеет тип ДокументСсылка.<имя>. Существует только в случаях,
если указано значение параметра виртуальной таблицы остатков и оборотов
Периодичность: Регистратор или Запись. Данное поле содержит ссылку на
документ-регистратор, к которому относятся итоги регистра. Это поле не может быть
использовано в условии отбора записей.