установить параметр в запросе в скд

Использование параметров в запросе СКД

В статье «Две схемы СКД в одном отчете на управляемых формах» Людмила решает вопрос детализации отчета путем формирования двух схем. Вопрос интересен как вариант решение разных задач (запросов). Но задачу с детализацией как мне кажется лучше решить используя параметры. И так рассмотрим пример решения задачи, указанной в вышеприведённой статье.

Текст запроса бедет таким:

Параметр &Детализация будет принимать два значение «КОНЕЦПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)» и «КОНЕЦПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ)» можно дополнить и другими детализациями.

Для параметра в компоновщике указываем тип строка и он будет доступен как параметр. Снимем галочку ограничения доступности

К стати для установки параметров НачалоПериода и КонецПриода я использую дополнительный параметр период тип СтандартныйПериод с заданием выражений для указанных параметров.

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Далее устанавливаем ресурсы

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Настройку шаблона макета оставим как в выше упомянутой статье.

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Теперь нам надо научить наш отчет управлять параметрами. Для этого создадим форму отчета и добавим на него элементы управления тип поля выбора для выбора Варианта детализации и поля для выбора периода. Например так: установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Настраиваем список: ВариантДетализации

Устанавливаем параметр Строки списка выбора

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

В обработчике ПриИзменении Укажем следующий текст

Аналогично устанавливаем параметр периода в обработчиках ПриИзменении всех элементов управления периода вызываем процедуру УстановитьПериод()

Обработка конечно же еще не закончена, о сталость навести лоск на форме и «защиту от дурака» оставляю это на самостаятельную работу читателя.

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

Буду рад если данная статья кому-то поможет. Высказываете критику.

Источник

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

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

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

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

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

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

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

Выбрать.

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

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

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

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

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

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

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

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

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

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

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

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

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

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

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

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

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

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

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

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

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

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

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

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

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

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

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

Резюме.

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

Источник

Разбираемся с параметрами редактирования СКД

Вступление

В конструкторе СКД на некоторых вкладках есть колонка Параметры редактирования (или Параметры ввода, что то же самое по сути).
Настройка этого значения выполняется через специальное окно с одноименным названием.

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

Самые простые параметры редактирования

Наиболее простыми для использования являются следующие параметры: Формат редактирования, Быстрый выбор, Выбор групп и элементов. С ними все понятно, поэтому их пропустим.

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Связи параметров выбора

Настраиваются через специальное окно Редактирование связей параметров выбора.
Рассмотрим на примере как заполнять поля этой формы.

Пример 1

Тогда достаточно в поле Параметр выбора указать имя реквизита из справочника Договоры контрагентов, в нашем случае это Владелец, поэтому запишем: Отбор.Владелец.
Зачем добавлять слово Отбор, опишу ниже.

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

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

Параметры выбора

Настраиваются через специальное окно Редактирование параметров выбора.
Рассмотрим на примере как заполнять поля этой формы.

Пример 2

Поля Контрагент и Договор из первого примера.
Мы хотим, чтобы пользователь мог выбрать только договор с видом С покупателем или Прочее и не помеченный на удаление.
Добавляем два параметра:
1. Параметр выбора = Отбор.ПометкаУдаления; Значение = ЛОЖЬ
2. Параметр выбора = Отбор.ВидДоговора; Значение = список из двух элементов : С покупателем, Прочее
Эти два параметра будут устанавливаться всегда независимо от выбранности/невыбранности параметра Контрагент.

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Зачем нужно слово Отбор?

Почему в поле Параметр выбора необходимо использовать приставку Отбор? Какие еще параметры можно указывать и на что это влияет?

Это один из ключевых вопросов данной статьи, который и стал поводом к ее написанию.

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

Чтобы получше разобраться поэкспериментируем

Пример 3

Добавим по два параметра в Параметры выбора и в Связи параметров выбора.

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Поставим точку останова в форме выбора при создании на сервере

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Видим, что параметры, переданные без точек пришли как отдельные, а параметры, имеющие точки пришли в виде структуры.

Связь по типу

В настройке данного параметра сбивает с толку наличие поля Элемент связи с типом число.
Чтобы понять как его настраивать разберем два примера.

Пример 4

Создадим в СКД параметр Счет.
И еще три параметра Субконто1, Субконто2, Субконто3.
Мы хотим, чтобы если выбран Счет, то во параметре СубконтоN автоматически устанавливался отбор со значениями соответствующего субконто.
В этом случае для параметра Субконто1 настраиваем Связь по типу:
Поле = Счет (ПараметрыДанных.Счет), Элемент связи = 1 (номер субконто)
Для остальных двух параметров аналогично, только Элемент связи будет 2 и 3.

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Теперь при выбранном параметре Счет, в полях СубконтоN будут доступны только значения, соответствующие типу субконто

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Пример 5

Создадим в СКД параметры Вид субконто и Субконто.
Мы хотим, чтобы при выборе вида, были доступны только значения соответствующие виду субконто.
В этом случае для параметра Субконто1 настраиваем Связь по типу:
Поле = ВидСубконто (ПараметрыДанных.ВидСубконто), Элемент связи = 0 (не имеет значение в данном случае)

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Заключение

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

Но такие связи приходится настраивать довольно редко, и часто в таких случаях проще решить задачу с помощью кода, чем разбираться как это все настраивается.

Думаю, что данное описание поможет разобраться в этом механизме и начать его применять.

Источник

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

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

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

Если мы не задаем ни один параметр, выполняется запрос :

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Если мы задаем, например, дату начала, то выполняется другой запрос:

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Если при использовании вашего отчета, подразумевается, что пользователь может его настраивать по своему усмотрению – добавлять или менять группировки, состав выбранных полей, отборы и тому подобное, то иногда имеет смысл делать некоторые таблицы необязательными для выполнения на СУБД. И СКД позволяет это сделать.

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

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Если в настройках отчета пользователь отключит вывод остатка, то запрос, выполняемый платформой, будет выглядеть следующим образом:

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Данный отчет мы создавали в рамках нашего курса по практическому применению СКД

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

При этом в параметры автоматически добавляется 2 параметра – «НаДату» с ограничением доступности и параметр «НаДатуКомпоновка» доступный пользователю. Смысл такой конструкции в следующем – если значение параметра «НаДатуКомпоновка» используется, то в запрос передается оно, если не используется, то в запрос передается значение параметра «НаДату», в котором можно, например, в выражении указать какое-то значение по умолчанию. Если в запросе не указать необязательный параметр «НаДатуКомпоновка», то СКД автоматически добавит (для регистра сведений) такой параметр с именем по умолчанию – «Период».

Обычно из-за этого возникает путаница, когда на форму для пользователя выводят значение параметра «НаДату» и если пользователь его не указал, возникает ошибка, потому что ни один из параметров для таблицы не заполнен. Если вам не нужен параметр по умолчанию («НаДату»), то можно его не указывать и тогда в параметрах остается только параметр «НаДатуКомпоновка», который пользователь может не указывать и в этом случае в запрос передается в качестве значения по умолчанию пустая дата.

Управление местом применения отбора и доступностью

Иногда при разработке отчета на СКД возникает необходимость в тонкой настройке места применения отбора.

Рассмотрим на таком (пусть искусственном) примере. Допустим нам в отчете нужно вывести все расходные накладные и все приходные накладные, связанные с номенклатурой из расходных накладных. Напишем такой запрос:

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Без отбора отчет работает нормально:

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

С отбором работает неверно (пропал поставщик):

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Почему так случилось, разберем в следующем разделе «Особенности работы запросов в СКД».

Изменим запрос таким образом:

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Самое главное здесь отключить опцию «Автозаполнение». Только в этом случае система понимает, что отбор по контрагенту нам нужен только в последнем запросе пакета и отчет работает, так как нам нужно:

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

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

установить параметр в запросе в скд. Смотреть фото установить параметр в запросе в скд. Смотреть картинку установить параметр в запросе в скд. Картинка про установить параметр в запросе в скд. Фото установить параметр в запросе в скд

Серия статей по СКД

Автор курсов образовательного проекта Profession Store. Павел Шемякин

Источник

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

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