Имя: Пароль:
1C
 
Логирование действий
0 repin_mike
 
13.07.18
09:39
Нужно отслеживать некоторые действия некоторых пользователей, хранить дата/время события и текст. Так вот я что-то не могу сообразить какие объекты метаданных для этого использовать. Вроде бы не справочник, т.к. ссылочный тип ощущается более "тяжелым" нежели просто запись в регистре.  Точно не оборотный регистр накопления, т.к. нету документа-регистратора. Получается регистр сведений. Если периодический, то за одну секунду не запишутся два события. То же самое, если время запихнуть в измерение. Получается и время и событие должны быть ресурсами. Так вроде работает, но форма записи открывается пустая (упр формы), если нет ни одного измерения и нет периода. Или вместе со временем создать ещё уникальный идентификатор и в измерения засунуть, но это шляпа какая-то.  Подскажите кто как делал.
1 shadow_sw
 
13.07.18
09:40
ЖР чем не устраивает?
2 catena
 
13.07.18
09:41
"Если периодический, то за одну секунду не запишутся два события."

У вас один пользователь за секунду делает два действия?
3 vde69
 
13.07.18
09:43
регистр сведений,

измерения:
дата
пользователь
тип события
объект
УИД

реквизиты
описание....


за счет поля УИД поборишь и периодичность и сможешь использовать его как ссылка если необходимо
4 sechs
 
13.07.18
09:47
(2) Бесплатно научу твоих пользователи открывать несколько 1С одновременно (:
5 Nikoss
 
13.07.18
09:47
(0) Вроде бы не справочник, т.к. ссылочный тип ощущается более "тяжелым" нежели просто запись в регистре...

Чем это он тяжелее ощущается?
6 sechs
 
13.07.18
09:50
(5) Очисткой неактуальных логов после, скажем, года использования
7 unregistered
 
13.07.18
09:55
На самом деле для таких вещей есть журнал регистрации.
Но если больше заняться нечем, то регистр сведений.

Вариант решения в (3). Можно заменить УИД на измерение "МоментВремени", тип число, длина 15.

Значение этого измерения устанавливать при помощи функции ТекущаяУниверсальнаяДатаВМиллисекундах().

Хотя в отличии от варианта с УИД, такой метод не даёт 100%-ной гарантии, что один пользователь не сумеет таки выполнить однотипное событие в одну миллисекунду. Подобный риск можно оценить только зная особенности вашей реализации.
8 repin_mike
 
13.07.18
09:56
(2) Они талантливые, да
9 Мыш
 
13.07.18
09:57
(0) Добавь измерение "Номер сеанса". Уникальность обеспечена.
10 repin_mike
 
13.07.18
09:57
(7) Спасибо. Получается УИД надо тянуть в измерения.
11 polosov
 
13.07.18
09:57
(0) Версионируй, доминируй, унижай!
12 unregistered
 
13.07.18
09:57
(6) И какая разница между чисткой справочника и регистра?...
Если люди заморачиваются с отдельной таблицей БД, вместотого, чтобы использовать журнал регистрации, то возможно, что чистка логов вообще не предполагается.
13 Малыш Джон
 
13.07.18
09:58
(8) так эти ж действия чем-то различаются? добавь то чем различается в измерение.
если пользователь делает абсолютно одно и то же действие с одними и теми же данными, да ещё и в 1 секунду ,то зачем в логах два раза его писать?
14 Мыш
 
13.07.18
09:59
(12) Справочник немного медленнее чистится. Т.к. платформа пытается контролировать ссылочную целостность.
15 sechs
 
13.07.18
10:00
(12) Поклонник запросов в циклах? (:
16 Мыш
 
13.07.18
10:01
(10) Уид в измерении то же самое что и ссылка у справочника. Только запись набора рс медленнее, чем запись элемента справочника, т.к. контроль по измерениям.
17 Nikoss
 
13.07.18
10:02
(14) с каких пор "Объект.Удалить()" контролирует ссылочную целостность?
18 sechs
 
13.07.18
10:03
(16) А зачем записывать с замещением, если УИД дает уникальность?
19 Мыш
 
13.07.18
10:04
(17) Ты прав.
20 Мыш
 
13.07.18
10:06
(18) Какая разница, как записывать? Платформа не знает, что уид уникален.
21 toypaul
 
гуру
13.07.18
10:10
(0) в последних версиях платформы появилось логирование на уровне платформы
22 toypaul
 
гуру
13.07.18
10:10
23 sechs
 
13.07.18
10:12
(20) Браво.
24 Deon
 
13.07.18
10:17
Против Справочника ещё может быть то, что создастся кластерный индекс по Ссылке, который, в принципе, нафиг не нужен.
В РС ты создашь индекс в зависимости от задачи - в первую очередь по Пользователю, Дате или Объекту, что хорошо.
25 unregistered
 
13.07.18
10:22
(15) > Поклонник запросов в циклах?

Что?... Если ты не знаешь как получить список элементов справочника для удаления, кроме как запросом в цикле, это не означает, что таких способов нет.
26 Мыш
 
13.07.18
10:22
(23) Ну блин. Набор.Записать(Ложь) не отключает контроль по измерениям при записи.

(24) Это скорее за справочник, т.к. его можно сделать только с одним индексом.
27 Deon
 
13.07.18
10:27
(26) Так непериодический РС ведь тоже с одним индексом живет
28 Мыш
 
13.07.18
10:29
(27) Там индекс сложнее. Все измерения против единственной ссылки.
29 Deon
 
13.07.18
10:35
(28) А, это, конечно, да.
30 sechs
 
13.07.18
10:35
31 sechs
 
13.07.18
10:36
(25) Не запрашивать. Удалять.
32 uno-group
 
13.07.18
10:39
А нужно ли контролировать каждое действие в секунду. ИМХО интересен совокупный результат этих действий. Пользователь вошел в документ удалил 20 строк потом 10 вернул назад в итоге в документе изменились 10 строк. а потом закрыл документ не записывая. Или зашел в отчет полчаса выставлял фильтры и т.п. а отчет так и не сформировал. Это же сколько потом нужно будет времени потратить чтобы посекундный лог анализировать.
33 unregistered
 
13.07.18
11:28
(31) Тогда при чем тут запросы?... Ты уж определись.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn