31.08.2021, 06:49 | #1 |
Участник
|
Прятать неиспользуемые поля и menu items
Добрый день коллеги.
Один из заказчиков хочет скрыть неиспользуемые поля на формах и спрятать menu items которые не используются. Для поля "неиспользуемость" это значит во всей таблице нет ни одного значения, и поле не используется в связях. Для menu item это означает что его не открывали в последние N месяцев, или вообще. Это все для D365 но можно идеи и для 2012, если есть. Какие есть практичные варианты реализации. |
|
|
За это сообщение автора поблагодарили: trud (1). |
31.08.2021, 07:47 | #2 |
Участник
|
Самый практичный вариант использования, имхо, скрыть все через персонализацию и эту персонализацию потом расшарить на всех желающих.
|
|
31.08.2021, 09:41 | #3 |
Участник
|
Да, есть такая мысль. Но с учётом количества форм, очень бы хотелось это автоматизировать.
|
|
31.08.2021, 09:56 | #4 |
Участник
|
Я сомневаюсь, что где-то со старта системы ведется статистика использования меню-айтемов. То есть вам надо сейчас скастомить такую статистику и начать её сохранять, а через год двигаться дальше
Ну и в целом, я думаю, что дешевле это сделать руками, чем разрабатывать автоматизацию Последний раз редактировалось Pandasama; 31.08.2021 в 10:04. |
|
31.08.2021, 15:33 | #5 |
Administrator
|
Когда-то давно - еще в 2009 стояла такая же задача. Была сделана табличка для сбора статистики и был написан код, который был вставлен по следам Task Recorder-а (т.е. в ClassFactory::formRun* и т.д., а также в базовый класс RunBase. Ну и в качестве сервиса можно было задать генерить сбор статистики не по всем объектам, а только тем, у которых в названии содержится заданная строка (актуально для сбора статистики по модулям).
Уже через месяц узнали много интересного о том, с какими формами реально работают пользователи. С полями гораздо сложнее, потому что есть еще display/edit методы, про которые никак нельзя узнать - пользуются ими или нет. Также как и со связями - нельзя однозначно понять - используется ли поле в связях или нет. Например, настроил я разноску и выбрал вариант Все. Значит у меня какое-нибудь поле типа "Группа номенклатуры" - будет пусто. И вероятно так будет во всей таблице. Relation-а тут нет - только анализировать код. А код может быть таким.... что даже перекрестными ссылками не ловиться. И я уж не говорю про расширения в D365, в которых еще сложнее искать программный код. А еще есть наследование таблиц.... Я бы начал со сбора статистики используемых форм. Причем не просто статистики использования, а с указанием пользователя и времени - когда и кем была открыта форма. Т.о. получится некий условно небольшой (по отношению к общему количеству форм в системе) перечень наиболее часто используемых (и наиболее популярных) форм. А по ним можно уже пройтись вручную и вручную отрегулировать видимость нужных полей для каждой пользовательской роли
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 31.08.2021 в 15:39. |
|
|
За это сообщение автора поблагодарили: trud (2), griefon (1). |
01.09.2021, 04:07 | #6 |
Участник
|
Тут стоит признаться, что я работаю в консалтинге, поэтому я не уверен, что минимизация затрат в моих инетерсах. Причем даже безотносительно оплаты, мне интереснее разобраться и что-то подобное запрограммировать, чем руками попрятать поля.
|
|
01.09.2021, 09:33 | #7 |
Участник
|
В коробке (как минимум в 2012) есть такой пункт меню - Журнал использования элементов - Администрирование\Запросы\Журнал использования элементов(SysUtilElementsLog), есть даже дата с которой не используется та или иная форма, там насколько я помню только формы логируются, но в принципе можно расширить.
У нас с начала запуска работает функционал использования кнопок на формах по пользователям, но это скорее сделано для аудита, а не для скрытиях тех или иных объектов, основная кастомизация в SysSetupFormRun\selectControl + в init (открытие формы).
__________________
Sergey Nefedov Последний раз редактировалось SRF; 01.09.2021 в 11:25. Причина: Опечатки в именах объектов |
|
|
За это сообщение автора поблагодарили: sukhanchik (2), griefon (2). |
|
|