Имя: Пароль:
1C
 
Отследить использование элементов справочника
0 proger2021
 
15.05.25
10:00
Опишу проблему, может подскажите что делать.
Есть типовой справочник Внешние отчеты, обр, и обр заполнения. Он, как обычно у всех, до безобразия разбух. Есть куча дублей одного и того же. Программисты дорабатывают разные дубли и в результате хаос.
Хочу накопить статистику кто и что используют, пообщаться с пользователями почему они именно этот дубль используют и не другой и т.д. и т.п. и таким образом навести порядок.
1 Злопчинский
 
15.05.25
10:01
Одобряю, действуй
2 Волшебник
 
15.05.25
10:01
Это задача для системного аналитика. Вы не справитесь.
3 Fish
 
гуру
15.05.25
10:03
Тебе нужно протоколирование работы пользователей.
4 proger2021
 
15.05.25
10:05
(3) Как запротоколировать что пользователь считал элемент справочника?
5 Волшебник
 
15.05.25
10:09
(4) Вам нужно фиксировать другое событие, например, открытие формы, формирование отчёта
6 Fish
 
гуру
15.05.25
10:12
(4) Посмотри, как в типовом ДО реализовано. https://its.1c.ru/db/doc30#content:221:hdoc
7 proger2021
 
15.05.25
10:13
(5) Пользователи многими способами могут обращаться к этому справочнику. Программисты могут просто запросом дёрнуть данные из него где нить во внешней обработке про которую никто не знает.
8 СвинТуз
 
15.05.25
10:14
(4)
Вписать в каждый объект справочника процедуру
фиксирующую факт обращения к ней и пользователя.
9 СвинТуз
 
15.05.25
10:15
Ну и дату до кучи
10 Fish
 
гуру
15.05.25
10:15
(7) А программисты тут причём?
11 proger2021
 
15.05.25
10:18
(10) Ну типа могут например в своей обработке по кнопке открыть внешнюю из этого справочника. Есть рабочий стол где куча ссылок на внешние.
12 Tatitutu
 
15.05.25
10:17
(0) поставь запрет на все или удали/переместите во внешние
И сообщение при открытии формы списка "Если не нашли ,но нужно
Пишите в It"

И жди...наберитесь терпения
Кому нужен отчёт- напишут, вот его проанализируешь и вернёшь в строй

Будь готов к тому, что ничего и никому не нужно)
13 Волшебник
 
15.05.25
10:18
(12) На его уровне полномочий за такое можно и огрести
14 СвинТуз
 
15.05.25
10:19
(7)
Из чего что дернуть? И зачем?
Не запустить, а дернуть данные?
15 proger2021
 
15.05.25
10:19
(12) Пока не созрел на такие жесткие меры :)
16 proger2021
 
15.05.25
10:19
(14) Ну запросом вроде никто не запрещает дёрнуть и запустить
17 СвинТуз
 
15.05.25
10:20
(12)
Варварство.
18 Мультук
 
гуру
15.05.25
10:20
(0)

1) >> Он, как обычно у всех, до безобразия разбух
Не нужно обобщать

2) Зачем же вы как руководитель довели до бардака,
когда программисты разводят дубли и не получают люлей ?

3) Если вы не начальник -- зачем вам всё это ?
Бегите оттуда
19 Злопчинский
 
15.05.25
10:21
(0) вы ошиблись в описании задачи. Не "программисты" - а "погромисты".
20 proger2021
 
15.05.25
10:22
(18) 1) Беру свои слова обратно
2) 3) Ну... так звёзды сошлись...
21 Злопчинский
 
15.05.25
10:22
(17) а иначе - никак. шаг влево-вправо - расстрел.
иначе будешь сидеть и за всеми сопли подтирать.
22 proger2021
 
15.05.25
10:22
(19) Да, отличное замечание, надо запомнить
23 СвинТуз
 
15.05.25
10:25
(21)
Описал другой способ. Трудоемкий для программиста, но бесконфликтный.
24 СвинТуз
 
15.05.25
10:27
Не все так сложно как кажется.
Если использовать процедуру из внешнего модуля,
то все сводится к внесению в каждый отчет одной строки.
25 Волшебник
 
15.05.25
10:30
(24) Предлагаю не портить оригинальный отчёт, а создать новый отчёт с суффиксом: "- с протоколированием доступа"
26 proger2021
 
15.05.25
10:32
Можно на SQL сервере каконить тригер написать. Но не смогу определить пользователя. Хотя бы статистику использования соберу. Или техжурнал натравить. Может был у когонить опыт в этом направлении?
27 СвинТуз
 
15.05.25
10:33
(25)
Мы с УПП переходили. Изучали кучу мусора.
Сделал так. Ни одного звонка не было.
Звонили сами если нужно. Задавали вопросы уже конкретным людям.

Удвоим количество отчетов? )))

Возможно извратится и сделать все в модуле объекта
справочника "ВнешниеОтчеты". Не думал об этом.
28 СвинТуз
 
15.05.25
10:35
(26)
Не болтайте ерундой )))
Удачи.
29 Fish
 
гуру
15.05.25
10:35
(11) И? Пусть они открывают, как угодно. Речь же идет, как я понял, о выяснении того, какими именно обработками и отчетами пользуются пользователи.
30 Злопчинский
 
15.05.25
10:36
(8) пользователь открыл - посмотрел на форму и закрыл... Считать это использованием или нет? Придется вставлять "счетчик" в процедуру "выполнения" отчета. А поГРОмисты у автора - она же как бог на душу пошлет называют процедуры, стартующее выполнение отчета...
31 Fish
 
гуру
15.05.25
10:38
(26) Ещё раз повторю. Опыт есть. Опыт положительный. См (6). Легко применяемое и вполне достаточное для таких задач решение.
32 proger2021
 
15.05.25
10:40
(29) Да, всё правильно. Надо собрать статистику по использованию элементов справочника. Могут ничего не открывать. Программисты могут дёрнуть запросом и взять из элемента только макет СКД для заполнения и т.д и т.п.
33 СвинТуз
 
15.05.25
10:41
(30)
Есть такие, которые месяцами не открывают.
Многие только при закрытии квартала.
Можно вести историю не хранить текущее значение.
34 Fish
 
гуру
15.05.25
10:42
(32) Ещё раз спрошу: у тебя программа для программистов или для пользователей?
35 Tatitutu
 
15.05.25
10:42
Расширение

Форма списка -
Процедура СписокВыбор(

//Добавить запись в лог
Кто и когда
36 СвинТуз
 
15.05.25
10:42
(30)
ТС бот. Или Тролль ))) ИМХО.
Не переживайте за него.
37 proger2021
 
15.05.25
10:44
(34) УПП для пользователей. Есть справочник типовой с внешними отч и обр. Программист может для пользователя запросом дёрнуть СКД и использовать для заполнения.
38 СвинТуз
 
15.05.25
10:44
Не решает вопрос, а поддерживает обсуждение.

На создание объекта, тоже можно повесить. Одну на всех в модуле.
Не подхватывает? = поговорить охота.
39 proger2021
 
15.05.25
10:45
(36) Почему вы так решили?
40 proger2021
 
15.05.25
10:45
(38) Пока не увидел ни одного решения в сообщениях
41 Fish
 
гуру
15.05.25
10:45
(37) "Программист может для пользователя запросом дёрнуть" - Какая жесть. У вас пользователи каждый раз просят программистов сформировать им отчёт?
42 Fish
 
гуру
15.05.25
10:46
(40) Я тебе дал решение ещё в (6). Похоже, (36) прав.
43 Волшебник
 
15.05.25
10:46
(40) Пока не увидели производственной необходимости в задаче.
44 СвинТуз
 
15.05.25
10:46
(39)
Только говоришь.
45 СвинТуз
 
15.05.25
10:47
(41)
ну да. "Кто на ком стоял?" (С)

)))
46 proger2021
 
15.05.25
10:48
(43) В этом справочнике около 2000 элементов. Одна обработка 11 раз в разных папках. Разные пользователи используют разные обработки из этих 11. Думаю есть необходимость.
47 Fish
 
гуру
15.05.25
10:49
+(41) А программисты настолько тупы, что никак не могут разработать для пользователей отчёт и каждый раз "запросом дёргают" данные :))))
48 proger2021
 
15.05.25
10:49
(44) в (26) предложил для обсуждения наиболее реальный вариант.
49 СвинТуз
 
15.05.25
10:50
(46)
Напишите триггер на SQL )))
50 Fish
 
гуру
15.05.25
10:50
(46) Скажи честно, ты ссылку из (6) открывал?
51 proger2021
 
15.05.25
10:52
(50) Похоже вы не поняли проблематику. Попробуйте в ДО дёрнуть запросом и посмотрите как это отразится в протоколировании.
52 d4rkmesa
 
гуру
15.05.25
10:52
(0) Ну, например, поставьте задачу перенести эти отчеты в расширение и отключайте порциями по мере переноса.
53 СвинТуз
 
15.05.25
10:53
(0)
- Дорогой. Зачем смотришь на мои права? Что думаешь если грузин, то купил? НЭТ! Брат на день рождения подарил.
54 proger2021
 
15.05.25
10:53
(52) А это хорошая мысль, надо обдумать. В УПП получиться это сделать в расширении?
55 Fish
 
гуру
15.05.25
10:55
(51) Если у вас программисты настолько тупы, что не могут разработать отчет для пользователя и каждый раз дергают данные консолью - то тут вам ничего не поможет.

И хватит уже троллить. В (0) речь шла о том, чтобы выяснить, какие отчеты используют пользователи. А теперь ты начинаешь твердить про то, какие объекты базы дёргают эти отчёты и произвольные запросы. Это вообще из другой оперы.
56 d4rkmesa
 
гуру
15.05.25
10:56
(54) Хмм, без повышения режима совместимости  - нет.
57 proger2021
 
15.05.25
11:00
(55) "В (0) речь шла о том, чтобы выяснить, какие отчеты используют пользователи"

Это где вы прочитали такое в (0)?

Там написано "Хочу накопить статистику кто и что используют"
58 Fish
 
гуру
15.05.25
11:01
(57) ..."типовой справочник Внешние отчеты, обр, и обр заполнения"

..."Хочу накопить статистику кто и что используют, пообщаться с пользователями почему они именно этот дубль используют и не другой".

Тебе не нужна статистика обращений к этому справочнику. Тебе нужна именно статистика использования отчетов и обработок из этого справочника. Пока ты этого не поймёшь, ты проблему не решишь.
59 proger2021
 
15.05.25
11:05
(58) "Тебе не нужна статистика обращений к этому справочнику. Тебе нужна именно статистика использования отчетов и обработок из этого справочника."

Понятно, это были просто ваши домыслы. Я в (0) написал ровно то что мне надо.
60 Волшебник
 
15.05.25
11:07
(59) Мальчик, отойди от компьютера.
61 Fish
 
гуру
15.05.25
11:21
(59) Ну раз ты не хочешь слушать советы тех, кто уже решил такую же проблему, то продолжай искать. :))
62 lucky_
 
15.05.25
11:26
(59) если вдруг решишь, что (58) прав, то можно сделать так:
на форме списка внешних обработок в событии "СправочникСписокВыбор" пишешь запись в регистр.
потом собираешь статистику.
да, она кривая, но лучше, чем никакой.
по ней хотя-бы можно исключить те, которые не используются.
у нас эта хрень внедрена года три. иногда оказывается полезной.
все остальные варианты, предложенные в этом топике тоже были рассмотрены, но помечены как Оверинжиниринг, так как ни один из вариантов не закрывает все потребности, но при этом требует овердофига доработок. (в т.ч. (6))
63 Garykom
 
гуру
15.05.25
11:29
(62) триггер на скульную базу решит проблему
и никакого оверинжиниринга
64 lucky_
 
15.05.25
11:36
(63) условия триггера?
65 Garykom
 
гуру
15.05.25
11:44
(64) а ты хорош
согласен оверинжиниринг
триггеров on select штатно нет в скулях обычно
только полные логи всех запросов а там искать конкретную табличку это такое
66 Климов Сергей
 
15.05.25
11:48
(0) Недавно на глаза попалось, в БСП 3.1.11 это как-то сделали. У вас УПП, но идею можно подсмотреть.
https://its.1c.ru/db/bsp3111doc#content:2948:hdoc:issogl1_%D0%B0%D1%83%D0%B4%D0%B8%D1%82_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0_%D0%BA_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC
67 lucky_
 
15.05.25
11:56
(66) "в БСП 3.1.11 это как-то сделали."
что такое "ЭТО" в вашем контексте?
ЖР или версионирование?
как ЖР и версионирование поможет в (0)?
68 Климов Сергей
 
15.05.25
12:02
(67) Речь не о ЖР и не о версионировании.
69 Garykom
 
гуру
15.05.25
12:03
(68) вероятно это тот же код аля "замер производительности" в формах при открытии
70 lucky_
 
15.05.25
12:06
(68) ты точно читал что-то кроме заголовка?
71 lucky_
 
15.05.25
12:08
(69) если это так-то выглядит полезным.
72 Garykom
 
гуру
15.05.25
12:09
может ТС просто во все обработки добавить свою строчку кода?
которая будет писать кто, когда и откуда открывает/запускает
прописать во все обработки можно почти автоматически
73 lucky_
 
15.05.25
12:12
(72) "прописать во все обработки можно почти автоматически"
эмм?
74 Garykom
 
гуру
15.05.25
12:13
(73) есть средства разборки/сборки .epf
а строчку в текстовый файл добавить не проблема
75 lucky_
 
15.05.25
12:15
(74)"а строчку в текстовый файл добавить не проблема"
Если нет событий "ПриОткрытии()","ПриКомпоновкеРезультата", "КнопкаВыполнитьНажатие"?
парсить и создавать программно скриптом?
немогу сванговать((
76 Garykom
 
гуру
15.05.25
12:16
(74)+ v8unpack
77 Garykom
 
гуру
15.05.25
12:16
(75) можно тупо во все процедуры/функции с ее именем в лог
да будет много записей но и хрен с ним
78 lucky_
 
15.05.25
12:19
(72) ты реально этот кейс делал? я попробовал однажды.
нехватило усидчивости и желания. (Глаза боятся).
если есть готовое решение-могу купить (если продашь)
79 Garykom
 
гуру
15.05.25
12:20
(78) делал не именно это а подобное
надо было в куче мест отрефакторить (переименовать объекты) а было лень руками
80 Garykom
 
гуру
15.05.25
12:22
(78) не мое но ня
https://infostart.ru/1c/tools/2018310/
81 lucky_
 
15.05.25
12:24
(80) такая у мну есть.
нет в ней кнопки "добавить свой код в начало/конец модуля.")
82 Garykom
 
гуру
15.05.25
12:25
(81) дык допиши ))
83 Мультук
 
гуру
15.05.25
12:26
(75)

А чего ванговать ?
Модуль объекта при создании объекта будет в любом случае инициализирован.

Дописываем вызов " в самый низ"


Модуль объекта обработки (например)


Сообщить("Hello world");                
МойОбщийМодуль.ЗаписьАудита("Обработка7777");
84 lucky_
 
15.05.25
12:26
(82) блин. задумался. выглядит полезным. особенно если  в нерабочее время и под пиво.
85 lucky_
 
15.05.25
12:38
(83) если управляшка открывается? в ПриСозданииНаСервере() в какое место писать?
это только кажется, что всё просто.
86 StanLee
 
15.05.25
12:40
отключи все внешние отчеты и записывай кто тебе по какому потерявшемуся отчету позвонил и сразу спроси как часто он его использует и с каким параметрами если они там есть..
а освободившееся время потрать на кофе, чтобы подтолкнуть мозги к выбору действительно нужной задачи
87 lucky_
 
15.05.25
12:42
(85) управляшка во внешних не может быть.(если конфа на обычных) фигню написал.
88 proger2021
 
15.05.25
13:28
(65) В ТЖ же можно фильтр поставить только по одной таблице. Но всё равно надо заморачиваться, чем то парсить  и т.д.

...
<event>
	<eq property="Name" value="DBMSSQL"/>
	<like property="sql" value="%Reference43454%"/>
</event>
...
89 Волшебник
 
15.05.25
23:05
(88) Вы не сопоставляете сложность решения задачи и её производственную необходимость.
90 lucky_
 
16.05.25
08:15
(83) нет смысла. эффект ровно тот же, что и в (62)
91 lucky_
 
16.05.25
08:52
(82)сделал 2й инструмент, который меняет код модулей/форм/макетов у выгруженных обработок. но "прованговать" так и не вышло.
практического применения пока не нашёл(
зато поковырялся)
92 Fish
 
гуру
16.05.25
09:07
А самое смешное, что, например, те же дополнительные печатные формы из справочника ДополнительныеОтчетыИОбработки, дергаются при любом открытии документа, имеющим печатные формы, при инициализации команд печати.

Что ничего не говорит об использовании конкретной печатной формы. Но автор ещё этого не понял :)))
93 mmg
 
16.05.25
09:23
(0) Попросить ИИ добавить логгирование рядом с каждым запрос.выполнить().
Статистику, кстати, можно будет тем же ИИ проанализировать. Если в двух обработках(отчетах) выполняются одни и те же запросы, тогда это кандидат на дубль.
Общение с пользователями на предмет почему они использует этот дубль тоже можно поручить ИИ
94 ptiz
 
16.05.25
09:16
(0) А зачем? Сейчас можно причесать, но бардак потом снова разрастется. Для начала, надо поменять общую организацию работы, чтобы предотвратить разрастание бардака в будущем - это сделано?
95 Волшебник
 
16.05.25
09:32
(93) А можно поручить ИИ решить проблему из сабжа и чтобы он сам выбрал метод решения, всё сделал и всё бесплатно?
96 mmg
 
16.05.25
09:39
(95) Google и OpenAI наперегонки обещают на днях выкатить такое. Может у них и получится. Но можно и не ждать и надеяться, а сделать, как я сказал
97 mmg
 
16.05.25
09:38
(95) А что значит бесплатно? За compute (рабочее время вычислительного оборудования) надо платить так или иначе
98 Волшебник
 
16.05.25
09:40
(97) Поручите ИИ решить задачу и использовать минимум компьютерного времени.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой