Имя: Пароль:
1C
1С v8
Работа с отладчиком
0 33554432
 
07.06.17
12:10
Можно ли как-то задать, что отладчик останавливается при равенстве реквизита определенному значению? Но не в точке, а вообще, глобально.
1 Сильф
 
07.06.17
12:13
(0) Имхо, стандартными средствами нет.
2 Альбатрос
 
07.06.17
12:16
(1) а какие есть не стандартные?
3 Рэйв
 
07.06.17
12:18
(0)Не получится. В разных областях видимости могут быть разные сущности с одинаковым именем
4 ildary
 
07.06.17
12:18
(2) возможно в EDT появится такая фича.
5 Рэйв
 
07.06.17
12:18
(0)А чем точка останова по условию не устраивает?
6 Волшебник
 
модератор
07.06.17
12:20
Можно по пространству программы вызывать функцию проверки, в которой написать:
Если реквизит = значение Тогда
   ВызватьИсключение "чекпоинт";
КонецЕсли;

В свойствах отладчика установить флаг "Остановка по ошибке". При остановке вывести стек вызова и посмотреть, откуда что прилетело.
7 тарам пам пам
 
07.06.17
17:11
Это называется "точка останова по данным". Просят уже черт знает сколько времени, нормальные языки это умеют, но воз и ныне там. В EDT я бы тоже не ждал.

(3) именно поэтому в обычных языках такую точку можно поставить только во время выполнения программы - там ставится watchdog на область памяти, где хранится указанная переменная, и после каждого обращения к этой области проверяется условие.
8 Лефмихалыч
 
07.06.17
17:24
что значит "точка останова глобально"?
как это должно выглядеть?
9 Волшебник
 
модератор
07.06.17
21:54
(7) язык 1С вполне нормален
10 Неверный Параметр И
 
07.06.17
22:05
(7) Ещё один персонаж, не различающий язык и IDE.
11 vvp91
 
07.06.17
22:08
(7) Открою секрет - в отладчике 1С8 с незапамятных времен версии 8.0 есть точка останова по данным. Называется это секретное оружие так, как указано в (5) - "Точка останова с условием".
12 ildary
 
08.06.17
04:18
(11) вот сейчас версии 7.7 обидно было - точка останова с условием была уже в ней.