Скд текущая дата в параметрах

Использование дат

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

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

Для того чтобы введенные значения интерпретировалось в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода() .

ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты(
<(НАЧАЛОПЕРИОДА(&ПериодНачало, ДЕНЬ))>,
<(КОНЕЦПЕРИОДА(&ПериодКонец, ДЕНЬ))>, , ) КАК ПродажиОбороты

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

Использование стандартных периодов

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

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

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

Пользователь будет редактировать параметр в следующем виде:

Для показанного примера в качестве значения параметра ПериодНачала будет использоваться дата 01.01.2019 , а в качестве значения параметра ПериодКонец будет использоваться дата 31.01.2019 .

Реальные значения дат для стандартного периода определяются при исполнении отчета. Таким образом, если выполнять отчет с установленным периодом Этот месяц в январе 2020-го года, то отчет будет исполняться с 01.01.2020 по 31.01.2020 , а если выполнять в феврале 2020-го года, то с 01.02.2020 по 29.02.2020

Читайте также  Самое короткое слово в мире

Заметим, что даты начала и конца стандартного периода также содержат и время. Причем, начальная дата имеет время 00:00:00 , а конечная дата 23:59:59 , таким образом, в запросе не обязательно использовать функции НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА .

Есть несколько вариантов вывода информации перед основным отчетом,какой лучше?! – зависит от задачи:

Допустим нам нужно вывести дату и время формирования отчета и свою шапку отчета, например так:

Варианты решения:

1. Использование группировки и макета заголовка:

1. Создаем в схеме новую группировку (без поля) и установим имя группировке Шапка отчета.

2. Удалим у данной группировки из выбранных полей автополе

В других настройках выберем макет оформления "Без оформления" (иначе на наш макет будет накладываться стандартный макет и вокруг всех ячеек будет рамка)

На вкладке макеты добавляем макет заголовка группировки (при добавлении указываем наше имя группировки (Шапка отчета) и указываем область с нашими данными), справа в табличном документе пишем необходимый текст и параметр

Сохраняем, формируем и видим результат как выше

2. Программное изменение текста заголовка

Код нужно установить в процедуре модуля отчета ПриКомпоновкеРезультата()

3. Вывод табличного макета с параметром перед формированием отчета

Создаем макет ВыводСформирован, в нем создаем параметр Сформирован и назначаем имя области Заголовок

Georgii58 Вопрос-ответ Отзывов (3) В закладки

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

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

Читайте также  Почему электронные градусники врут

текст процедуры на всякий выкладываю)

// Реквизит формы и компоновщик отчета ссылаются на один компоновщик КомпоновщикНастроек = ЭтотОбъект.КомпоновщикНастроек;

ТиповыеОтчеты.ОбновитьТаблицуДоступныхНастроекПользователю(ЭтотОбъект); ТиповыеОтчеты.УстановитьВариантПоУмолчанию(ЭтотОбъект, ЭтаФорма);

// Нарисуем кнопки выбора настроек на верхней панели ТиповыеОтчеты.ОбновитьКнопкиВыбораНастроек(ЭтаФорма, ЭтотОбъект, ПредставлениеНастройки, РежимРедактированияНастройки);

ТиповыеОтчеты.ОбновитьФормуТиповогоОтчетаПоКомпоновщику(ЭтотОбъект, ЭтаФорма); ТиповыеОтчеты.УправлениеОтображениемПанелиВариантов(ЭтаФорма); ТиповыеОтчеты.УправлениеОтображениемПанелиПользователя(ЭтаФорма)

Ссылка на основную публикацию
Adblock detector