Вход | Регистрация
 

Как с помощью сохранения стека отладить код? У кого был опыт.

Как с помощью сохранения стека отладить код? У кого был опыт.
Я
   Обработка
 
12.07.21 - 14:44
Есть база Розница с кучей дописок.
Документ Заказ прилетает из битрикса.
В нем добавляется услуга "доставка"?
Проблема в том что в некоторых доках по 2 строк доставки.
Перепахали все участки кода где создается где перезаписывается где редактируется документ пока не нашли где именно это происходит.
Пока только при записи (Передзаписью) отловил и в журнал записал когда и кем это создается.
Но это ни о чем не говорит. Есть куча обработок и не понятно где и как дублируется запись.
Есть автообработки регламентные которые работают по заказу с ее статусами.

Как отловить стек откуда дубль  пришел. С кокой обработки или функции???
Пока поняли что битрикс точно двойников не присылает. Уверенность на 95% )))
   Вафель
 
1 - 12.07.21 - 14:46
А включить версионирование?
   Вафель
 
2 - 12.07.21 - 14:46
Всем регламентам и сервимам  назначить разных юзеров
   palsergeich
 
3 - 12.07.21 - 14:49
Старым дедовским методом - в ТЖ на событии dbmssql фильтром Update%ИмяТаблицы
Там если повезет и стек будет
Ну и это тоже (2)
   Обработка
 
4 - 12.07.21 - 14:52
(1) Включено. Не помогает.
Юзеров много и все это хаотично повяляется.
   Hmster
 
5 - 12.07.21 - 14:55
(4) смотришь по версионированию когда появляется, по обычному смотришь что за сеанс это был. человек или обработка по расписанию
   Обработка
 
6 - 12.07.21 - 14:58
(5) И сеанс известен и юзер известен и время. Но это ничего не дает. У юзера нет смысла спрашивать отлов событие одно время а анализ происходит после позже.
   Обработка
 
7 - 12.07.21 - 14:59
Есть вероятность что не все внешние доп обработки анализировал. Или не внимательно прошелся по коду.
   Вафель
 
8 - 12.07.21 - 15:02
ну так юзер или обмен делает уже определился?
   DrZombi
 
9 - 12.07.21 - 15:06
(4) Всем запретить, ожидать взбучки, если не наступил, считай лишний автомат отрубил :)
   mistеr
 
10 - 12.07.21 - 15:14
(0) Вызвать исключение?
   mistеr
 
11 - 12.07.21 - 15:16
(10) + Контекст прокинуть через ДополнительныеСвойства
   Вафель
 
12 - 12.07.21 - 15:21
ну можно еще в передзаписью стек собирать типа
Попытка
 а = 1/0;
Исключение//тут обираем стек
КонецПопытки

   Обработка
 
13 - 12.07.21 - 18:23
(12) Читал такое сегодня попробую внедрить этот механизм.
   H A D G E H O G s
 
14 - 12.07.21 - 18:26
ИнформацияОбОшибке()

Там можно собрать стек
   Вафель
 
15 - 12.07.21 - 20:01
Единственное что эта операция не быстрая. Поэтому на постоянке такого лучше не делать
   Обработка
 
16 - 13.07.21 - 05:24
(15) Да конечно в курсе.
   Адинэснег
 
17 - 13.07.21 - 06:40
(0) поставь отказ в записи объекта с двумя доставками
   Обработка
 
18 - 13.07.21 - 06:56
(17) Не молу ибо это может происходить не интерактивно
   Обработка
 
19 - 13.07.21 - 06:58
Прописал так:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если Услуги.Количество() >1 тогда
        Попытка
           ВызватьИсключение "Любой текст";
        Исключение
           ПолныйТекстОшибкиВключаяСтекВызовов = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
        КонецПопытки;


Получил что ПолныйТекстОшибкиВключаяСтекВызовов  = {Документ.ЗаказПокупателя.МодульОбъекта(2723)}: Любой текст¶           ВызватьИсключение "Любой текст";

И что мне это дало? Собственно ничего (((
   acanta
 
20 - 13.07.21 - 07:11
А можно написать
Отказ = истина;
Записьжурналарегистрации("сообщение");
Вместо попытки?
   Галахад
 
21 - 13.07.21 - 07:20
(19) Платформа древняя?
   DrZombi
 
22 - 13.07.21 - 07:26
(19) Вы начинаете понимать, что бы пресечь все непонятно, надо это отловить и ограничить.

- Регламенты, вы смогете ограничить сами.
 - Обработки внешние, вам надо запретит запускать (внешние, которые открывает сам пользователь)
- Обработки по феншую БСП вы способны сами отслеживать, они подконтрольны :)
   DrZombi
 
23 - 13.07.21 - 07:29
+(22) >>> внешние, которые открывает сам пользователь

Через файл - "Открыть"
   TormozIT
 
24 - 13.07.21 - 07:39
В обычном приложении стек добавляется в описание ошибки только начиная с 8.3.19


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.