Подсистема «Отчеты на СКД» представляет собой своего рода оболочку над технологией СКД, с помощью которой вы сможете легко внедрить эту технологию в свою конфигурацию.
Возможности подсистемы:
- Стандартная форма настройки отчета, которую программист может легко изменить, добавив нужную функциональность
- Регистр сведений, где хранятся настройки отчетов пользователей
- Универсальная форма вывода отчета, которая хранит историю вызовов, обладает расширенными возможностями расшифровки, показывает отборы и параметры
- Подсистема содержит минимум кода, и сделана для быстрого встраивания в существующие конфигурации
- Один отчет может работать с несколькими схемами компоновки данных, при изменении активной схему установленные настройки и отборы сохраняются (можно сделать одну схему для остатков, другую для оборотов)
- Есть возможность настроить список доступных полей отчета, в т.ч. список доступных реквизитов полей отчета
Архитектура:
- В подсистеме два общих модуля, один содержит логику работы с механизмами СКД, второй сделан с целью вывести больше кода из формы настройки отчета.
- Отчет «Эталонный отчет» является шаблоном, на основании которого программист будет делать свои отчеты.
- Отчет «Универсальный отчет» служит для вывода результата отчета, все созданные отчеты вызывают этот отчет для вывода.
- Регистр сведений «Настройки отчетов» хранит настройки пользователей для отчетов, кроме компоновщика настроек можно хранить дополнительные сведений, передав структуру в процедуре сохранения и восстановления настроек.
Алгоритм создания нового отчета:
- Копируем «Эталонный отчет», меняем имя отчета.
- Настраиваем схему компоновки данных. если не планируем использовать несколько схем компоновки в отчете – удаляем лишние схемы компоновки и табличный макет «Схемы».
- Если собираемся использовать несколько схем, то в табличном макете «Схемы» указываем список используемых схем компоновки в первой колонке, и если нужно во второй указываем псевдонимы.
- Если в отчете нужно установить какие –либо параметры, кроме периода, в процедуру УстановитьПредопределенныеПараметрыОтчета() модуля создаваемого отчета написать алгоритмы установки значений, используя свойство отчета КомпоновщикНастроек
- Если в отчете используются внешние наборы данных определяем функцию отчета «ЗаполнитьВнешниеНаборыДанных», возвращающую структуру.
- Если хотим ограничить доступные поля – настраиваем это в табличном макете «Поля» (также как это сделано в нем), если ограничения не нужны – удаляем макет.
UPD: Собрал всю подсистему в один внешний отчет.
(Заранее извиняюсь, мало тестировал, могут быть ошибки)
Подсистема «Отчеты на СКД» представляет собой своего рода оболочку над технологией СКД, с помощью которой вы сможете легко внедрить эту технологию в свою конфигурацию.
Перейти к публикации
На ИТС есть статья «Разработка отчетов при помощи универсального механизма «Шаблон типового отчета»» где описано как делать отчёты на базе СКД.
Интересно сами разработали или 1С-овскую переделали.
Вопрос № 1. чем лучше ваша функциональность от представленной в УПП 1.3 «Произвольные отчеты»
Вопрос № 2. Не проще нарисовать отчет используя средства 1С (типовой конструктор) или использовать красивый шаблон (был где-то на сайте), далее его вставить конфигурацию.
1-1. К сожалению данную статью не читал, нет ИТС.
1-2. Взял за основу типовые отчеты из ЗУП-а под 8.1, убрал все лишнее (на мой взгляд)
2-1. «Произвольные отчеты» обладают несравненно большей функциональностью, чем моя подсистема. Но лично для меня преимуществами моей подсистемы являются:
1) возможность использовать на 8.1
2) легче вносить изменения (т.к постарался убрать весь лишний код) (ну и то что сам разрабатывал)
3) возможность изменять форму настройки отчета (например добавить дополнительные параметры типа проценты для групп А,В,С)
4) возможность использовать несколько схем компоновки данных, и при выводе отчета переключаться между ними
(на больших базах, если нужно получить только остатки, по моему лучше использовать вирт.таблицу остатки, нежели ОстаткиИОбороты)
5) возможность настройки доступности реквизитов доступных полей (не выводить пользователю все реквизиты номенклатуры, когда ему нужны только код и артикул)
6) на мой субъективный взгляд эту подсистему легче использовать для изучения возможностей СКД, чем разобрать код типовых отчетов
7) перенести функциональность «произвольных отчетов» в не типовую конфигурацию мне кажется будет сложнее, чем добавить ей мою подсистему
По второму вопросу. Конечно это проще, но тогда для настроек отчета придется использовать стандартную форму настройки платформы, которая сложна даже для программистов (не имеющих опыта работы с ней)
Надо потестировать.
механизм «Произвольные отчеты» в УПП и КА всё же интереснее будет.
При скачивании скачивается файл «Создание» без расширения. Что за хрень? Посмотреть нет возможности.
Придется заминусовать.
И еще — нет соответствия названию темы и файла скачивания.
А есть самостоятельные решения, без интеграции в конфигурацию?
Неплохо бы было оформить это все во внешнем виде конечно, husky прав
Как автор на это смотрит?
Действительно в виде внешнего отчета это выглядит лучше. Спасибо за совет.
Добавил новые файлы к публикации.
Спасибо. Полезная вещь.
Мне помогло, спасибо.
Прикольно
Спасибою разобрался и помогло.
Да, странно. В заголовке «Отчеты на СКД».
В скачивании «Создание отчета «Остатки денежных средств»
в скринах «АВС анализ продаж». Как то мне не очень понятно, что все это значит.
Автор, сделай 11й файлик. В котором будут все текущие 10.
Досадно, что при нажатии на основную кнопку «Скачать» — скачивается какое-то непонятное видео. Неужели нельзя назначить на основную кнопку — «скачать все сразу»?
(18) да ладно вредничать. Все отчеты в одном файле — уже хорошо. Я как-то никогда по этой кнопке и не скачиваю. Привык идти в список и забирать оттуда. Даже когда файл один.
как сделать что б расшифровка по полю делалась не в текущем отчете а открывалась в новом отчете, так как в типовых конфах?
в форме «формаОтчета» нужно переопределить функцию обработка расшифровки
вместо:
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
КомпоновщикНастроекПользовательский.ЗагрузитьНастройки(Настройки);
ОбновитьОтчет();
нужно написать:
НовыйОтчет = ВнешниеОтчеты.Создать(ЭтотОбъект.ИспользуемоеИмяФайла);
НовыйОтчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Форма = НовыйОтчет.ПолучитьФорму(«ФормаОтчета»,);
Форма.КомпоновщикНастроекПользовательский.ЗагрузитьНастройки(Настройки);
ФОрма.Открыть();
Форма.ОбновитьОтчет();
это для версии отчета ВсеВОдном
Спасибо. Полезная вещь. Ваще с выходом 8.2 конечно возможностей больше стало
Спасибо будет чем занятся в выходные )))