Интерактивный отчет по регистрам


Интерактивный универсальный отчет по регистрам. Идея взята из интерактивной ОСВ. Однако найти что-то похожее для регистров не смог. Решил набросать сам.

Интерактивный универсальный отчет по регистрам. Выводит данные по всем ресурсам и измерениям выбранного регистра. Позволяет  интерактивно «разворачивать» группировки регистра в произвольной последовательности. К недостаткам данного варианта отчета хочу отнести скорость работы отчета. Т.к. группировки запроса можно выбирать только последовательно, то результат запроса выгружается в ТЗ, которая потом разворачивается и сворачивается в произвольном порядке по командам пользователя. В будущем (при наличии свободного времени) планируется оптимизировать работу отчета для увеличения скорости.

 

25-08-2013. Добавлена возможность выполнять прямой запрос к БД. Для этого необходимо наличие в каталоге ИБ файла 1CPP.dll (http://www.1cpp.ru), для базы dbf дополнительно установить драйвер FoxPro не ниже 9.0.(http://www.microsoft.com/en-us/download). Кому лень искать, выложены рядом с отчетом. Для dbf версии прямой запрос в монопольном режиме недоступен.

Внимание! В SQL версии прямые запросы пока не реализованы!

17 Comments

  1. elizarovs

    ТЗВыводаНаПечать.УстановитьЗначение(1, ТекстГруппировкиОбщиеИтоги, ТекстСтрокиОбщиеИтоги);

    {C:…УНИВЕРСАЛЬНЫЙ ОТЧЕТ ПО РЕГИСТРАМ.ERT(88)}: Номер за пределами значения!

    Конфигурация Торговля и Склад.

    Reply
  2. RomanVolgograd

    ТиС Типовая? По какому регистру формируете?

    Reply
  3. RomanVolgograd

    Допетрил. Не сразу до меня дошло, что можно ведь еще сформировать отчет по регистру, где нет ни остатков ни оборотов. Исправлено, перезалито.

    Reply
  4. Filipp_inf

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

    Reply
  5. Aleksey81

    Если бы еще сделать бы возможность устанавливать отбор как до формирования отчета, так и после — двойным щелчком мышы — из контекстного меню — Было бы здорово!

    Reply
  6. RomanVolgograd

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

    Reply
  7. RomanVolgograd

    Верия 1.1. Добавлен отбор по запросу. Исправлен косяк: Если вид регистра не был изменен, при нажатии на Обновить, отчет все равно «сворачивался» в итоговую строку.

    Reply
  8. Ёпрст

    Прикольно. Жалко, что на периоде в месяц, уже умирает отчет..

    Reply
  9. Ёпрст

    Для скорости показа группировок — используй Йоксель. Там есть опция показывать/скрывать строки в мокселе. Это в разы быстрее, чем перерисовывать таблицу целиком.

    Reply
  10. Ёпрст

    Ну и для всего остального — прямой запрос и индексированную таблицу.

    Reply
  11. RomanVolgograd

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

    Reply
  12. Ёпрст

    (12) йокселем будет не быстрее, а в разы быстрее — нет надобности перерисовывать всю таблицу целиком.

    Reply
  13. RomanVolgograd

    Добавлена возможность настроить список выводимых ресурсов. Произведены некоторые косметические доработки (вывод наименования разворота, и т.д.). Исправлен косяк с выбором в отборе измерения с типом «Перечисление».

    Reply
  14. RomanVolgograd

    Версия 1.3. Добавлены прямые запросы к БД. Пока только для dbf, т.к. тут были наибольшие тормоза. Для работы нужны 1CPP.dll (в каталоге ИБ) драйвер FoxPro не ниже 9.0. (см. описание). На FoxPro 8.0 запрос выкидывал ошибку, хотя тот же самый запрос на 9.0 нормально работает. Обращаю внимание, прямые запросы не работают в монопольном режиме, т.к в монопольном режиме 1С блокирует таблицы и драйвер не может получить из них данные.

    Reply
  15. Ёпрст

    (15)

    1. прямые запросы сто лет в обед работают в монопольном режиме для дбф базы.

    2. чтоб прямой запрос быстро обрабатывался, нужно правильно писать строку соединения + правильно писать условия и условия присоединения в тексте запроса, чтоб задействовать индекс.

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

    Reply
  16. Ёпрст

    Если че, фоксзапрос монопольно:

    1.либо использовать решение от Ужаста с модифицированным провайдером

    http://uzhast.fatal.ru/vfpoledb/

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

    http://infostart.ru/public/16268/

    На счет использования индексов :

    http://www.1cpp.ru/forum/YaBB.pl?num=1184317705

    на счет 1sqlite

    https://snegopat.ru/downloads/1sqlite/

    http://www.1cpp.ru/forum/YaBB.pl?num=1214205575

    Reply
  17. RomanVolgograd

    Версия 1.4. Исправлены ошибки. (При повторном формировании отчета в режиме прямого запроса, выводились неверные результаты). Оптимизирован алгоритм разворота группировок. На больших объемах группировки стали разворачиваться по шустрее.

    Reply

Leave a Comment

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