Обучающие статьи. Урок - Создание обычных отчетов и при помощи СКД
Приветствуем читателей нашей постоянной рубрики. Сегодня мы поговорим об одних из самых технически сложных объектах - Отчетах в BAS.
Отчеты необходимы лишь для одной цели – вывод информации с регистров для анализа. Отчеты очень похожи на обработки, и технически почти не отличаются. В этой статье рассмотрим постороение обычных отчетов и отчетов использующих СКД. Сложность обычных отчетов, не использующих СКД – необходимость писать все вручную. Т.е. весь процесс вывода, формирования и заполнения отчета вам необходимо реализовывать самостоятельно.
Как и в других статьях, будем использовать данные из демоверсии BAS Управління торгівлею
Создание обычных отчетов
Для примера создадим отчет по остаткам товаров на складах. Для простоты создания и отладки первоначально создадим отчет в виде внешней обработки. Нажимаем Файл - Новий - Зовнішній звіт.
Для запуска отчета создадим форму с именем "ФормаОтчета", на которой в свою очередь создадим команду "Сформировать" с действием "Создать на клиенте и процедуру на сервере" а также создадим реквизит "ТабДок" с типом Табличный документ, он нам понадобится для вывода отчета на форму. Поместим команду и реквизит на форму.
Следующим этапом создаем макет с типом "Табличный документ"
На макете создадим вариант нашего отчета. Предварительно макет можно создать в программе Excel и затем скопировать/вставить на макет. На макете создаем необходимые поля, параметры. Подробно отстанавливаться на создании макета не будем, так как процесс идентичен созданию макета для печатных форм. В нашем отчете мы хоитм видеть остатки в количественном выражении в разрезе складов.
Предварительная подготовка окончена, перейдем к получению данных и созданию самого отчета.
В Процедуре СформироватьНаСервере получаем наш созданный Макет. Если нашу обработку захотим встроить в конфигурацию, то получние макета следует использовать из закомментированной строки.
Сделаем запрос к регистру накопления «ТоварыНаСкладахОстатки». Воспользуемся конструктором с обработкой результата и укажем, что нам нужно не просто получить результат, а вывести его в табличный документ.
Далее получаем нужные области и заполняем табличный документ ТабДок данными отчета.
Если посмотреть весь текст модуля, то можно заметить, что код очень напоминает печатные формы. Теперь удостоверьтесь в режиме предприятия, что все работает.
Теперь давайте усложним отчет. В данном виде отчет выводит остатки только на текущую дату. Добавим возможность выбора даты.
Создаем новый реквизит "ДатаОстатков" с типом "Дата"
Поместим этот реквизит на форму.
Следующим шагом мы должны изменить наш запрос, добавив в него параметр ДатаОстатков. Вызываем конструктор запроса и в параметрах виртуальной таблицы добавляем период &ДатаОстатков.
Проверяем, в запросе появился наш параметр, теперь добавим передачу из реквизита данных в запрос.
Небольшое пояснение к коду. В переменную "Выбранная дата" мы добавили условие в соотвествии с котороым, если значение ДатаОстатков заполнено, то берем его значение на конец дня и добавляем 1 секунду, для корректности результата, если значение не заполнено, то берем пустую дату, как это было ранее. Проверяем в Предприятии, дата выбирается, отчет формируется с учетом выбранной даты.
Как мы видим, в данном виде отчетов каждую настройку, структуру, внешний вид приходится дорабатывать в конфигураторе. Отчет в свою очередь имеет жесткую структуру, что делает его не всегда удобным.
Отчеты с использованием СКД
Теперь рассмотрим более прогрессивный вид отчетов - это отчеты созданные с использованием СКД.
Для примера создадим аналогичный отчет и рассмотрим его преимущества по сравнению с обычными отчетами. Создаем внешний отчет без реквизитов, форм, макетов и т.д., нажимаем кнопку "Відкрити схему компоновки даних"
В конструкторе запросов создаем максимально простой запрос, в котором выводим из регистра накопления ТоварыНа Складах.Остатки Номенклатуру, склад, количество:
Для итогов суммируем количество.
Делаем группировку по полю Склад
Добавляем возможность для пользователя, если необходимо указывать дату.
Наш отчет готов. Запускам обработку, проверяем результат
Отчет похож на предыдущий, за исключением другой сортировки складов, отсутствия поля Артикул и выбора даты.
На создание отчета мы потратили намного меньше времени, не создавали макет, кнопки, не писали ни строчки кода.
Встраиваем наш отчет в конфигурацию, не забывая первый раз запустить базу с настройкой /С ЗапуститьОбновлениеИнформационной базы
Попробуем при помощи настроек добавить дату. При создании отчета мы предусмотрели такую возможность, но оставили настройку не активной. Заходим в правом верхнем углу в Ще - Інше - Змінити варіант звіту
В открывшемся окне активируем параметр Период, нажимаем правую кнопку мыши и в открывшемся окне активируем "Включати у користувацькі настройки" та змінюємо Режим редагування на Швидкий доступ. Нажимаем ОК, переходя к отчету
Следующим шагом проверяем что получилось и сохраняем наши настройки нажав на кнопку "Варіанти звіту"
В результате на форме отчета появляется поле с выбором даты и при открытии настройки дата всегда будет заполнена значением "Початок тиждня".
Посмотрим что еще можно сделать при помощи настроек. В прошлом отчете у нас было поле Артикул, добавим его, а также попробуем расположить склады в колонках, так удобнее анализировать информацию. Опять заходим в Ще - Інше - Змінити варіант звіту, Переходим в верхнее поле "Структура звіту", убираем все настройки и добавляем "Нова таблиця"
В Рядках добавляем поле Товар, а в Колонки - Склад. Во вкладке "Поля" из "Доступні поля" добавляем "Артикул". В "Додаткових настройках" "Розташування реквізитів" - окремо для того чтобы ариткул был в отдельной колонке, а не вместе с номенклатурой.
Сохраняем изменения, создаем новую настройку, формируем отчет. Получаем артикул в отдельной колонке и склады в столбцах.
Кроме табличных данных отчет можно настроить и сформировать в виде диаграммы. Заходим в настройки, удаляем из Структуры таблицу и добавляем "Діаграму", а в "Додаткових настройках" "Тип діаграми" - "Кругова", "Серії" - Склад.
В результате получаем круговую диаграмму с данными по складам.
Таблицу можно было бы не удалять, в таком случае, в отчете сформировалось бы два объекта - таблица и диаграмма.
Подводя можно сказать что отчеты с применением СКД проще в построении и обладают большими возможностями по настройке пользователями. Дополнительно по работе с отчетами можно прочитать в нашей статье Отчеты СКД в BAS
Так же, наша компания проводит обучение по курсам:
Обучение проводится в вечернее время, что позволит вам не отрываться от работы или обучения, практикующим программистом нашей компании.
Если у вас остались вопросы, Вы всегда можете обратиться к нашим аналитикам по телефонам:
(093) 090-70-20
(095) 090-70-20
(068) 090-70-20
Свяжитесь с нами
Если вы хотите получить больше информации, заполните эту форму. Мы свяжемся с вами в ближайшее время.