Использование дат
Для многих отчетов необходимо дать возможность пользователю указывать период, за который необходимо получить отчет. Часто данные периоды требуется указывать не с точностью до секунды, а с точностью до дня. Для того чтобы пользователь имел возможность ввести в параметрах данных дату без времени, достаточно указать в описании параметра данных тип параметра Дата с указанием состава даты "Дата".
После этого пользователь сможет вводить в параметры данных только значения дат, без времени.
Для того чтобы введенные значения интерпретировалось в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода() .
ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты(
<(НАЧАЛОПЕРИОДА(&ПериодНачало, ДЕНЬ))>,
<(КОНЕЦПЕРИОДА(&ПериодКонец, ДЕНЬ))>, , ) КАК ПродажиОбороты
В данном примере в качестве значений параметров виртуальной таблицы будут передаваться начало и конец дней, выбранных пользователем.
Использование стандартных периодов
Система компоновки данных позволяет использовать стандартные периоды для указания периода отчета.
Для того чтобы задействовать данную возможность следует добавить в схему компоновки данных параметр типа СтандартныйПериод , а в параметрах — датах указать соответствующие выражения и запретить их редактирование пользователем.
После такой доработки схемы компоновки пользователю будет доступен для редактирования только параметр Период , значения которого при помощи выражений будут помещены в параметры ПериодНачало и ПериодКонец .
Пользователь будет редактировать параметр в следующем виде:
Для показанного примера в качестве значения параметра ПериодНачала будет использоваться дата 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С «Стандартный период». Действительно, это иногда удобно, ведь редко когда нужны отчеты за полдня или за 14 дней и 32 минуты.
Но здесь возникает вопрос, как же нам передать параметры &НачалаПериода и &КонцаПериода в запрос, а на форме чтобы был виден только один «стандартный период».
Оказывается, это очень просто сделать в механизме 1С СКД, сейчас расскажу.
Сначала создадим новый отчет и зайдем в систему компоновки данных. Напишем простенький запрос с параметрами, задающими период. Например, выведем остатки и обороты за какой-то промежуток времени:
РегистрНакопления.СвободныеОстатки.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор, ) КАК СвободныеОстаткиОбороты
Получите 267 видеоуроков по 1С бесплатно:
Теперь займемся параметрами. Кроме стандартных НачалоПериода и КонецПериода, которые мы указали в запросе, добавим еще параметр «СтандартныйПериод» и присвоим ему тип «СтандартныйПериод». А в колонке «Выражение» для параметров НачалоПериода и КонецПериода пропишем следующие выражения:
Не забудем установить флажки «Ограничение доступа» у первых двух параметров. Должна получиться такая картина:
Теперь зайдем в закладку «Настройки» и для параметра «СтандартныйПериод» сделаем следующее:
После всего проделанного сохраняем отчет и открываем его в режиме предприятия. Теперь мы можем выбирать дату следующим образом:
Следует заметить, что при выборе стандартного периода конечная дата всегда будет 23:59:59 (включая последнюю секунду).
Скачать получившийся отчет для 1С Управление торговлей 11.2 можно по ссылке.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
При работе с отчетами в программах 1С первое, что мы задаем, создавая их – тот период, за который мы хотим получить какие-либо, интересующие нас данные. При этом большинство из форм отчетности в программах, созданных на платформе «1С:Предприятие», строятся через «Систему компоновки данных» (СКД). Благодаря данному механизму, мы можем создать возможность установки стандартного временного периода в любых отчетах. Т.е., зайдя туда, пользователь не просто «руками» должен будет заполнить начало и окончание периода, а сможет воспользоваться возможностью выбора и указать из предустановленных: День, Неделя, Декада, Квартал, Год. Для этого в параметрах отчета надо поставить параметр «СтандартныйПериод».
Рассмотрим, как реализовать это на практике и как используется этот механизм в 1С.
Откроем конфигурацию и рассмотрим свойства отчета. Перейдем в «Макеты», где мы увидим раздел для установки параметров «Схемы компоновки данных».
Перейдем на закладку «Параметры». НачалоПериода/КонецПериода – стандартные записи (и к ним добавляется еще один – «Период», с типом «СтандартныйПериод»). В колонке «Выражение» для них укажем выражения: &Период.ДатаНачала и &Период.ДатаОкончания, соответственно, и установим галочки – «Ограничение доступности».
Перейдем в «Настройки», включим галочку «Отображать недоступные параметры» и откроем пользовательские настройки для нашего нового параметра – «Период». В открывшемся окне устанавливаем галочку «Включать в пользовательские настройки».
Обновив данные в конфигурации, переходим в пользовательский режим. Период выбираем из стандартных вариантов.
В новых версиях 1С практически все отчеты уже реализованы с таким вариантом выбора периода. Откроем любой отчет и посмотрим. К примеру, «Универсальный отчет», «Анализ взносов в фонды».
Мы видим, что в отчетах реализовано использование стандартного периода. Администратор-разработчик, используя механизм СКД «Стандартный период», способен оптимизировать работу пользователя с отчетами, упрощая и ускоряя ее. Кажется, что установка даты начала и окончания периода и выбор периода не отнимает много времени. Но если говорить о сотнях отчетов – небольшая настройка приведет к серьезному упрощению работы с формами в программе и повысит общую эффективность работы пользователя.