Интерактивный универсальный отчет по регистрам. Выводит данные по всем ресурсам и измерениям выбранного регистра. Позволяет интерактивно «разворачивать» группировки регистра в произвольной последовательности. К недостаткам данного варианта отчета хочу отнести скорость работы отчета. Т.к. группировки запроса можно выбирать только последовательно, то результат запроса выгружается в ТЗ, которая потом разворачивается и сворачивается в произвольном порядке по командам пользователя. В будущем (при наличии свободного времени) планируется оптимизировать работу отчета для увеличения скорости.
25-08-2013. Добавлена возможность выполнять прямой запрос к БД. Для этого необходимо наличие в каталоге ИБ файла 1CPP.dll (http://www.1cpp.ru), для базы dbf дополнительно установить драйвер FoxPro не ниже 9.0.(http://www.microsoft.com/en-us/download). Кому лень искать, выложены рядом с отчетом. Для dbf версии прямой запрос в монопольном режиме недоступен.
Внимание! В SQL версии прямые запросы пока не реализованы!
ТЗВыводаНаПечать.УстановитьЗначение(1, ТекстГруппировкиОбщиеИтоги, ТекстСтрокиОбщиеИтоги);
{C:…УНИВЕРСАЛЬНЫЙ ОТЧЕТ ПО РЕГИСТРАМ.ERT(88)}: Номер за пределами значения!
Конфигурация Торговля и Склад.
ТиС Типовая? По какому регистру формируете?
Допетрил. Не сразу до меня дошло, что можно ведь еще сформировать отчет по регистру, где нет ни остатков ни оборотов. Исправлено, перезалито.
Очень интересный отчет.Конечно, время обработки на больших базах напрягает. Но ведь это только начало!Хочется чтобы автор не забрасывал эту идею, а продолжил бы творчество и добавил сохранение настроек! Спасибо.
Если бы еще сделать бы возможность устанавливать отбор как до формирования отчета, так и после — двойным щелчком мышы — из контекстного меню — Было бы здорово!
Да, мысль такая есть. Но сейчас завал на работе, непрадахнуть. В планах сесть за доделки недели через две. Сначала скорее всего будет реализован отбор на запрос. В перспективе, конечно, будут дописываться прочие навороты, в планах есть переложить его на платформу 8.
Верия 1.1. Добавлен отбор по запросу. Исправлен косяк: Если вид регистра не был изменен, при нажатии на Обновить, отчет все равно «сворачивался» в итоговую строку.
Прикольно. Жалко, что на периоде в месяц, уже умирает отчет..
Для скорости показа группировок — используй Йоксель. Там есть опция показывать/скрывать строки в мокселе. Это в разы быстрее, чем перерисовывать таблицу целиком.
Ну и для всего остального — прямой запрос и индексированную таблицу.
Спасибо за советы. Отчет был написан «на скорую руку» штатными средствами. Сейчас просто нет времени доводить его до ума. (На работе аврал). Но по мере окончания оного, и появлению хотя бы небольшого количества свободного времени, думаю есть смысл переложить на прямые запросы. (Если конечно будет интерес к этой затее). По поводу йокселя, строки не просто показываются и скрываются, они перерисовываются в соответствии с выбором пользователя. Поэтому все равно придется хотя бы часть строк перерисовывать. Не факт что в йокселе это будет быстрее. К тому же йоксель стоит не у всех. В общем йоксель если и будет делаться, то потом и опционально. Вполне возможно найду способы оптимизировать скорость вывода штатными средствами до приемлемого уровня.
(12) йокселем будет не быстрее, а в разы быстрее — нет надобности перерисовывать всю таблицу целиком.
Добавлена возможность настроить список выводимых ресурсов. Произведены некоторые косметические доработки (вывод наименования разворота, и т.д.). Исправлен косяк с выбором в отборе измерения с типом «Перечисление».
Версия 1.3. Добавлены прямые запросы к БД. Пока только для dbf, т.к. тут были наибольшие тормоза. Для работы нужны 1CPP.dll (в каталоге ИБ) драйвер FoxPro не ниже 9.0. (см. описание). На FoxPro 8.0 запрос выкидывал ошибку, хотя тот же самый запрос на 9.0 нормально работает. Обращаю внимание, прямые запросы не работают в монопольном режиме, т.к в монопольном режиме 1С блокирует таблицы и драйвер не может получить из них данные.
(15)
1. прямые запросы сто лет в обед работают в монопольном режиме для дбф базы.
2. чтоб прямой запрос быстро обрабатывался, нужно правильно писать строку соединения + правильно писать условия и условия присоединения в тексте запроса, чтоб задействовать индекс.
3. или, можно писать запрос через 1sqlite.dll (хотя фокс и быстрее, для многих запросов будет при правильном написании)
Если че, фоксзапрос монопольно:
http://uzhast.fatal.ru/vfpoledb/
http://infostart.ru/public/16268/
1.либо использовать решение от Ужаста с модифицированным провайдером
2.либо (что лучше) пользоваться решением от hogik (проверено и работает годами)
На счет использования индексов :
http://www.1cpp.ru/forum/YaBB.pl?num=1184317705
на счет 1sqlite
https://snegopat.ru/downloads/1sqlite/
http://www.1cpp.ru/forum/YaBB.pl?num=1214205575
Версия 1.4. Исправлены ошибки. (При повторном формировании отчета в режиме прямого запроса, выводились неверные результаты). Оптимизирован алгоритм разворота группировок. На больших объемах группировки стали разворачиваться по шустрее.