Статистика использования дополнительных отчётов и обработок

Досталась мне в наследство база с парой сотен дополнительных отчётов и обработок в соответствующем справочнике, часть которых была настолько древней, что даже отказывалась открываться в 8.2.
Не так страшен чёрт, как его поддержка, поэтому потребовалось понять, что из этого действительно используется, а что надо выбросить мимо корзины и забыть.

Понятно, что допрос пользователей для этого не годился:

— Вы этим пользуетесь?
— Да.
— А вот этим?
— Нет.
— Shift+Delete!
… прошло 15 минут …
— А где мой отчёт?
— Какой отчёт?
— Ну вот тот вот отчёт. 
— Вы же сказали, что не пользуетесь.
— Ну да, не пользуюсь. Но раз в день-то формирую.

Поэтому я решил собрать статистику использования этих отчётов. Делается просто: в форме списка справочника ВнешниеОбработки дописываем в конец процедуру:

Процедура ЗарегистрироватьОткрытие(пОтчет)
лНабор=РегистрыСведений.ИспользованиеОтчетов.СоздатьНаборЗаписей();
лНабор.Отбор.Отчет.Установить(пОтчет);
лНабор.Отбор.Пользователь.Установить(глЗначениеПеременной("глТекущийПользователь"));
лНабор.Отбор.ДатаОткрытия.Установить(ПроверкаРазницыВремени.ТекущаяДатаСервера());

лНоваяЗапись=лНабор.Добавить();
лНоваяЗапись.Отчет=пОтчет;
лНоваяЗапись.Пользователь=лНабор.Отбор.Пользователь.Значение;
лНоваяЗапись.ДатаОткрытия=лНабор.Отбор.ДатаОткрытия.Значение;

лНабор.Записать();
КонецПроцедуры
 

Затем в той же форме находим процедуру СправочникСписокВыбор и прописываем в ней после каждой строки Форма.Открыть() вызов той процедуры:

ЗарегистрироватьОткрытие(ВыбраннаяСтрока.Ссылка);
 

Всего там будет два таких места.

Дальше остаётся только создать регистр ИспользованиеОтчетов, структуру которого я не привожу, так как она очевидна из процедуры, после чего ждать.

Разумнее всего подождать квартал, после чего у нас, во-первых, появляется информация, кто из пользователей какие отчёты и обработки использует и как часто, а во-вторых, становится понятно, какие из них можно удалить из справочника, убрать в дальний угол диска и перестать учитывать их существование при доработках конфигурации.

У меня это работает на УПП 1.3, но по идее должно работать на любой типовой конфигурации на обычных формах, где есть типовой механизм дополнительных отчётов и обработок.

13 Comments

  1. tehas

    хороша идея=) нужно так же сделать =)

    Reply
  2. korppinen

    // ..в наследство(!) база с сотней(!) внешних отчетов…))))) Кто-то отчеты полжизни писал и ушел на покой… а вы их Shiftdel-ом..

    Логично вообще для внешних отчетов понимать — нужны ли они кому.. можно ещё и для любых подделать.

    Reply
  3. bovka

    А почему не задействовать стандартный механизм журнала регистрации? Запихнуть ЗаписьЖурналаРегистрации по нужным событиям.

    Reply
  4. alyaev.a.v

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

    У себя тоже 2 года назад подобное внедрили, не только для внешних но и для всех отчетов обработок + отчет по открытию, очень удобно потом показывать руководству затрачено на разработку n-часов, а отчет открывался 2 раза за год, делают выводы.

    Reply
  5. 6JIoHguH

    Спасибо! Зреет переход из БП 2.0 в БП 3.0. Воспользуюсь, что бы не переносить кучу старых ненужных отчетов.

    Reply
  6. ksvd

    Тоже себе делал, но с записью результатов в файлы, потому что баз несколько и удобнее было (мне) смотреть сразу по всем базам.

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

    Тут можно аргументировано говорить с руководством

    Reply
  7. vasyak319

    (2) korppinen, большая часть этих отчётов написана так, что жалеешь о моратории на смертную казнь, а я их всего лишь их Shiftdel-ом.

    Reply
  8. progr-2008

    Идея хорошая, только, может подписками сделать? У меня УПП, не хотелось бы постоянно дорабатывать при обновлениях.

    Reply
  9. vasyak319

    (8) progr-2008, подписками на что? А дорабатывать при обновлениях ничего не нужно — справочник ВнешниеОбработки уже сто лет не менялся и теперь уже вряд ли будет.

    Reply
  10. SkyJack

    Спасибо, пригодилось…

    Reply
  11. Gesperid

    (4) alyaev.a.v, как вы реализовали для всех отчетов и обработок? Тоже хочется, но что-то ничего элегантного на ум не приходит.

    Reply
  12. vasyak319

    (11) Gesperid, совсем одним движением и не получится. Для отчётов на основе Универсального надо всобачить в Универсальный вызов процедуры, регистрирующей открытие, а для всех остальных вставлять этот вызов в каждый отчёт. Сейчас я так делать не стал просто потому, что использование типовых отчётов мне неинтересно (не удалять же их, если они не используются), а почти все нетиповые у меня внешние/дополнительные.

    Reply
  13. kykap2

    А на печальные формы такое подойдет? Я просто не прогер

    Reply

Leave a Comment

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