Имя: Пароль:
1C
1С v8
1C 8.2.14.540 отловить изменение реквизита документа
,
0 Drac0
 
20.06.12
13:43
День добрый.

Возникла странная ситуация: иногда меняется номер документа на определенные данные. База самописная, пишут несколько программеров. Тот, кто развивал функционал не смог найти, из-за чего подобное может быть. Меняться может как при проведении чего-либо, так и какй-то обработкой. Есть ли возможность мониторить изменение этого реквизита и писать время, пользователя и контекст. Журнал ничем не помогает ...
1 zak555
 
20.06.12
13:44
док новый ?

приУстновкеНовогоНомера
2 pumbaEO
 
20.06.12
13:44
ПередЗаписью
Если Объект.Номер <> Объект.Ссылка.Номер Тогда
Изменили
КонецЕсли
3 Maxus43
 
20.06.12
13:45
версионирование прикрутить из БСП например?
4 shuhard
 
20.06.12
13:45
(0)[Журнал ничем не помогает]
как это
в одной записи будет старый и новый  номер
5 Drac0
 
20.06.12
13:51
(1) неновый
(2) перед записью будет реагировать, если менялся номер программно?
(3)опять-таки от программной замены спасет?
(4) ну вот так, прошерстил журнал по этому объекту, и только факт записи и изменения данных
6 zak555
 
20.06.12
13:53
(5) в модуле объекта - да
7 Drac0
 
20.06.12
13:53
(6) А если модуль другого документа или обработка?
8 zak555
 
20.06.12
13:54
(2) зачем так ?

почему не достаточно

Процедура ПередЗаписью (Отказ)


Если Номер <> Ссылка.Номер Тогда


???
9 Drac0
 
20.06.12
13:56
Кстати, система клиент-серверная, клиент тонкий.
10 zak555
 
20.06.12
14:01
(9) и ?
11 Maxus43
 
20.06.12
14:02
(5) >опять-таки от программной замены спасет?
конечно, там пофиг какое изменение
12 Drac0
 
20.06.12
14:07
(10) На всякий случай.
(11) Это хорошо, будем пробовать. А можно передать имя обработки или документа, из которого была замена произведена?
13 Maxus43
 
20.06.12
14:08
(12) нет. там фиксируется КОГДА, ЧТО, КТО изменил
14 Maxus43
 
20.06.12
14:08
короче стандартные вопросы с похмелья...
15 Drac0
 
20.06.12
14:10
(14) Иногда с похмелья сильно интересует КАК ) Ладно, попробуем реализовать что-нибудь полезное.
16 Maxus43
 
20.06.12
14:12
увы, данной информации система не видит, да и не должна...
17 Drac0
 
20.06.12
14:15
(16) Хм, а есть возможность узнать активные окна? Какой документ открыт или обработка в этот момент?
18 mistеr
 
20.06.12
14:16
(0) "не смог найти" - слабо верится. Отладчиком пользоваться не умеют либо мало им платите.
19 Maxus43
 
20.06.12
14:16
на управляемых можно, но на стороне клиента только... а версионировнаие на сервере будет писать всё
20 Drac0
 
20.06.12
14:21
(19) У нас как раз-таки УФ :) Тем более можно ведь все писать в какой-нибудь файлик, тогда проблема сервер/не сервер уже не играет роли.
21 Drac0
 
20.06.12
14:23
(19) Как я понимаю, делается это через ОкнаКлиентскогоПриложения.Получить() ?
22 Maxus43
 
20.06.12
14:23
как ты себе представляеш при каждом действии юзера писать куданить список всех открытых окон без жестокой доработки конфы?
23 ЧашкаЧая
 
20.06.12
14:24
(8) Обычно такое в подписке делают поэтому
Если Объект.Номер <> Объект.Ссылка.Номер Тогда
24 Drac0
 
20.06.12
14:24
(22) Зачем при каждом? Только при изменении нужного реквизита.
25 Maxus43
 
20.06.12
14:28
(21) угу
(24) просто проверка реквизитов будет выполнена на сервере, и как ты там узнаеш какой клиент это сделал и получиш список его форм - я хз чесно
26 Drac0
 
20.06.12
14:44
(25) Но ведь при версионировании на сервер передаётся текущий пользователь, разве нет возможности найти потом клиент по пользователю?
27 Maxus43
 
20.06.12
14:45
клиент может вызвать сервер, но не наоборот ЕМНИП, с сервера на клиент не приедеш
28 Maxus43
 
20.06.12
14:47
короче Объект.записать() не тянет с собой инфы о месте возникновения события, если до этого не стоит например Объект.ДополнительныеСвойства.Вставить("Это сделал я отсюда вот")
29 Drac0
 
20.06.12
14:47
(27) Но ведь обмен данными между ними идет. Теже массивы и простые переменные можно передавать туда-обратно
30 Maxus43
 
20.06.12
14:47
(29) обмен идёт, но сервер не "видит" клиента
31 Maxus43
 
20.06.12
14:48
когда узнаеш (13) - подойдёш к нему и выпытаеш КАК он менял
32 Drac0
 
20.06.12
14:55
(31) или активность его по журналу регистрации посмотреть, т.к. сам человек вряд ли вспомнит :)
(30) Можно же сделать так, чтобы функция, выполняемая на сервере, возвращала флаг на клиент, и уже на нем работать с окнами. Хотя тут надо знать, где запрашивать. А это нам и надо узнать ...
33 Maxus43
 
20.06.12
15:09
(32) >>Хотя тут надо знать, где запрашивать. А это нам и надо узнать
тото и оно.
Посему - версионирование.
ЖР - уже не нужен будет
34 Drac0
 
20.06.12
15:10
(33) Спасибо за помощь! Буду пробовать.
35 zak555
 
20.06.12
18:06
(23) в подписке Источник, а не объект
36 Serg_1960
 
20.06.12
18:20
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.