Что такое параметры виртуальной таблицы

1С СКД. Параметры и необязательные параметры.

В данной статье мы рассмотрим практически все возможности и множество нюансов, которые относятся к параметрам в Системе Компоновки Данных 1С (в сокращении — СКД). Параметры в запросе СКД, фигурные скобочки в запросе СКД — оно же Расширение языка запросов для СКД, особенности настройки страницы “Параметры” СКД, вывод параметров на форму, программная установка параметров, мягкие и жесткие параметры.

Параметры в запросе 1С СКД.

Параметры могут использоваться практически в любом месте запроса и выполнять самые различные функции.

Параметры обозначаются знаком & после которого следует имя параметра.

Параметр может быть полем запроса, частью произвольного выражения поля запроса, условием для виртуальной таблицы, частью выражения в отборе запроса и так далее:

При построении запроса конструктором на вкладке “Условия” если не стоит галочка “Произвольное”, то конструктор считает что в правом значении параметр и он записывается без символа &.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Таким образом этот блок настраивается в конструкторе.

Если значение параметра не задано, то построение СКД будет невозможно и будет выдана ошибка, поэтому такие параметры называют “обязательными” или “жесткими”.

Расширение языка запросов для СКД.

Выбрать.

Этот блок располагается в запросе типа выборка данных пакета запросов СКД в первом запросе объединения между перечнем полей и “ИЗ” и заключается в фигурные скобки.

В этом блоке мы перечисляем поля, которые пользователь может выбирать для вывода, группировки и упорядочивания. Конструкция «.*» в параметре “Марка.*” позволяет выбирать для вывода, группировки и упорядочивания дочерние поля значения, например, Марка.Код. Слово “КАК” позволяет задать псевдоним, например, “Ссылка КАК Машина”. Поля в этом блоке попадают в перечень полей набора, даже если отключено автозаполнение. Если автозаполнение включено, то упомянутые поля попадают в соответствии с тем, как они настроены расширением кода, то есть если ссылочное поле без конструкции “.*” дочерние поля доступны не будут, если указан псевдоним — именно он попадет в перечень полей набора.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Таким образом этот блок настраивается в конструкторе.

При автоматическом заполнении полей набора данных, для не включенных в блок расширения “ВЫБРАТЬ”, добавляются все поля списка выборки и их дочерние поля. Они становятся доступными для выбора, упорядочивания, группировки, отбора. Также добавляются поля, которые упомянуты в параметре “Условия” виртуальных таблиц как доступные для отбора.

Отбор, установленный в пользовательских настройках, будет действовать не только на основной запрос, но и на все запросы в пакете. Но это не всегда соответствует логике отчета, к примеру, если помимо отобранной номенклатуры и сумм по ней нужно выводить общую сумму продаж для сравнения. В таких случаях нам нужны специфические отборы в каждом запросе пакета.

Блок расширения “ГДЕ” может быть расположен после или вместо обычного блока “ГДЕ” в любом запросе, подзапросе, запросах объединения и заключается в фигурные скобки. Для присвоения отбору псевдонима используется конструкция “КАК”. Псевдоним нужно использовать чтобы отбор производился конструкцией расширения языка запросов, но не происходил автоматически по наименованию поля.

Если автозаполнение полей набора отключено, поля из этого блока попадают в перечень полей набора доступными только для отбора, использование дочерних полей зависит от наличия конструкции “.*”.

Если автозаполнение включено, и это поле включено в блок расширения “ВЫБРАТЬ” тогда настройки обоих блоков объединяются. Если не включено в “ВЫБРАТЬ” то поля попадают доступными для вывода, группировки, отбора и упорядочивания.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

В случае если нужно дополнительно установить какое то ограничение полю, то можно вручную установить галочку в соответствующее поле перечня полей набора данных СКД.

Параметры в блоке «ГДЕ» не обязательны для заполнения, поэтому эти параметры называют “необязательными” или “мягкими”.

Также в блоке “ГДЕ” вместо параметра может быть произвольное выражение с использованием конструкции ВЫБОР или параметров со страницы “Параметры” СКД. Правда в последнем случае вид сравнения необходимо указывать конкретно.

Нужно с осторожностью использовать вид сравнения МЕЖДУ поскольку:

Если параметры НачалоПериода и КонецПериода не будут заданы, то система получит документы за весь период.

Если параметры НачалоПериода и КонецПериода будут заданы, то система получит документы за указанный период.

Если какой-то один из параметров не будет задан, то система выдаст ошибку.

Один из вариантов решения это разбить МЕЖДУ на два условия чтобы система не выдавала ошибку в случае одного незаполненного параметра.

Это же замечание относится к любым выражением с использованием нескольких параметров.

Параметры виртуальных таблиц.

В параметрах виртуальных таблиц в отличие от предыдущих блоков, каждый параметр заключается в фигурные скобки. В полях относящихся к периоду название параметра ставится с &. Пример &ДатаНачала. В поле “Условие” параметры оформляются аналогично блоку “ГДЕ”.

Поведение параметров из поля “Условие” при снятии или установке галочки “Автозаполнение” также аналогично блоку «ГДЕ».

Параметры из полей периода попадают на страницу “Параметры” СКД. Если автозаполнение включено и в поле периода параметр не вписан, параметры с именем поля периода будут автоматически созданы на странице “Параметры” СКД.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Таким образом, эти параметры заполняются в конструкторе запроса. Для открытия формы “Параметры виртуальной таблицы” нужно выбрать виртуальную таблицу в списке таблиц и нажать выделенную синим кнопку. Также тут у таблиц есть булевый реквизит “Обязательная” и числовой реквизит “Номер группы”. Если признак обязательности таблицы не установлен, то она будет добавляться в результирующий запрос только в случае, когда хотя бы одно поле из нее задействовано в компоновке. Номер группы заполняется для необязательных таблиц и обозначает группу таблиц, которые будут добавлены в результирующий запрос только, когда из этой группы таблиц задействовано хотя бы одно поле.

В параметрах виртуальных таблиц возможно совместное использование “жестких” параметров запросов и “мягких” параметров компоновки данных.

В этом примере если в настройках установлено значение параметра &НачалоПериода, то будет использоваться его значение. В противном случае в качестве значения параметра виртуальной таблицы будет использоваться значение “жесткого” параметра “&Начало”.

Если автозаполнение включено и в поля периода не вписаны “мягкие” параметры компоновки данных то параметры с именем поля периода будут автоматически созданы на странице “Параметры” СКД и текст запроса:

будет соответствовать следующему:

В этом случае “мягкие” параметры также будут иметь приоритет над “жесткими”.

Особенности настройки страницы “Параметры” СКД.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Обзорный вид страницы.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

На эту страницу автоматически добавляются все параметры из запроса. Можно добавлять свой параметр в для использования его в вычисляемых полях например.

Строка параметра имеет следующие реквизиты:

Имя — это имя параметра, с помощью которого к его значению можно обращаться в тексте запроса, в вычисляемых полях и других местах где доступны выражения.

Заголовок — название, выводимое пользователю.

Тип — определяет тип параметра. Иногда при выборе дат периода, пользователю не нужно указывать время. Тогда нажав на “…” можно указать состав даты — Дата.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Таким же образом можно указать формат числа для численного параметра и длину строки для строкового.

Доступные значения — определяет перечень доступных значений. Представляет собой список значений со стандартными полями — значение и представление, где значение типа параметра. Для ссылочного типа доступны для выбора только предопределенные данные.

Доступен список значений — определяет доступность параметру принимать значение “список значения”.

Значение — предустановленное значение параметра. Типа параметра. Для ссылочного типа доступны для выбора только предопределенные данные.

Выражение — выражение, значение которого примет параметр. Что примечательно здесь могут использоваться как функции встроенного языка запросов, так и функции встроенного языка программирования и даже функции из общих модулей. К примеру, параметру ТекДата присваивается значение функции встроенного языка программирования ТекущаяДата().

Также в примере к реквизиту “Тип” можно было в выражениях использовать функции встроенного языка запросов, особенность применения этих функций в данном месте такова, что строковые параметры функций надо брать в кавычки.

и в запросе можно было бы писать проще поскольку в параметрах уже будет содержаться начало и конец периода:

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Иногда, для повышения удобства пользователю для выбора периода лучше дать не два поля с типом Дата, а одно поле с типом Стандартный Период. Тогда, к примеру, создаем три параметра: “Период” с типом СтандартныйПериод, “ПериодНачало” и “ПериодОкончание” с типом Дата. Первый параметр без ограничения доступности. Вторые с ним. В выражение “ПериодНачало” пишем “&Период.ДатаНачала”, в “ПериодОкончания” — “&Период.ДатаОкончания”.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Даты начала и конца стандартного периода также содержат и время. ДатаНачала имеет время 00:00:00, а ДатаОкончания 23:59:59. Получится что пользователь выберет стандартный период в “Период” а разработчик будет использовать корректные “ПериодНачало” и “ПериодОкончание”.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Параметр функциональной опции — используется в механизме функциональных опций.

Включать в доступные поля — включает параметр в доступные поля для выбора в настройках.

Ограничение доступности — ограничивает возможность изменения значения параметра пользователем.

Запрещать незаполненные значения — если установлено и значение параметра не заполнено — отчет не сформируется и выдаст ошибку.

Использование — устанавливает использование параметра. Если установлено Авто и параметр используется в запросе или выражениях, а пользователь перед формированием не установит галочку около параметра — отчет при формировании выдаст ошибку. Пользователь может установить эту галочку непосредственно, или она установится автоматически при изменении значения параметра. Если установлено Всегда, то этой проверки на то, что пользователь заполнил этот параметр — не будет.

Параметры редактирования — содержит настройки редактирования как у поля формы.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Страница “Параметры” блока “Настройки” страницы “Настройки”.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

В настройках варианта мы можем установить галочку “Отображать недоступные параметры”, это можно использовать если для разных вариантов мы хотим использовать разный набор параметров.

У параметров в табличной части мы можем установить значение по умолчанию для варианта, включить использование по умолчанию установив галочку слева. Нажав на кнопку, расположенную справа внизу, мы открываем окно пользовательских настроек параметра.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

В пользовательских настройках мы можем включить параметр в пользовательские настройки. Установим режим редактирования обычный. Тогда он будет доступен в форме, вызываемой кнопкой “Настройки…”.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Если Режим редактирования установить Быстрый доступ, то параметр появится на форме.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Если у параметра “Период” представление заполнить строкой “ПеРиОд”, то вместо название будет показано содержания поля представление.

Параметры СКД на форме.

Если у отчета СКД нет формы, то платформа создаст автоматическую, на которой будут табличный документ результата, кнопки управления и быстрые пользовательские настройки.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Можно создать свою форму для отчета и вывести на нее табличное поле со всеми пользовательскими настройками. Вот так:

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Для этого в созданной форме в конфигураторе вытаскиваем на форму Пользовательские настройки из Компоновщика отчета.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

В некоторых случаях параметр не прост, и для его расчета нужен некий алгоритм с циклом или ветвлениями. К примеру если отчет формируем в понедельник то в отчете сравниваются продажи по дням позапрошлой и прошлой недели, а в остальные дни недели сравниваются продажи по дням прошлой и текущей недели. Получается у нас от значения дня недели текущего дня зависит сразу четыре параметра: &НачалоПрошлойНедели, &КонецПрошлойНедели, &НачалоТекущейНедели и &КонецТекущейНедели. А еще нам надо дать возможность пользователю формировать отчет как будто он сформирован вчера или неделю назад. В таком случае мы создаем реквизит формы ТекДата типа Дата. Выводим его на форму. В событии ПриИзменении() пишем.

Таким образом можно программно менять параметры из формы.

Резюме.

Параметры это ключевой инструмент для управления отчетом. Использование параметров дает возможность решить множество прикладных задач, таких как калькуляция на основе информации в базе и значений введенных интерактивно для конкретной калькуляции и многих других. В данной статье рассмотрены практически все относящиеся к параметрам механизмы и особенности. Рамках статьи не рассмотрен блок “Характеристики” Расширения языка запросов для СКД поскольку он не касается параметров. Не рассмотрена настройка параметра “Параметр функциональной опции” поскольку ее описание лучше включить в статью по функциональным опциям.

Источник

Конструктор запросов 1С — обучение на примерах

Урок 6. Виртуальные таблицы и их использование в конструкторе запросов

Задача 1: Получить остатки номенклатуры на указанном складе на конец месяца.

Задача 2: Получить актуальную цену на конец месяца по указанной номенклатуре и типу цен.

Новые механизмы: заполнение параметров виртуальных таблиц.

Теоретическая часть урока №6

У некоторых объектов метаданных помимо основной таблицы в базе данных присутствуют виртуальные таблицы. Они облегчают доступ к некоторой информации содержащейся в основной таблице. Использовать данные виртуальных таблиц можно при помощи запросов, либо при помощи специальных методов встроенного языка 1с 8.

Рассмотрим основные виды виртуальных таблиц 1с для различных объектов метаданных:

Конструктор запросов позволяет работать с виртуальными таблицами регистров. Если у регистра есть виртуальные таблицы, то они будут находится в разделе База данных на вкладке Таблицы и поля после основной таблицы регистра.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Для того чтобы получить нужные данные из виртуальной таблицы регистра, необходимо заполнить ее параметры. Разберем заполнение параметров для основных виртуальных таблиц. Для того чтобы открыть окно параметров виртуальной таблицы, ее необходимо перенести из раздела База данных, в раздел Таблицы, выделить и нажать в кнопку Параметры виртуальной таблицы.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

СрезПоследних и СрезПервых

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Остатки в регистре накопления

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Остатки в регистре бухгалтерии

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

При помощи данного параметра можно увеличить скорость выполнения запроса, исключив ненужную аналитику. Субконто в виртуальной таблице будут доступны в том порядке, в котором они стоят в массиве. Если в параметр передано меньше видов субконто, чем существует на счете, то не указанные в параметре субконто использовать нельзя. Данный параметр не является обязательным, если он не задан, то в виртуальной таблице используются все доступные субконто.

Обороты в регистре накопления

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Обороты в регистре бухгалтерии

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Остатки и обороты в регистре накопления

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Остатки и обороты в регистре бухгалтерии

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Все параметры используемые в данной таблице были описаны в предыдущих пунктах.

Обороты Дебет Кредит

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Движения с субконто

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Практическая часть урока №6

В данном разделе нам предстоит решить две задачи по пройденной теме.

Задача 1

Получить остатки номенклатуры на указанном складе на конец месяца.

Для простоты предположим, что весь учет товаров на складах идет по 41 счету бухгалтерского учета.

В итоге у нас получится запрос со следующим текстом:

Задача 2

Получить актуальную цену на конец месяца по указанной номенклатуре и типу цен.

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

В итоге у нас получится запрос со следующим текстом:

Источник

Виртуальные таблицы регистра накопления в 1С 8.3

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Выборка из регистра накопления

Перебрать все записи регистра накопления можно с помощью метода Выбрать. Данный метод вернет выборку, которую можно перебрать в цикле. Через выборку будут доступны все поля регистра накопления (измерения, ресурсы, реквизиты, служебные поля):

Через параметры можно ограничить период выборки, а также указать отбор. Отбор возможен только по индексируемым измерениям и реквизитам:

Если измерение Товар не проиндексировано, то будет выброшено исключение «Недопустимое значение параметра (параметр номер ‘3’)».

Если нужно выбрать записи только одного регистратора, то можно воспользоваться методом ВыбратьПоРегистратору, передав параметром ссылку на нужный документ:

Чаще всего для выборки используется запрос к таблице движений регистра:

Виртуальные таблицы регистра накопления

Помимо таблицы движений в запросах доступны виртуальные таблицы регистра накопления:

Все их можно увидеть через конструктор запроса:

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

При этом у регистра накопления с видом Остатки есть все три виртуальные таблицы, а у регистра накопления с видом Обороты только одна, так как у оборотного регистра нет остатков.

Таблицы называются виртуальными, потому что они не хранятся в базе данных. При выполнении запроса они формируются динамически на основании таблиц движений и итогов.

Виртуальная таблица остатков

Алгоритм построения таблицы остатков

Виртуальная таблица остатков содержит в себе все измерения и остатки по всем ресурсам:

Что такое параметры виртуальной таблицы. Смотреть фото Что такое параметры виртуальной таблицы. Смотреть картинку Что такое параметры виртуальной таблицы. Картинка про Что такое параметры виртуальной таблицы. Фото Что такое параметры виртуальной таблицы

Также для таблицы остатков можно указать параметры:

В запросе параметры указываются в скобках после имени таблицы:

Алгоритм построения таблицы остатков:

Например, таблица движений имеет следующий вид:

РегистраторВид движенияПериодСкладТоварКоличество
Приход №1Приход01.01.2021 09:00:00ОсновнойСтол10
Приход №1Приход01.01.2021 09:00:00ОсновнойШкаф1
Приход №2Приход10.01.2021 11:00:00РозничныйШкаф1
Приход №3Приход31.01.2021 23:59:59ОсновнойСтол7
Приход №4Приход31.01.2021 23:59:59ОсновнойСтол3
Приход №5Приход05.02.2021 12:30:00ОсновнойШкаф5
Расход №1Расход10.02.2021 10:00:00ОсновнойСтол2
Расход №2Расход15.02.2021 10:00:00ОсновнойШкаф7
Расход №3Расход20.02.2021 10:00:00ОсновнойСтол1
Приход №6Приход25.02.2021 10:00:00ОсновнойСтол1

Итоги рассчитаны за все периоды, соответственно таблица итогов выглядит так:

ПериодСкладТоварКоличество
01.02.2021ОсновнойСтол20
01.02.2021ОсновнойШкаф1
01.02.2021РозничныйШкаф1
01.03.2021ОсновнойСтол18
01.03.2021ОсновнойШкаф-1
01.03.2021РозничныйШкаф1
01.11.3999ОсновнойСтол18
01.11.3999ОсновнойШкаф-1
01.11.3999РозничныйШкаф1

Получим остатки на 1 февраля (параметр Период = 01.02.2021):

Теперь выполним тот же самый запрос, но параметр период установим равным 12.02.2021.

Теперь вообще не будем указывать параметр Период в запросе:

В этом случае будет использоваться только таблица итогов, из нее будут сразу получены текущие итоги:

ПериодСкладТоварКоличество
01.11.3999ОсновнойСтол18
01.11.3999ОсновнойШкаф-1
01.11.3999РозничныйШкаф1

Так как в запросе нет поля склад, то оно будет отброшено. Поле Количество будет просуммировано и для товара Шкаф станет равным нулю. Такие записи будут отброшены. В итоге в таблице остатков будет только одна строка:

ТоварКоличество
Стол18

Полученная таблица автоматически не сортируется. Если в параметрах виртуальной таблицы был наложен отбор, то условие отбора будет подставлено во все шаги получения остатков. Если отбор использовался в предложении ГДЕ в запросе, то сначала будет получена таблица остатков без отбора, а потом отброшены все записи не подходящие под условие. Поэтому для виртуальных таблиц отборы всегда нужно накладывать в параметрах виртуальной таблицы, если это возможно.

Если бы в нашем примере не было рассчитанных остатков за февраль 2021, то при получении остатков на втором шаге на 12.02.2021 были бы получены текущие итоги на 01.11.3999. Если нет текущих итогов (отключены для регистра), то был бы взят остаток на 01.02.2021, а на третьем шаге при получении записей из таблицы движений для прихода бы использовался знак плюс, для расхода — минус.

Стоит отметить, что в запросе не нужно дополнительно группировать по измерениям регистра, так как группировка уже была выполнена при формировании виртуальной таблицы.

Также стоит отметить, что при получении остатков из таблицы итогов период всегда берется или равный или больше. Даже если нужно получить остатки на второе число месяца и между первым и вторым числом 10 записей, а между вторым и последним числом 10 000 записей. Все равно остатки будут получены на начало следующего месяца, а потом из таблицы движений будут получены записи между вторым и последним числом.

Граница

В качестве параметра Период можно передать:

Если передать пустую дату, Неопределено или не заполнять параметр, то будут получены текущие итоги.

Если передать дату, то будут получены остатки с учетом времени, но без учета движений за эту дату. То есть если параметром указать дату 31.01.2021 23:59:59, то будут получены следующие остатки:

СкладТоварКоличество
ОсновнойСтол10
ОсновнойШкаф1
РозничныйШкаф1

Если параметром передать момент времени, то будут получены остатки на указанный момент времени, но исключая движения ссылки из момента времени. Например, если передавать параметром момент времени 31.01.2021 23:59:59 + Приход №4, то остатки будут выглядеть так:

СкладТоварКоличество
ОсновнойСтол17
ОсновнойШкаф1
РозничныйШкаф1

Если нужно получить остатки с учетом движений ссылки, то нужно передать параметром границу. Граница — это программный объект, который включает в себя дату и вид границы: включать граничное значение в интервал или нет:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *