Как настроить отбор концом дня в 1С СКД
Когда я создал свой первый отчет в 1С с помощью системы компоновки данных (СКД) и начал проверять его на правильность заполнения, то обнаружил одну проблему, с которой думаю будут сталкиваться все начинающие 1С программисты. Проблема заключалась в том что в отчет попадали не все документы. Если сказать точнее не попадали документы за последнее число, установленного периода. Данная статья предназначена тем кто только делает первые шаги в изучение 1С. Если Вы более менее опытный можете дальше не читать.
СКД я посвятил достаточно много статей которые будут полезны начинающим программистам, рекомендую Вам с ними обязательно ознакомиться.
Как в СКД сравнить значение двух колонок
Как переименовать заголовки колонок в шапке
Как создать отчет с помощью СКД
Как правильно настроить отбор по периодам в СКД
И так давайте разберем все на примере, вот у нас есть отчет, мы задали период и сформировали его и видим что за 11.06 есть документы.
Но если мы сформируем отчет на эту дату то он будет пустой.
Внимательные люди заметили что у нас в периоде отображается не только дата но и время, и время установлено началом дня, т.е. мы выбираем документы которые созданы 11.06.2017 в 0:00:00.
Логично что документы которые созданы в другое время не попали в отчет, что бы это исправить нужно установить еще и время 23.59.59. В этом случае отчет будет формироваться корректно.
Но в большинстве случаев время в периоде просто не нужно, если пользователь выбирает 11.06 соответственно он хочет видеть документы за весь этот день.
Для того чтобы установить период концом выбранного дня нужно немного изменить запрос, поменять условие это
СчетНАОплатуКлиенту.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
на это.
СчетНАОплатуКлиенту.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
Т.е мы добавили стандартную функцию НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА.
Так же можно изменить состав даты и убрать о туда время, делается это во вкладке «Параметры» в поле «Тип».
Если теперь мы выберем тот же период то отчет сформируется правильно.
На эту тему в интернете достаточно много ответов, но все они на форумах, чаще всего там пишут «используй функцию КОНЕЦПЕРИОДА». Тут же у новичком возникает вопрос а где её использовать и как правильно. Поэтому я написал эту небольшую статью и попытался рассказать все как можно проще и понятней.
Возможность установки времени нужно продумывать на начальном этапе, и если в нем нет необходимости то и выводить его не нужно.
Ура!
Получилось!
Спасибо!:)