Конструктор отчета (на основе типового шаблона СКД)











Конструктор для быстрого и интерактивного создания отчета на основе типового шаблона СКД за несколько шагов, с минимальным кодингом.

 

Добрый день. Хотелось бы представить небольшую разработку для упрощения жизни разработчика. 

 

Введение.

Одной из основных задач программиста 1С является создание разнообразных отчетов. И всё бы ничего, но приходиться их отдавать пользователям, оторым не всегда легко разобраться с тем как эти отчеты настроить, как добавить одну колоночку, как закрасить другую и т.д…..А ещё переодически приходится дописывать чужие отчеты, да ещё и за начинающими программистами…И ведь практически каждый пишет отчеты по-своему, со своими «велосипедами»…И каждый раз приходится обучать пользователя работе с новым отчетом, который порой самому легче написать с нуля, чем разобраться…

Так вот какое решения я нашел: писать все отчеты с использованием шаблона отчета на СКД, который используется 1С-цами. Во-первых, это СКД, а значит гибкие настройки.  Во-вторых, он удобен и известен пользователю, так как используется в типовых решениях. Да и работает практически на всех конфигурациях (просто не проверял на абсолютно всех, но основные типовые решения точно ошибок не вызовут). Однако пересадить своих коллег на использование шаблона не совсем легко: нужно знать куда вписываться….разбираться времени нет…Собственно поэтому и родилась такая разработка. 

 

Суть метода.

Перейдем к сути. За основную платформу для разработки была взята консоль запросов Владимира Тезина (https://sites.google.com/site/vtezin/zaprosnik-1s). Действительно классная разработка, но сейчас не об этом. Так вот. Алгоритм работы довольно прост:

1. Пишем запрос в консоли, устанавливаем необходимые параметры, отлаживаем, а когда все готово, вызываем собственно констуктор отчета:

 

Запуск конструктора.

2. Выбираем режим заполнения СКД отчета: из запроса или из объекта.

Выбор варианта работы конструктора

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

Выбор запроса

Параметры запроса

4. На этом шаге будет создана СКД и открыт её конструктор в режиме предприятия. При этом поля СКД будут заполнены автоматически по полям выбранного запроса. И да, запрос может быть пакетным. Здесь указываем все настройки скд, которые нам понадобятся, например: ресурсы, вычисляемые поля, настройки вывода отчета, отборы и т.д.

Конструктор СКД

СКД для источника данных «Объект»

СКД ля источника данных "Объект"

 

5. Теперь перед нами окажется форма, в которой можно просмотреть сформированный код процедур и, при желании, его отредактировать с использованием кнопки «сохранить изменения» (рис. 6).  Если вы не разбирались в коде самого шаблона и не знаете для чего нужна та, или иная функции/ процедуры, можно ничего не менять и не смотреть, а просто нажимать кнопку «Создать отчет».

Код процедур и функций

6. Теперь программа попросит вас указать папку для сохранения отчета и настроек СКД. После чего в этой папке вы увидите сам отчет, и настройки СКД, которые вы сделали на 4-м шаге.

Содержимое выбранной папки

7. Ну и самое последнее, и единственное что нужно сделать в конфигураторе: открываем наш отчет и загружаем в его СКД наши настройки. И все.  Можно открывать и формировать.

Готовый отчет в программе

 

Отдельное спасибо автору этой статьи: //infostart.ru/public/106310/ .

11 Comments

  1. K_A_O

    Универсальная консоль отчетов http://infostart.ru/public/16782/ имеет больше возможностей.

    Можно создать свои шаблоны отчетов.

    Reply
  2. PrinzOfMunchen

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

    Ну и я просто не видел раньше той обработки.)) Нужно изучить, спасибо за наводку))

    Reply
  3. kit

    Скачал, попробовал создать отчет, только не понял, а где волшебная кнопочка «Создать отчет» из вашего

    второго снимка.

    Reply
  4. PrinzOfMunchen

    (3) kit, весьма странно. Я сам специально скачал ещё раз, и она на месте.

    Напишите мне свою почту, и я скину её вам ещё раз.

    Ну и уточните пожалуйста, на какой конфигурации вы её запускали?

    Reply
  5. kit

    (4) Да, кнопка обнаружилась, просто не отображается. Но это ещё не всё, при попытке загрузить в СКД настройки в конфигураторе вылетает ошибка (см.приложения). Кстати, нигде не указано, для какой платформы, под УФ не открывается.

    Reply
  6. PrinzOfMunchen

    (5) kit, да, видимо такой картинки нет в бухгалтерии. Прошу прощения. Это я подправлю и отправлю вам обновленную версию, если скажите куда..

    По поводу СКД: проверьте те настройки, которые вы задаете в конструкторе. Ошибка скорее всего в них, так как запись в xml происходит стандартным методом. Можете скинуть мне этот отчет, и я проверю ваши настройки.

    Reply
  7. DAnry

    Для опытных программистов — слишком просто (в смысле мало пользы), для неопытных — слишком сложно. Вывод: подойдет для ленивых и малоответственных, типа «вот тут я что то сделал — мучайтесь»

    Reply
  8. PrinzOfMunchen

    (7) DAnry, я бы поспорил.

    Я считаю себя весьма опытным программистом, и польза от этого есть — это быстро, и это стандарт. Стандарт для малоопытного программиста сложный, если самому пытаться вписаться в этот шаблон. А с помощью конструктора не так уж и сложно. Написал запрос, потыкал пару кнопочек и все. Готовый отчет. В чем собственно сложность?

    А если джуниоры будут писать на шаблоне, то потом легче за ними эти отчеты поправлять: знаешь что и где, не надо копаться в их «велосипедах».

    Ну и пользователям легко: все отчеты типовые, настраиваются одинаково. При этом веьма функциональны.

    Reply
  9. igormiro

    Как по мне такой подход крайне не эффективен. Когда СКД использует набор данных запрос, то при установке отбора, текст запроса меняется, запрос отрабатывает быстрей и время выполнения такого отчета меньше. На больших данных будет проявляться.

    Reply
  10. PrinzOfMunchen

    (9) igormiro, вообще-то тут доступен вариант создания СКД с видом набора данных «Запрос». Так что, в чём тут минус?

    Reply
  11. MishaD

    Типовой шаблон будет работать только в типовых, самописки пролетают.

    Reply

Leave a Comment

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