Скд работа с датами

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также  Программа для преобразования видео в mp3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Искал встроенную возможность добавить в отчет функции МАКС или МИН, однако ни чего не нашел и пришлось использовать конструкцию вида ВЫБОР КОГДА а>б ТОГДА а ИНАЧЕ б КОНЕЦ. Может кто подскажет как это сделать лучше чем я.

Исходно задача такая, в запросе есть два поля Вход и Выход. Нужно добавить третье поле (вероятно, вычисляемое поле), которое представляет собой МАКС(Вход, Выход).

Читайте также  Программа для проигрывания караоке на компьютере

Кому интересно, пока искал составил такой вот список функций языка выражений:

1) Вычислить(«Сумма(Продажи.СуммаОборот)», «ОбщийИтог»)
2) Уровень()
3) НомерПоПорядку()
4) НомерПоПорядкуВГруппировке()
5) Формат(РасходныеНакладные.СуммаДок, «ЧДЦ=2″)
6) НачалоПериода(ДатаВремя(2002, 10, 12, 10, 15, 34), «Месяц»)
7) КонецПериода(ДатаВремя(2002, 10, 12, 10, 15, 34), «Неделя»)
8) ДобавитьКДате(ДатаВремя(2002, 10, 12, 10, 15, 34), «Месяц», 1)
9) РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34), ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), »ДЕНЬ»)
10) ПОДСТРОКА(Контрагенты.Адрес, 1, 4)
11) Строка(Контрагенты.Адрес)
12) ГОД(РасхНакл.Дата)
13) КВАРТАЛ(РасхНакл.Дата)
14) МЕСЯЦ(РасхНакл.Дата)
15) ДЕНЬГОДА(РасхНакл.Дата)
16) ДЕНЬ(РасхНакл.Дата)
17) НЕДЕЛЯ(РасхНакл.Дата)
18) ДЕНЬНЕДЕЛИ(РасхНакл.Дата)
19) ЧАС(РасхНакл.Дата)
20) МИНУТА(РасхНакл.Дата)
21) СЕКУНДА(РасхНакл.Дата)
22) Выразить(Данные.Реквизит1, «Число(10,3)»)
23) ЕстьNULL(Сумма(Продажи.СуммаОборот), 0)
24) Представление(Контрагент)
25) ЗначениеЗаполнено(ДатаДоставки)

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