1C 8.2.14.540 отловить изменение реквизита документа #616362


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