IE2017

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

Программирование - Практика программирования

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

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

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

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

См. также

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


А полным поделишься? :)
5. Сергей Самошин (saiten) 214 12.12.11 16:31 Сейчас в теме
(1) Порядок смотреть при проходе отладчиком. А вот без лишних тыканий оценить прохождения условий - это мысль. За мысль плюсанул.
Иваныч; adhocprog; gaglo; Rustig; +4 Ответить
6. Юрий M (YuriM) 21 12.12.11 18:39 Сейчас в теме
Идеи для статьи:
1) Как использовать удалённую отладку (не у всех получается);
2) Как включать отладку на сервере (знаю людей, которые про такую возможность не знают вообще).
dynamicsystems; Дмитрий_71; +2 Ответить
7. Александр Дмитриев (МимохожийОднако) 116 14.12.11 07:13 Сейчас в теме
Работает ли эта штука при отладке синтаксических ошибок?
8. Мастер Йода (master_yoda) 27 14.12.11 08:28 Сейчас в теме
Пользовался давно..... но многие такой фиишки не знают
9. Владимир Чаклин (vec435) 15 14.12.11 09:20 Сейчас в теме
пока не пользовался, но прикольно
10. Slas (slas) 22 14.12.11 09:31 Сейчас в теме
Спасибо за идею, обязательно воспользуюсь
11. cassyan (cassyan) 14.12.11 11:39 Сейчас в теме
Любопытно. Надо попробовать.
12. Fomix (fomix) 23 14.12.11 11:57 Сейчас в теме
Давно пользуюсь обработкой "Продвинутый отладчик для 8.1" от Фиксина - за что автору большое спасибо! Помогает при отладке запросов. Особенно в ЗУПе, где запросы написаны какими-то "титанами от 1С" и осилить их можно только с помощью данной обработки, расчленяя на более мелкие и удобные для понимания прямо по ходу работы программы.
Смело можно включить в список автора
13. г. Казань Рустем Гумеров (Rustig) 795 14.12.11 13:03 Сейчас в теме
14. Fomix (fomix) 23 14.12.11 13:13 Сейчас в теме
(13) Rustig, Кажется я скачал ее c сайта автора - fixin.narod.ru. Но могу и ошибаться по URL. Он там много чего полезного выкладывает бесплатно. Если там не найдешь пришли в личку мыло -скину
15. Сергей (Sergoninfostarru) 2 14.12.11 14:13 Сейчас в теме
Прекрасный метод отслеживания использования процедур как в контексте документа, так и общих модулей. Но пошаговую отладку не отменяет : по этому методу можна только видеть какая процедура и сколько раз используется, а вот последовательность исполнения тут не увидишь. А отладка то и начинается с поиска ошибки, поэтому до выполнения определенных процедур может и не дойти !!!
16. Осипов Сергей (fixin) 3570 14.12.11 14:57 Сейчас в теме
(12) гы, скоро я ее тут размещу. По просьбам трудящихся. Следите за развитием событий.
17. Осипов Сергей (fixin) 3570 14.12.11 14:58 Сейчас в теме
(15) а вы знаете, как в 1С сделать трассировку отдельной строки с помощью условной точки останова? Думаете это невозможно? ;-)
18. Michael Smith (opiumdx) 14.12.11 19:51 Сейчас в теме
Спасибо! Никогда не думал в таком ключе, очень интересная мысль... Должно быть неплохой способ отследить выполнение процедур. Надо будет обязательно попробовать на практике.
19. Fomix (fomix) 23 14.12.11 21:46 Сейчас в теме
20. denis leonov (curys) 14.12.11 22:48 Сейчас в теме
Замечательная статья. Не зря время провнел за прочтением, новые нюансы узнал. Спасибо автору!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21. Dima Dima (dumal) 14.12.11 22:55 Сейчас в теме
Знаете, для тех, кто на 1С пришел из других языков программирования, эти знания сакральными не являются. Тем не менее, спасибо, дойти до этого "с нуля", наверно, непросто
22. Осипов Сергей (fixin) 3570 14.12.11 23:14 Сейчас в теме
(19) скоро, очень скоро, пока на моем сайте ищите, я ведь недавно вернулся на ИС. Скоро все это счастие, мои шедевры будут тут. ;-)
23. ddd ddd (alexsiswx) 14.12.11 23:29 Сейчас в теме
Я считаю, если научился пользоваться отладчиком в полную силу, то остальное ерунда...
24. Виталий Зеленцов (shizobruder) 51 15.12.11 08:47 Сейчас в теме
25. Виталий Зеленцов (shizobruder) 51 15.12.11 08:48 Сейчас в теме
вообще с помощью этой штуки начал разбираться в языке)))
26. highlander highlander (highlander) 15.12.11 10:32 Сейчас в теме
(21) dumal, абсолютно с вами согласен. это тонкости работы, которые могут помогать но мало кто их использует
27. Димон * (DDos76) 182 15.12.11 15:26 Сейчас в теме
Прикольно. По отдельности про это (замер производительности + отладка по шагам) знал, но чтобы вместе - не думал. Только вот код чаще всего приходится отлаживать который (А очень долго работает) (Б не работает вообще) - т.е. вылетает с ошибкой. Методика уже не прокатит. И наконец, последний гвоздь: все чаще ошибки кроются в запросах. Так, например, некорректно определяется сумма при перемещении из розницы обратно на оптовый склад в УНФ. Ошибку то удалось найти, но сколько это заняло времени... Вот если бы кто предложил методику отладки пакетных запросов по частям - было бы супер.
28. Алексей (АлексейН) 2 16.12.11 11:35 Сейчас в теме
Возмем на вооружение, молодец, за идею +
29. Maksim Titov (Maks_Payn) 17.12.11 13:46 Сейчас в теме
Очень интересно и позновательно! Молодец! Спасибо! ))
30. Олег Иванов (ogeniv) 18.12.11 11:05 Сейчас в теме
Интересно, надо будет попробовать
32. Дмитрий Веселов (Veduin) 19.12.11 05:06 Сейчас в теме
Может будет практично! попробуем!
33. Андрей Романовский (and_r) 19.12.11 06:29 Сейчас в теме
Попробовал, плюсов не заметил, но, думаю, найдутся задачи и под это решение! Спасибо!
34. Степан Лавров (Mopcuk) 20.12.11 06:19 Сейчас в теме
35. Саўка Збянтэжаны (Збянтэжаны Саўка) 230 20.12.11 15:39 Сейчас в теме
(22) fixin, дай здесь URL своего сайта, интересно же глянуть, что там у тебя есть
36. Осипов Сергей (fixin) 3570 20.12.11 16:36 Сейчас в теме
37. Саўка Збянтэжаны (Збянтэжаны Саўка) 230 20.12.11 17:40 Сейчас в теме
38. Alexey Drujkov (extremehelp) 20.12.11 22:57 Сейчас в теме
39. Дмитрий Т. (t_dima) 23.12.11 14:50 Сейчас в теме
Трудно конечно дедушку переучить от того к чему он привык давным давно :)
Как говорится: век живи - век учись!
40. Pavel Y (Pashikuss) 28.12.11 10:16 Сейчас в теме
Тоже пользуюсь этой штукой
41. Максим Грибков (magrib) 29.12.11 14:36 Сейчас в теме
Очень полезно. Ждем от автора новых публикаций. Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)))))
42. Ирина Тодорова (Hantinka) 04.01.12 19:21 Сейчас в теме
Очень полезная статья. Спасибо!
43. Игорь Юртаев (ipyu) 04.01.12 21:59 Сейчас в теме
45. Anton Sergeev (sdwggg2) 13.01.12 13:50 Сейчас в теме
46. Владимир Водин (BalVlad) 17.01.12 09:48 Сейчас в теме
48. econom1 28 30.01.12 18:29 Сейчас в теме
я вообще в восторге от запуска замера без точек останова
недавно начал работать с 8 после 7, и неоднократно тратил кучу времени например, чтоб найти откуда беруться движения у документа, формирование которых не ловилось отладчиком в обработке проведения. бывало все пройдешь - нет нигде, движения смотрим, а они есть. домовой блин завелся. не знал тогда, что в 8 есть подписки на события.
вот теперь заживем! спасибо!
49. Гость 07.02.12 20:50 Сейчас в теме
Очень хороший файлик... сэкономил время!!! очень помогло...
надо было срочно и тут как раз мне в помощь.
спасибо автору
50. Алексей Аборин (commo) 10.02.12 14:49 Сейчас в теме
51. Николай (Nickon) 22.03.12 00:41 Сейчас в теме
Идея в работе неплохая. надо все проверить лично. На практике так сказать.
Спасибо +
52. Сергей Захаров (zachs) 4 13.04.12 10:25 Сейчас в теме
Отличная статья! Надо тренироваться...
53. Игорь Юртаев (ipyu) 23.06.12 08:21 Сейчас в теме
54. Александр Лыткин (TrinitronOTV) 27.11.12 10:37 Сейчас в теме
большое спасибо, очень пригодиться в работе
55. Lika Ivanova (Lik2707) 05.12.12 05:22 Сейчас в теме
Да, интересная фишка, обязательно надо попробовать :)
Несомненно плюс!
56. evgen1977 (musatov1c.ru) 05.12.12 08:38 Сейчас в теме
Да, весьма любопытно. Оставляю на заметку. Автору большое спасибо :)
57. Владимир Гусев (adhocprog) 1094 05.12.12 09:41 Сейчас в теме
58. Алексей Роза (DoctorRoza) 05.12.12 10:44 Сейчас в теме
59. Ксюша Феерия (Феерия) 05.12.12 12:23 Сейчас в теме
Спасибо большое! Буду пользоваться!
60. Андрей Казанцев (ander_) 06.12.12 08:07 Сейчас в теме
61. Олег Шалимов (CaSH_2004) 344 08.12.12 17:51 Сейчас в теме
Странно, но народ не в курсе. Тогда наверно механизм стека вызовов вообще будет шоком для многих :)
62. Анатолий Бурмистров (tolik_byr) 08.12.12 21:58 Сейчас в теме
АГа, на моей практике есть "программисты" для которых стек вызовов - это новое открытие в области программирования! )))
63. Владимир (ARL) 250 25.01.13 11:14 Сейчас в теме
Описанный метод - такой простой и такой эффективный помощник, просто супер! Конечно, он эффективен, когда в коде используется большое количество процедур и функций, например, в громоздкой обработке. Срезу видишь - где "прошлась" отлаживаемая задача. И как результат - тут же определяешь - где надо исправлять.
64. Александр Ганиев (namazi74) 2 17.07.13 15:29 Сейчас в теме
спасибо! побольше бы таких статей!
65. Владимир Семенов (kruglay) 84 19.07.13 14:04 Сейчас в теме
66. Сергей Сторожев (ssa) 16.10.13 22:20 Сейчас в теме
67. Denis Michaylov (denis_aka_wolf) 43 31.03.14 10:21 Сейчас в теме
А в чем тут хитрость??? нечего нового не сказал...
68. Владимир Гусев (adhocprog) 1094 31.03.14 15:19 Сейчас в теме
Хитрость в том, что это существенно облегчает отладку.
Далеко не все это знают.
69. Denis Michaylov (denis_aka_wolf) 43 01.04.14 08:41 Сейчас в теме
Думаю не делают так только новички. Нормальный разработчик использует различные инструменты для отладки. И точки остановок с условиями и табло и стек вызовов и замер производительности. Код должен работать точнее часов ))) без багов, утечек памяти и с высокой производительностью.
Иваныч; +1 1 Ответить 1
70. Владимир Гусев (adhocprog) 1094 01.04.14 11:17 Сейчас в теме
(69) >> Думаю не делают так только новички
В целом да, но.
Я тоже бы так думал, если бы не показывал это программистам. Далеко не новичкам, далеко не слабым.
71. Иваныч Иванов (Иваныч) 22 15.05.14 18:30 Сейчас в теме
72. Дарья Зотова (daryz) 01.08.14 08:59 Сейчас в теме
73. Рамиль Баширов (bashirov.rs) 14 04.09.14 09:01 Сейчас в теме
Спасибо за рекомендации! Беру в вооружение!
adhocprog; +1 Ответить
Оставьте свое сообщение