Добавление отчета; Б. Выборка документов; В. Работа с формой (выбор периода); Г. Работа с формой (флажки); Д. Код процедуры.
А. Сегодня делаем отчет «Реестр документов». В отчет будут выводиться документы, согласно заданных условий. В качестве условий установим период и вид документов. Для начала создадим новый отчет в дереве метаданных.
Рисунок 1.
Добавим форму отчета:
Рисунок 2.
Для выбора периода на форму добавим реквизиты два поля ввода типа «Дата».
Рисунок 3.
Отдельно следует остановиться на свойстве «Состав даты». В восьмой версии значение типа «Дата» может включать в себя кроме даты еще и время. В нашем случае нам интересна только дата.
Скопируем указанный элемент и переименуем его в «пвДатаПо» («пв» в имени означает «Поле ввода»). Копирование рекомендую осуществлять простым перетаскиванием с прижатой кнопкой «Ctrl».
Б. Для начала выведем список всех документов без каких-либо условий. В отличие от седьмой версии в восьмой это не так просто. Если в семерке было достаточно создать объект типа «Документ», то в восьмерке иерархия более трудная. В процедуре обработчика нажатия на кнопку «Сформировать»:
Рисунок 4.
В предприятии открываем отчет
Рисунок 5.
Если все правильно, то по нажатию в строке сообщение должно нарисоваться примерно следующее (у меня по одному документу каждого вида):
Рисунок 6.
Как видно, первый цикл обходит виды документов, а второй уже собственно документы. На иерархии видов объектов более детально остановимся в следующий статье. А пока добавим условия выбора по периоду и виду документов.
В. Мы уже добавили на форму поля для выбора периода. Сделаем работу с периодом более удобной. Для этого: а) установим даты по умолчанию; б) добавим функцию выбора периода, а не отдельных дат.
В обработчике открытия формы пропишем присвоение значений реквизитам пвДатаПо = рабочей даты, пвДатаС = начало месяца рабочей даты:
Рисунок 7.
Для работы с периодом предназначен объект «НастройкаПериода». Модернизируем форму следующим образом:
Рисунок 8.
В обработчик нажатия кнопки поместим работу с периодом:
Рисунок 9.
Что такое «УстановитьПериод», «Редактировать» и остальные методы можно посмотреть в синтаксис-помощнике. Для этого выделяем искомое слово и жмем «Ctrl+F1».
Г. Для добавления условия вывода по виду документов добавим на форму два флажка:
Рисунок 10.
Основные свойства флажков представлены ниже (естественно, что разница между свойствами приходного и расходного в одном слове):
Рисунок 11.
Создадим элементарный макет:
Рисунок 12.
Д. Осталось привести окончательный код процедуры:
Рисунок 13.
В указанном примере следует обратить внимание на следующие моменты:
1. Функция «Формат». Применяется для форматирования выводимых значений в виде, наиболее подходящем в данном случае. Больше о ней можно прочесть в синтаксис-помощнике.
2. Условие по виду документа (Метка «1»). Скажу сразу, что этот способ применять в реальных системах, как минимум, неразумно. Настоящий пример носит чисто иллюстративный характер. Кроме собственно наложения условия, в данном примере продемонстрирована возможность переноса строк кода.
3. Условие по периоду документов (Метка «2»).
Пока все. В следующей статье более подробно рассмотрим иерархию видов объектов.