Имя: Пароль:
1C
1С v8
Как отследить что вызвало изменения в документе
,
0 Cerera
 
26.03.13
08:35
В документах "заказПокупателя" иногда пропадают цены. То есть по вине каких-то бизнес процессов или там обработок или чегото там в дописанной УТ, заказы открываешь, а цен в них нет на некоторые позиции, хотя до этого были, поскольку заказ согласован, Проведён а это возможно сделать только при установленных ценах. Как отследить что является причиной исчезновения цен? Конечно же нужно поставить ловушку в "ПередЗаписью" и проверять строчки цен. И если находим нулевую цену, то выводим информационное сообщение. Только какое? Нужно ведь вывести вызывающий объект а это может быть и обработка и отчет и бизнес процесс ... Так бы если на чеку сидеть в отладчике, то понятно. А когда каждый из 30-40 пользователей может быть инициатором такого процесса.
1 kosts
 
26.03.13
08:39
(0) Сузь круг подозреваемых.
При записи с нулевыми ценами выдавай страшное сообщение, что бы сразу звонили. Потом отладишь конкретный сеанс...
2 Cerera
 
26.03.13
08:40
(1)тоже вариант.
3 vde69
 
26.03.13
08:42
я для подобных целей вставлял в дополнительные свойства обьекта строку (везде где есть запись обекта).

типа такого
Документ.ДополнительныеСвойства.Добавить("Отладка_Источник", "БП согласование, процедура обьекта "Сформировать"")

далее в подписке писал в журнал регистрации косяки плюс это доп свойство
4 Галахад
 
гуру
26.03.13
08:42
В УТ есть возможность запрета продавать по нулевым ценам.
5 kosts
 
26.03.13
08:54
(0)
Возможно запись идет с установленным признаком "обмен данными", может у кого-то есть доступ к групповой обработке?
6 tdm
 
26.03.13
09:00
(0) >>Конечно же нужно поставить ловушку в "ПередЗаписью" и проверять строчки цен. И если находим нулевую цену, то выводим информационное сообщение.
лучше запись в журнал регистрации делать) есть такой метод а потом ловить - кто и зачем)
7 tdm
 
26.03.13
09:01
(1) сообщение могут не читать =(( если букв особенно много)
8 Cerera
 
26.03.13
09:01
(4)знаем. но тут другая ситуация. цены потом кудато деваются в результате некорректной работы чегото.
(5)может быть.
(6)запись в ЖР чего?
(3)а как определял кто инициатор?
9 ДенисЧ
 
26.03.13
09:02
версионирование включить не предлагать? :-)
10 vde69
 
26.03.13
09:13
(8) я-же говорю, везде где есть запись вставлял в код

типа

// это только для отладки, для понимания с каким именно объектом "задача" мы работаем
ДополнительныеСвойства.Вставить("ID_ОбъектаВПамяти", "Источник обьекта - Форма по умолчанию");

сюда-же вставляй и все что угодно, хоть текущего пользователя, хоть занчения переменных... а потом в подписке все это анализируешь


кстати и для простой отладки удобно,
11 vde69
 
26.03.13
09:17
(10) + и еще одно, я для подобных случаев завел параметр сеанса "Откладка", для того что-бы быстро включать или выключать участки кода отладки и записи

Если ПараметрыСеанса.Отладка = Истина Тогда
 // тут анализ и т.д.


тем самым ты можешь устанавливая этот параметр только отдельным пользователям исключить кучу мусора и не тормозить остальных.
12 Serg_1960
 
26.03.13
09:34
vde69 , ты предлагаешь "везде где есть запись" вставить добавочный код автору, тому самому, который не может найти код, который "пишит" ему нулевые цены... имхо - нелогично.
13 vde69
 
26.03.13
09:41
(12) да именно это я и предлогаю, а если этих доп свойст нет - значит это ЛЕВЫЙ код.

Это называется "идти путем исключения"
14 Serg_1960
 
26.03.13
09:45
Хмм... а по мне, так проще перед записью проведенного документа с нулевыми ценами оставить Отказ=Истина и запись в ЖР. И всего делов то. Резать - так резать по живому без наркоза. Быстно и надёжно.
Закон Брукера: Даже маленькая практика стоит большой теории.