Подсистема "Отчеты на СКД"



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

Возможности подсистемы:

  • Стандартная форма настройки отчета, которую программист может легко изменить, добавив нужную функциональность 
  • Регистр сведений, где хранятся настройки отчетов пользователей
  • Универсальная форма вывода отчета, которая хранит историю вызовов,  обладает расширенными возможностями расшифровки, показывает  отборы и параметры
  • Подсистема содержит минимум кода, и сделана для быстрого встраивания в существующие конфигурации
  • Один отчет может работать с несколькими схемами компоновки данных, при изменении активной схему установленные настройки и отборы сохраняются (можно сделать одну схему для остатков, другую для оборотов)
  • Есть возможность настроить список доступных полей отчета, в т.ч. список доступных реквизитов полей отчета

Архитектура:

  • В подсистеме два общих модуля, один содержит логику работы с механизмами СКД, второй сделан с целью вывести больше кода из формы настройки отчета. 
  • Отчет «Эталонный отчет» является шаблоном, на основании которого программист будет делать свои отчеты.
  • Отчет «Универсальный отчет» служит для вывода результата отчета, все созданные отчеты вызывают этот отчет для вывода.
  • Регистр сведений «Настройки отчетов» хранит настройки пользователей для отчетов, кроме компоновщика настроек можно хранить дополнительные сведений, передав структуру в процедуре сохранения и восстановления настроек.

 

Алгоритм создания нового отчета:

  1. Копируем «Эталонный отчет», меняем имя отчета.
  2. Настраиваем схему компоновки данных. если не планируем использовать несколько схем компоновки в отчете – удаляем лишние схемы  компоновки и табличный макет «Схемы».
  3. Если собираемся использовать несколько схем, то в табличном макете «Схемы» указываем  список используемых схем компоновки в первой колонке, и если нужно во второй указываем псевдонимы.
  4. Если в отчете нужно установить какие –либо параметры, кроме периода, в процедуру УстановитьПредопределенныеПараметрыОтчета() модуля создаваемого отчета  написать алгоритмы установки значений, используя свойство отчета  КомпоновщикНастроек
  5. Если в отчете используются внешние наборы данных определяем функцию отчета «ЗаполнитьВнешниеНаборыДанных», возвращающую структуру.
  6. Если хотим ограничить доступные поля – настраиваем это в табличном макете «Поля» (также как это сделано в нем), если ограничения не нужны – удаляем макет.

 

UPD: Собрал всю подсистему в один внешний отчет.

(Заранее извиняюсь, мало тестировал, могут быть ошибки)

23 Comments

  1. rzabolotin

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

    Перейти к публикации

    Reply
  2. VasilyErmak

    На ИТС есть статья «Разработка отчетов при помощи универсального механизма «Шаблон типового отчета»» где описано как делать отчёты на базе СКД.

    Интересно сами разработали или 1С-овскую переделали.

    Reply
  3. Константин С.

    Вопрос № 1. чем лучше ваша функциональность от представленной в УПП 1.3 «Произвольные отчеты»

    Вопрос № 2. Не проще нарисовать отчет используя средства 1С (типовой конструктор) или использовать красивый шаблон (был где-то на сайте), далее его вставить конфигурацию.

    Reply
  4. rzabolotin

    1-1. К сожалению данную статью не читал, нет ИТС.

    1-2. Взял за основу типовые отчеты из ЗУП-а под 8.1, убрал все лишнее (на мой взгляд)

    2-1. «Произвольные отчеты» обладают несравненно большей функциональностью, чем моя подсистема. Но лично для меня преимуществами моей подсистемы являются:

    1) возможность использовать на 8.1

    2) легче вносить изменения (т.к постарался убрать весь лишний код) (ну и то что сам разрабатывал)

    3) возможность изменять форму настройки отчета (например добавить дополнительные параметры типа проценты для групп А,В,С)

    4) возможность использовать несколько схем компоновки данных, и при выводе отчета переключаться между ними

    (на больших базах, если нужно получить только остатки, по моему лучше использовать вирт.таблицу остатки, нежели ОстаткиИОбороты)

    5) возможность настройки доступности реквизитов доступных полей (не выводить пользователю все реквизиты номенклатуры, когда ему нужны только код и артикул)

    6) на мой субъективный взгляд эту подсистему легче использовать для изучения возможностей СКД, чем разобрать код типовых отчетов

    7) перенести функциональность «произвольных отчетов» в не типовую конфигурацию мне кажется будет сложнее, чем добавить ей мою подсистему

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

    Reply
  5. Steelvan

    Надо потестировать.

    Reply
  6. dkprim

    механизм «Произвольные отчеты» в УПП и КА всё же интереснее будет.

    Reply
  7. vkt

    При скачивании скачивается файл «Создание» без расширения. Что за хрень? Посмотреть нет возможности.

    Придется заминусовать.

    Reply
  8. vkt

    И еще — нет соответствия названию темы и файла скачивания.

    Reply
  9. husky

    А есть самостоятельные решения, без интеграции в конфигурацию?

    Reply
  10. Alucard

    Неплохо бы было оформить это все во внешнем виде конечно, husky прав

    Как автор на это смотрит?

    Reply
  11. rzabolotin

    Действительно в виде внешнего отчета это выглядит лучше. Спасибо за совет.

    Добавил новые файлы к публикации.

    Reply
  12. curys

    Спасибо. Полезная вещь.

    Reply
  13. sergch2005

    Мне помогло, спасибо.

    Reply
  14. sergch2005

    Прикольно

    Reply
  15. shomo

    Спасибою разобрался и помогло.

    Reply
  16. LivingStar

    Да, странно. В заголовке «Отчеты на СКД».

    В скачивании «Создание отчета «Остатки денежных средств»

    в скринах «АВС анализ продаж». Как то мне не очень понятно, что все это значит.

    Reply
  17. babylon_5

    Автор, сделай 11й файлик. В котором будут все текущие 10.

    Reply
  18. Feelthis

    Досадно, что при нажатии на основную кнопку «Скачать» — скачивается какое-то непонятное видео. Неужели нельзя назначить на основную кнопку — «скачать все сразу»?

    Reply
  19. babylon_5

    (18) да ладно вредничать. Все отчеты в одном файле — уже хорошо. Я как-то никогда по этой кнопке и не скачиваю. Привык идти в список и забирать оттуда. Даже когда файл один.

    Reply
  20. pri_hod

    как сделать что б расшифровка по полю делалась не в текущем отчете а открывалась в новом отчете, так как в типовых конфах?

    Reply
  21. rzabolotin

    в форме «формаОтчета» нужно переопределить функцию обработка расшифровки

    вместо:

    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

    КомпоновщикНастроекПользовательский.ЗагрузитьНастройки(Настройки);

    ОбновитьОтчет();

    нужно написать:

    НовыйОтчет = ВнешниеОтчеты.Создать(ЭтотОбъект.ИспользуемоеИмяФайла);

    НовыйОтчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

    Форма = НовыйОтчет.ПолучитьФорму(«ФормаОтчета»,);

    Форма.КомпоновщикНастроекПользовательский.ЗагрузитьНастройки(Настройки);

    ФОрма.Открыть();

    Форма.ОбновитьОтчет();

    это для версии отчета ВсеВОдном

    Reply
  22. leraks

    Спасибо. Полезная вещь. Ваще с выходом 8.2 конечно возможностей больше стало

    Reply
  23. sumixam

    Спасибо будет чем занятся в выходные )))

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *