Файл: Хрусталева Е. Ю. Язык запросов 1С-Предприятия 8 (2013).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.03.2019
Просмотров: 51830
Скачиваний: 8725
В функции СформироватьОтчетСДополнениемДат() получаются и выводятся в
табличный документ данные о продажах товаров клиентам, при этом рассчитываются
итоги на начало каждой недели за указанный период. То есть результат запроса
дополняется итоговыми данными с периодичностью НЕДЕЛЯ.
Мы не будем детально комментировать весь текст функции, так как вывод данных в
табличный документ уже рассматривался подробно в разделе «
». Обратите особое внимание на выделенные жирным шрифтом фрагменты.
В качестве источника запроса используется виртуальная таблица Обороты регистра
накопления Продажи с периодичностью НЕДЕЛЯ. Это значит, что при обращении к ней
будут автоматически формироваться итоговые данные о продажах с заданной
периодичностью.
подробнее
Подробнее о назначении и использовании виртуальной таблицы оборотов регистра
накопления будет рассказано в разделе «
».
По полю Период рассчитываются итоги с недельной периодичностью за требуемый
интервал времени. Для этого при описании итогов по полю Период используется
ключевое слово ПЕРИОДАМИ. После него в скобках указывается периодичность –
НЕДЕЛЯ и период для получения данных, который устанавливается с помощью
параметров запроса &ДатаНачала и &ДатаОкончания, значения которых передаются в
функцию.
Затем обратите внимание, что выборка ВыборкаПериод получается из результата
запроса методом Выбрать() с типом обхода ПоГруппировкам, списком группировок для
обхода "Период" (второй параметр метода) и списком значений группировок для обхода
"ВСЕ" (третий параметр метода). Если при получении выборки третий параметр опустить,
то в нее не попадут дополненные периоды, то есть те периоды, за которые не было
продаж.
Таким образом, если мы сформируем отчет о продажах товаров за период 25.10.2012 –
15.11.2012, мы получим следующий результат (рис. 2.59).
Рис. 2.59. Отчет о продажах товаров за период с дополнением дат с недельной периодичностью
Мы видим, что на начало каждой недели, когда происходили продажи товаров (29
октября и 5 ноября 2012 года) в отчете рассчитаны итоговые суммы продаж. Кроме того,
поскольку отчетный период (25.10.2012 – 15.11.2012) включает недели, за которые не
было продаж, то на начало каждой такой недели в результат добавляется пустая
итоговая строка (22 октября и 12 ноября 2012 года).
Этот пример можно посмотреть в демонстрационной конфигурации «Язык запросов»,
прилагающейся к книге, в обработке Работа с запросами.
Следует иметь в виду, что если в конструкции ПЕРИОДАМИ() не указать даты отчетного
периода, в пределах которых должно происходить дополнение отчета периодами, то
будет выполнено дополнение пустых периодов только внутри результата отчета (если
пустые периоды там присутствуют).
Глава 3. Решение прикладных задач
В этой главе речь пойдет о решении типичных задач хранения информации, задач учета
движения средств, бухгалтерского учета и задач периодических расчетов, возникающих в
процессе хозяйственной деятельности предприятия. Будут рассмотрены таблицы базы
данных, в которых хранится информация для учета, и примеры получения данных из них с
помощью языка запросов.
Если вы не знакомы или плохо знакомы с назначением и устройством регистров сведений,
регистров накопления, регистров бухгалтерии и других объектов конфигурации, с
помощью которых решаются прикладные задачи, мы рекомендуем сначала обратиться к
документации «1С:Предприятие 8.3. Руководство разработчика»:
раздел 5.13 «Планы видов характеристик»,
раздел 5.14 «Регистры»,
глава 11 «Бухгалтерский учет»,
глава 12 «Периодические расчеты».
Хранение информации
Прежде чем использоваться для каких-то учетных задач, информация, введенная
пользователем в «1С:Предприятие», должна где-то храниться. Для хранения информации
предназначены такие объекты конфигурации, как справочники, перечисления, планы
видов характеристик, регистры сведений и т. п. В данном разделе мы рассмотрим
вопросы получения информации из регистров сведений и планов видов характеристик как
наиболее сложных с точки зрения языка запросов источников данных для отчетов.
Все примеры, используемые в данном разделе, можно посмотреть в демонстрационной
конфигурации «Хранение информации», которая находится на прилагаемом компакт-
диске.
Регистры сведений
Данные каждого регистра сведений хранятся в отдельной таблице информационной базы,
в так называемой основной таблице регистра. Эта таблица доступна посредством
запросов и имеет следующий состав полей:
<Имя измерения> – поле, содержащее значения измерения регистра с именем,
заданным в конфигурации. Количество таких полей равно количеству измерений,
определенных для регистра как объекта конфигурации;
<Имя общего реквизита> – поле, содержащее значения общего реквизита с именем,
заданным в конфигурации. Такие поля создаются для общих реквизитов, не
являющихся разделителями, или для разделителей с режимом использования
разделяемых данных НезависимоИСовместно, в которых участвует данный регистр;
<Имя реквизита> – поле, содержащее значения реквизита регистра с именем,
заданным в конфигурации. Количество таких полей равно количеству реквизитов,
определенных для регистра как объекта конфигурации;
<Имя ресурса> – поле, содержащее значения ресурса регистра с именем, заданным
в конфигурации. Количество таких полей равно количеству ресурсов, определенных
для регистра как объекта конфигурации;
Активность – имеет тип Булево. Содержит признак активности записи и влияния на
получение «первых» и «последних» записей регистра. Это поле существует только
для регистров с режимом записи Подчинение регистратору;
Момент времени – виртуальное поле, не хранится в информационной базе.
Содержит объект МоментВремени (который включает в себя дату и ссылку на
документ-регистратор). Это поле существует только для регистров с режимом записи
Подчинение регистратору;
Период – дата записи. Определяет положение данной записи на временной оси. Это
поле существует только для периодических регистров;
Регистратор – содержит ссылку на документ, которому подчинена данная запись.
Это поле существует только для регистров с режимом записи Подчинение
регистратору;
НомерСтроки – уникальный номер данной записи в наборе записей регистра,
подчиненных документу, указанному в поле Регистратор. Это поле существует
только для регистров с режимом записи Подчинение регистратору.
Получение данных из независимых непериодических регистров сведений
В нашей демонстрационной конфигурации существует непериодический независимый
регистр Сотрудники, хранящий информацию о должностях, занимаемых сотрудниками, в
разрезе физических лиц и подразделений. То есть ресурсом регистра является
Должность, а измерениями – Физическое лицо и Подразделение (рис. 3.1).
Рис. 3.1. Непериодический независимый регистр сведений
Основная таблица регистра содержит следующие данные (табл. 3.1).
Таблица 3.1. Пример заполнения регистра сведений «Сотрудники»
Физическое лицо
Подразделение
Должность