Если заранее известно, что пользователя
Если заранее известно, что пользователя не будут интересовать результаты работы отчета в периодах, указанных с точностью до секунд, то следует учесть следующую особенность: по умолчанию время в дате установлено в 00:00:00. Поэтому, если не предпринять специальных мер, получится, что когда пользователь задаст период отчета с 01.03.2004 по 31.03.2004, итоги регистра будут рассчитаны с начала дня 01.03.2004 00:00:00 по начало дня 31.03.2004 00:00:00. Таким образом, данные за 31 число, отличные от начала дня, в расчет не войдут, что сильно удивит пользователя.
Для того чтобы исключить эту ситуацию, следует сделать две вещи.
Во-первых, в форме отчета ограничить пользователя в возможностях ввода даты начала и даты окончания, установив для соответствующих полей ввода состав даты как "Дата":
Определим состав даты...
[179]
Во-вторых, при передаче параметров использовать встроенную функцию КонецДня(). Для этого вернемся в модуль формы отчета и внесем необходимые изменения (добавления выделены жирным шрифтом):
|
|
Процедура ДействияФормыРейтингУслугСформировать(Кнопка)
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(РейтингУслуг)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
РейтингУслуг(ТабДок, Неопределено, ДатаНачала, КонецДня(ДатаОкончания));
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА
КонецПроцедуры
|
Продолжим рассматривать текст запроса. В части описания запроса есть еще одна новая для нас конструкция – задание условий отбора данных из исходных таблиц:
|
|
"ВЫБРАТЬ
| СпрНоменклатура.Ссылка КАК Услуга,
| СпрНоменклатура.Представление,
| ПродажиОбороты.ВыручкаОборот КАК Выручка
|ИЗ
Содержание Назад Вперед