Я указываю период (дату начала, дату окончания), но последний день в него не попадает. Почему?

В запросах версии 7.7 была опция «все вошедшие в запрос». Как сделать то же самое в 8.0?

В версии 7.7 опция «все вошедшие в запрос» использовалась для вывода в отчет всех значений одной из группировок запроса. Такая необходимость могла возникнуть при создании, например, отчета об остатках на складах, в котором обязательно должны быть указаны все склады, независимо от того, есть на них остатки товаров, или нет.

В версии 8.0 для решения такой задачи следует использовать параметр «Группировки для значений группировок» методов Выбрать()результата запроса и выборки из результата запроса. Если в качестве этого параметра указать "Все", то будут выбраны все значения этой группировки в запросе. Если же указать конкретную вышестоящую группировку, то будут выбраны все значения группировки для текущих значений указанных вышестоящих группировок.

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

Наряду с описанным выше параметром, для группировок типа Дата существует возможность указать в тексте запроса способ дополнения результата запроса значениями группировки в указанном интервале с заданной периодичностью. Для этого в описании формирования итогов используется ключевое слово ПЕРИОДАМИ.

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

В качестве примера можно посмотреть отчет «Выручка мастеров» в разделе «Отчет ВыручкаМастеров» на странице 183.


Версия 8.0 Общие вопросы

Дело в том, что в версии 8.0 значения типа Датавключают в себя время с точностью до секунд. По умолчанию, если время в явном виде не задается, оно устанавливается равным 00:00:00. Поэтому, если нужно указать период по какую-то дату включительно, следует указывать конец суток, т.е. определенную дату со временем 23:59:59, либо использовать функцию КонецДня(), если время в явном виде не задается.

В качестве примера можно посмотреть процедуру «ДействияФормыРейтингУслугСформировать» в модуле формы отчета «РейтингУслуг» в разделе «Отчет Рейтинг услуг» на странице 173.