1С-Предприятие 8.0. Практическое пособие разработчика


Отчет Рейтинг услуг - часть 5


Если заранее известно, что пользователя не будут интересовать результаты работы отчета в периодах, указанных с точностью до секунд, то следует учесть следующую особенность: по умолчанию время в дате установлено в 00:00:00. Поэтому, если не предпринять специальных мер, получится, что когда пользователь задаст период отчета с 01.03.2004 по 31.03.2004, итоги регистра будут рассчитаны с начала дня 01.03.2004 00:00:00 по начало дня 31.03.2004 00:00:00. Таким образом, данные за 31 число, отличные от начала дня, в расчет не войдут, что сильно удивит пользователя.

Для того чтобы исключить эту ситуацию, следует сделать две вещи.

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

Определим состав даты...


[179]

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

Процедура ДействияФормыРейтингУслугСформировать(Кнопка)

   //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(РейтингУслуг)

   // Данный фрагмент построен конструктором.

   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

 

   ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;

   РейтингУслуг(ТабДок, Неопределено, ДатаНачала, КонецДня(ДатаОкончания));

   //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА

КонецПроцедуры

 

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

   "ВЫБРАТЬ

   |    СпрНоменклатура.Ссылка КАК Услуга,

   |    СпрНоменклатура.Представление,

   |    ПродажиОбороты.ВыручкаОборот КАК Выручка

   |ИЗ




Начало  Назад  Вперед