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











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

 

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

 

Введение.

Одной из основных задач программиста 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 не будет опубликован. Обязательные поля помечены *