Хитрости отладки кода 1С

Опубликовал adhocprog в раздел Программирование - Практика программирования

Хитрости отладки кода 1С
Только самые простые задачи не требуют отладки. Для решения сложных задач без отладки в принципе не обойтись. С годами придумал способ упростить этот процесс.
1) Включаем отладку (без точек останова), включаем замер производительности, выполняем отлаживаемые действия, выключаем замер производительности (появится список выполненных команд и он будет подсвечен в коде).
2) Потом устанавливаем точки останова и идем по шагам, т.е. выполняем обычную отладку.
Теперь мы заранее видим какой код будет исполнен (и сколько раз). Это значительно ускоряет процесс отладки сложного, объемного кода.

Когда в реале показываю этот способ коллегам, они не сразу видят выгоду. Но потом говорят, что это вещь :)

Горячие клавиши (записанные на подкорку):
Alt+F2 - поставить/убрать закладку
F2 - перейти к следующей закладка
Shift+F2 - перейти к предыдущей
F9 - поставить/убрать точку останова
Ctrl+Shift+F9 - отключить точку останова

Другие темы по отладке:
Динамическое изменение переменных во время отладки
Обработка для отладки обработок заполнения табличных частей документов
Отладка Web сервисов 1С в картинках
Отладка удаленных сеансов пользователей

См. также

Лучшие комментарии

5. saiten 12.12.2011 16:31
(1) Порядок смотреть при проходе отладчиком. А вот без лишних тыканий оценить прохождения условий - это мысль. За мысль плюсанул.
# Ответить
14. fomix 14.12.2011 13:13
(13) Rustig, Кажется я скачал ее c сайта автора - fixin.narod.ru. Но могу и ошибаться по URL. Он там много чего полезного выкладывает бесплатно. Если там не найдешь пришли в личку мыло -скину
+ 1 [ Rustig; ]
# Ответить
73. bashirov.rs 04.09.2014 09:01
Спасибо за рекомендации! Беру в вооружение!
+ 1 [ adhocprog; ]
# Ответить

Комментарии

1. AnryMc 12.12.2011 11:25
(0) А как понять порядок выполнения? Производительность дает только, что "выполнилось за время"
Ответили: (2) (5)
# Ответить
2. Поручик 12.12.2011 11:53
(1) Это типа для новичков и плюс неполный список публикаций по теме. (0) Про тестирование и отладку печатных форм забыл.
# Ответить
3. Yasen 12.12.2011 14:11
Все равно +
Тоже пользуюсь этой штукой, и вижу что вокруг народ не знает.
# Ответить
4. Yasen 12.12.2011 14:12
Поручик пишет:
неполный список публикаций по теме


А полным поделишься? :)
# Ответить
5. saiten 12.12.2011 16:31
(1) Порядок смотреть при проходе отладчиком. А вот без лишних тыканий оценить прохождения условий - это мысль. За мысль плюсанул.
# Ответить
6. YuriM 12.12.2011 18:39
Идеи для статьи:
1) Как использовать удалённую отладку (не у всех получается);
2) Как включать отладку на сервере (знаю людей, которые про такую возможность не знают вообще).
# Ответить
7. МимохожийОднако 14.12.2011 07:13
Работает ли эта штука при отладке синтаксических ошибок?
# Ответить
8. master_yoda 14.12.2011 08:28
Пользовался давно..... но многие такой фиишки не знают
# Ответить
9. vec435 14.12.2011 09:20
пока не пользовался, но прикольно
# Ответить
10. slas 14.12.2011 09:31
Спасибо за идею, обязательно воспользуюсь
# Ответить
11. cassyan 14.12.2011 11:39
Любопытно. Надо попробовать.
# Ответить
12. fomix 14.12.2011 11:57
Давно пользуюсь обработкой "Продвинутый отладчик для 8.1" от Фиксина - за что автору большое спасибо! Помогает при отладке запросов. Особенно в ЗУПе, где запросы написаны какими-то "титанами от 1С" и осилить их можно только с помощью данной обработки, расчленяя на более мелкие и удобные для понимания прямо по ходу работы программы.
Смело можно включить в список автора
Ответили: (13) (16)
+ 1 [ ir_en; ]
# Ответить
13. Rustig 14.12.2011 13:03
(12) где ее найти?
Ответили: (14)
# Ответить
14. fomix 14.12.2011 13:13
(13) Rustig, Кажется я скачал ее c сайта автора - fixin.narod.ru. Но могу и ошибаться по URL. Он там много чего полезного выкладывает бесплатно. Если там не найдешь пришли в личку мыло -скину
+ 1 [ Rustig; ]
# Ответить
15. Sergoninfostarru 14.12.2011 14:13
Прекрасный метод отслеживания использования процедур как в контексте документа, так и общих модулей. Но пошаговую отладку не отменяет : по этому методу можна только видеть какая процедура и сколько раз используется, а вот последовательность исполнения тут не увидишь. А отладка то и начинается с поиска ошибки, поэтому до выполнения определенных процедур может и не дойти !!!
Ответили: (17)
# Ответить
16. fixin 14.12.2011 14:57
(12) гы, скоро я ее тут размещу. По просьбам трудящихся. Следите за развитием событий.
# Ответить
17. fixin 14.12.2011 14:58
(15) а вы знаете, как в 1С сделать трассировку отдельной строки с помощью условной точки останова? Думаете это невозможно? ;-)
Ответили: (19)
# Ответить
18. opiumdx 14.12.2011 19:51
Спасибо! Никогда не думал в таком ключе, очень интересная мысль... Должно быть неплохой способ отследить выполнение процедур. Надо будет обязательно попробовать на практике.
# Ответить
19. fomix 14.12.2011 21:46
(17) fixin, Колись!
Ответили: (22)
# Ответить
20. curys 14.12.2011 22:48
Замечательная статья. Не зря время провнел за прочтением, новые нюансы узнал. Спасибо автору!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# Ответить
21. dumal 14.12.2011 22:55
Знаете, для тех, кто на 1С пришел из других языков программирования, эти знания сакральными не являются. Тем не менее, спасибо, дойти до этого "с нуля", наверно, непросто
Ответили: (26)
# Ответить
22. fixin 14.12.2011 23:14
(19) скоро, очень скоро, пока на моем сайте ищите, я ведь недавно вернулся на ИС. Скоро все это счастие, мои шедевры будут тут. ;-)
Ответили: (35)
# Ответить
23. alexsiswx 14.12.2011 23:29
Я считаю, если научился пользоваться отладчиком в полную силу, то остальное ерунда...
# Ответить
24. shizobruder 15.12.2011 08:47
Очень полезно бывает)))
# Ответить
25. shizobruder 15.12.2011 08:48
вообще с помощью этой штуки начал разбираться в языке)))
# Ответить
26. highlander 15.12.2011 10:32
(21) dumal, абсолютно с вами согласен. это тонкости работы, которые могут помогать но мало кто их использует
# Ответить
27. DDos76 15.12.2011 15:26
Прикольно. По отдельности про это (замер производительности + отладка по шагам) знал, но чтобы вместе - не думал. Только вот код чаще всего приходится отлаживать который (А очень долго работает) (Б не работает вообще) - т.е. вылетает с ошибкой. Методика уже не прокатит. И наконец, последний гвоздь: все чаще ошибки кроются в запросах. Так, например, некорректно определяется сумма при перемещении из розницы обратно на оптовый склад в УНФ. Ошибку то удалось найти, но сколько это заняло времени... Вот если бы кто предложил методику отладки пакетных запросов по частям - было бы супер.
# Ответить
28. АлексейН 16.12.2011 11:35
Возмем на вооружение, молодец, за идею +
# Ответить
29. Maks_Payn 17.12.2011 13:46
Очень интересно и позновательно! Молодец! Спасибо! ))
# Ответить
30. ogeniv 18.12.2011 11:05
Интересно, надо будет попробовать
# Ответить
32. Veduin 19.12.2011 05:06
Может будет практично! попробуем!
# Ответить
33. and_r 19.12.2011 06:29
Попробовал, плюсов не заметил, но, думаю, найдутся задачи и под это решение! Спасибо!
# Ответить
34. Mopcuk 20.12.2011 06:19
Сейчас попробуем!
# Ответить
35. Збянтэжаны Саўка 20.12.2011 15:39
(22) fixin, дай здесь URL своего сайта, интересно же глянуть, что там у тебя есть
Ответили: (36)
# Ответить
36. fixin 20.12.2011 16:36
(35) fixin.com.ru
Ответили: (37)
# Ответить
38. extremehelp 20.12.2011 22:57
Спасибо очень помогло
# Ответить
39. t_dima 23.12.2011 14:50
Трудно конечно дедушку переучить от того к чему он привык давным давно :)
Как говорится: век живи - век учись!
# Ответить
40. Pashikuss 28.12.2011 10:16
Тоже пользуюсь этой штукой
# Ответить
41. magrib 29.12.2011 14:36
Очень полезно. Ждем от автора новых публикаций. Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)))))
# Ответить
42. Hantinka 04.01.2012 19:21
Очень полезная статья. Спасибо!
# Ответить
43. ipyu 04.01.2012 21:59
Спасибо. Буду знать.
# Ответить
45. sdwggg2 13.01.2012 13:50
узнал кое что новое
# Ответить
46. BalVlad 17.01.2012 09:48
Спасибо. +
# Ответить
48. econom1 30.01.2012 18:29
я вообще в восторге от запуска замера без точек останова
недавно начал работать с 8 после 7, и неоднократно тратил кучу времени например, чтоб найти откуда беруться движения у документа, формирование которых не ловилось отладчиком в обработке проведения. бывало все пройдешь - нет нигде, движения смотрим, а они есть. домовой блин завелся. не знал тогда, что в 8 есть подписки на события.
вот теперь заживем! спасибо!
# Ответить
49. Гость 07.02.2012 20:50
Очень хороший файлик... сэкономил время!!! очень помогло...
надо было срочно и тут как раз мне в помощь.
спасибо автору
# Ответить
50. commo 10.02.2012 14:49
спасибо
# Ответить
51. Nickon 22.03.2012 00:41
Идея в работе неплохая. надо все проверить лично. На практике так сказать.
Спасибо +
# Ответить
52. zachs 13.04.2012 10:25
Отличная статья! Надо тренироваться...
# Ответить
53. ipyu 23.06.2012 08:21
Спасибо, идея на 5.
# Ответить
54. TrinitronOTV 27.11.2012 10:37
большое спасибо, очень пригодиться в работе
# Ответить
55. Lik2707 05.12.2012 05:22
Да, интересная фишка, обязательно надо попробовать :)
Несомненно плюс!
Ответили: (57)
# Ответить
56. evgen1977 05.12.2012 08:38
Да, весьма любопытно. Оставляю на заметку. Автору большое спасибо :)
Ответили: (57)
# Ответить
57. adhocprog 05.12.2012 09:41
(55), (56) спасибо )
# Ответить
58. DoctorRoza 05.12.2012 10:44
Возьму на вооружение!
# Ответить
59. Феерия 05.12.2012 12:23
Спасибо большое! Буду пользоваться!
# Ответить
60. ander_ 06.12.2012 08:07
спасибо! в "копилку".
# Ответить
61. CaSH_2004 08.12.2012 17:51
Странно, но народ не в курсе. Тогда наверно механизм стека вызовов вообще будет шоком для многих :)
+ 1 [ bol; ]
# Ответить
62. tolik_byr 08.12.2012 21:58
АГа, на моей практике есть "программисты" для которых стек вызовов - это новое открытие в области программирования! )))
# Ответить
63. ARL 25.01.2013 11:14
Описанный метод - такой простой и такой эффективный помощник, просто супер! Конечно, он эффективен, когда в коде используется большое количество процедур и функций, например, в громоздкой обработке. Срезу видишь - где "прошлась" отлаживаемая задача. И как результат - тут же определяешь - где надо исправлять.
# Ответить
64. namazi74 17.07.2013 15:29
спасибо! побольше бы таких статей!
# Ответить
65. kruglay 19.07.2013 14:04
Плюс
# Ответить
66. ssa 16.10.2013 22:20
Спасибо,полезно.
# Ответить
67. denis_aka_wolf 31.03.2014 10:21
А в чем тут хитрость??? нечего нового не сказал...
# Ответить
68. adhocprog 31.03.2014 15:19
Хитрость в том, что это существенно облегчает отладку.
Далеко не все это знают.
# Ответить
69. denis_aka_wolf 01.04.2014 08:41
Думаю не делают так только новички. Нормальный разработчик использует различные инструменты для отладки. И точки остановок с условиями и табло и стек вызовов и замер производительности. Код должен работать точнее часов ))) без багов, утечек памяти и с высокой производительностью.
Ответили: (70)
+ 1 [ Иваныч; ]
− 1 [ bxz; ]
# Ответить
70. adhocprog 01.04.2014 11:17
(69) >> Думаю не делают так только новички
В целом да, но.
Я тоже бы так думал, если бы не показывал это программистам. Далеко не новичкам, далеко не слабым.
# Ответить
71. Иваныч 15.05.2014 18:30
Плюс поставил
# Ответить
72. daryz 01.08.2014 08:59
Полезно, спасибо!
# Ответить
73. bashirov.rs 04.09.2014 09:01
Спасибо за рекомендации! Беру в вооружение!
+ 1 [ adhocprog; ]
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл