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

03.12.12

Разработка - Рефакторинг и качество кода

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

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

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

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

См. также

Когда понадобился новый оператор

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Когда понадобился новый оператор, но его нет в синтакс-помощнике, что делать?

18.03.2024    1144    ZhokhovM    2    

4

Когда разработчик платформы не добавил проверку препроцессоров

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Когда разработчик платформы решил пойти на кухню за кофе, а проверку препроцессоров не добавил, и вот тут-то и началось: "Что, опять все сломалось? Ну и кофе же я забыл сделать!".😅

18.03.2024    2670    ZhokhovM    4    

8

Реструктуризация - бесконечная история

Рефакторинг и качество кода Платформа 1С v8.3 Бесплатно (free)

При разработке программ требуемый функционал ставят на первое место, но есть еще и архитектура программы. На горизонте 5-10 лет она становится важнее функционала, который должен работать при масштабировании и росте данных. Реструктуризация 5 терабайтной базы 1С 8.2 в формат 1С 8.3, складывает весь пазл архитектурных просчетов, которые сделали ради функционала. Как это исправить? - для разработки правильной архитектуры, нужно всего лишь сместить фокус с функционала и подумать о «вечном».

29.09.2023    1908    1CUnlimited    15    

22

Чистый код. Мой взгляд на жизнь в макаронных джунглях. Часть 2

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Коротко о том, как я перестал быть создателем макаронного кода и непроходимых джунглей методов и модулей. Расскажу о том, что реально применяю на практике с примерами при разработке (а в основном доработке) в типовых конфигурациях 1С. Комментарии очень приветствуются.

27.09.2023    6966    Lemmonbri    136    

36

Чистый код. Мой взгляд на жизнь в макаронных джунглях. Часть 1

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Коротко о том, как я перестал быть создателем макаронного кода и непроходимых джунглей методов и модулей. Расскажу о том, что реально применяю на практике с примерами при разработке (а в основном доработке) в типовых конфигурациях 1С. Комментарии очень приветствуются.

19.09.2023    4345    Lemmonbri    16    

31

5 подходов при доработке конфигурации 1С, чтобы в будущем не было мучительно больно её обновлять

Архитектура Рефакторинг и качество кода Обновление 1С Платформа 1С v8.3 Бесплатно (free)

Нашей компании часто приходится сталкиваться с обновлением конфигураций разной степени переписанности. Какие-то из них обновляются легко, какие-то — не очень. Расскажем о некоторых принципах модификации программы, которые помогут сделать последующий процесс обновления легче. Или тяжелее, если стараться их не соблюдать.

10.08.2023    9584    0    1c-izhtc    37    

21

Задача на ошибки и неоптимальности при проведении приходной накладной

Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Задачу эту дают на собеседованиях, видимо, те франчи, которые не в состоянии оценить человека по резюме и в ходе беседы. По идее задачи, подобные этой, должны давать начинающим студентам. Но дают всем подряд. Итак: мои 5 копеек. Критика приветствуется.

11.07.2023    2214    magic1s    32    

11
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AnryMc 849 12.12.11 11:25 Сейчас в теме
(0) А как понять порядок выполнения? Производительность дает только, что "выполнилось за время"
2. Поручик 4670 12.12.11 11:53 Сейчас в теме
(1) Это типа для новичков и плюс неполный список публикаций по теме. (0) Про тестирование и отладку печатных форм забыл.
5. saiten 246 12.12.11 16:31 Сейчас в теме
(1) Порядок смотреть при проходе отладчиком. А вот без лишних тыканий оценить прохождения условий - это мысль. За мысль плюсанул.
o.nikolaev; Иваныч; adhocprog; gaglo; RustIG; +5 Ответить
3. Yasen 490 12.12.11 14:11 Сейчас в теме
Все равно +
Тоже пользуюсь этой штукой, и вижу что вокруг народ не знает.
4. Yasen 490 12.12.11 14:12 Сейчас в теме
Поручик пишет:
неполный список публикаций по теме


А полным поделишься? :)
6. YuriM 12.12.11 18:39 Сейчас в теме
Идеи для статьи:
1) Как использовать удалённую отладку (не у всех получается);
2) Как включать отладку на сервере (знаю людей, которые про такую возможность не знают вообще).
dynamicsystems; Дмитрий_71; +2 Ответить
7. МимохожийОднако 141 14.12.11 07:13 Сейчас в теме
Работает ли эта штука при отладке синтаксических ошибок?
8. master_yoda 27 14.12.11 08:28 Сейчас в теме
Пользовался давно..... но многие такой фиишки не знают
9. vec435 15 14.12.11 09:20 Сейчас в теме
пока не пользовался, но прикольно
10. slas 23 14.12.11 09:31 Сейчас в теме
Спасибо за идею, обязательно воспользуюсь
11. cassyan 14.12.11 11:39 Сейчас в теме
Любопытно. Надо попробовать.
12. fomix 33 14.12.11 11:57 Сейчас в теме
Давно пользуюсь обработкой "Продвинутый отладчик для 8.1" от Фиксина - за что автору большое спасибо! Помогает при отладке запросов. Особенно в ЗУПе, где запросы написаны какими-то "титанами от 1С" и осилить их можно только с помощью данной обработки, расчленяя на более мелкие и удобные для понимания прямо по ходу работы программы.
Смело можно включить в список автора
13. RustIG 1351 14.12.11 13:03 Сейчас в теме
14. fomix 33 14.12.11 13:13 Сейчас в теме
(13) Rustig, Кажется я скачал ее c сайта автора - fixin.narod.ru. Но могу и ошибаться по URL. Он там много чего полезного выкладывает бесплатно. Если там не найдешь пришли в личку мыло -скину
16. fixin 4252 14.12.11 14:57 Сейчас в теме
(12) гы, скоро я ее тут размещу. По просьбам трудящихся. Следите за развитием событий.
15. Sergoninfostarru 2 14.12.11 14:13 Сейчас в теме
Прекрасный метод отслеживания использования процедур как в контексте документа, так и общих модулей. Но пошаговую отладку не отменяет : по этому методу можна только видеть какая процедура и сколько раз используется, а вот последовательность исполнения тут не увидишь. А отладка то и начинается с поиска ошибки, поэтому до выполнения определенных процедур может и не дойти !!!
17. fixin 4252 14.12.11 14:58 Сейчас в теме
(15) а вы знаете, как в 1С сделать трассировку отдельной строки с помощью условной точки останова? Думаете это невозможно? ;-)
19. fomix 33 14.12.11 21:46 Сейчас в теме
22. fixin 4252 14.12.11 23:14 Сейчас в теме
(19) скоро, очень скоро, пока на моем сайте ищите, я ведь недавно вернулся на ИС. Скоро все это счастие, мои шедевры будут тут. ;-)
35. Збянтэжаны Саўка 245 20.12.11 15:39 Сейчас в теме
(22) fixin, дай здесь URL своего сайта, интересно же глянуть, что там у тебя есть
36. fixin 4252 20.12.11 16:36 Сейчас в теме
37. Збянтэжаны Саўка 245 20.12.11 17:40 Сейчас в теме
18. opiumdx 14.12.11 19:51 Сейчас в теме
Спасибо! Никогда не думал в таком ключе, очень интересная мысль... Должно быть неплохой способ отследить выполнение процедур. Надо будет обязательно попробовать на практике.
20. curys 14.12.11 22:48 Сейчас в теме
Замечательная статья. Не зря время провнел за прочтением, новые нюансы узнал. Спасибо автору!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
21. dumal 14.12.11 22:55 Сейчас в теме
Знаете, для тех, кто на 1С пришел из других языков программирования, эти знания сакральными не являются. Тем не менее, спасибо, дойти до этого "с нуля", наверно, непросто
26. highlander 15.12.11 10:32 Сейчас в теме
(21) dumal, абсолютно с вами согласен. это тонкости работы, которые могут помогать но мало кто их использует
23. alexsiswx 14.12.11 23:29 Сейчас в теме
Я считаю, если научился пользоваться отладчиком в полную силу, то остальное ерунда...
24. shizobruder 62 15.12.11 08:47 Сейчас в теме
Очень полезно бывает)))
25. shizobruder 62 15.12.11 08:48 Сейчас в теме
вообще с помощью этой штуки начал разбираться в языке)))
27. DDos76 206 15.12.11 15:26 Сейчас в теме
Прикольно. По отдельности про это (замер производительности + отладка по шагам) знал, но чтобы вместе - не думал. Только вот код чаще всего приходится отлаживать который (А очень долго работает) (Б не работает вообще) - т.е. вылетает с ошибкой. Методика уже не прокатит. И наконец, последний гвоздь: все чаще ошибки кроются в запросах. Так, например, некорректно определяется сумма при перемещении из розницы обратно на оптовый склад в УНФ. Ошибку то удалось найти, но сколько это заняло времени... Вот если бы кто предложил методику отладки пакетных запросов по частям - было бы супер.
28. АлексейН 2 16.12.11 11:35 Сейчас в теме
Возмем на вооружение, молодец, за идею +
29. Maks_Payn 17.12.11 13:46 Сейчас в теме
Очень интересно и позновательно! Молодец! Спасибо! ))
30. ogeniv 18.12.11 11:05 Сейчас в теме
Интересно, надо будет попробовать
31. пользователь 18.12.11 15:24
Сообщение было скрыто модератором.
...
32. Veduin 19.12.11 05:06 Сейчас в теме
Может будет практично! попробуем!
33. and_r 19.12.11 06:29 Сейчас в теме
Попробовал, плюсов не заметил, но, думаю, найдутся задачи и под это решение! Спасибо!
34. Mopcuk 20.12.11 06:19 Сейчас в теме
38. extremehelp 20.12.11 22:57 Сейчас в теме
Спасибо очень помогло
39. t_dima 23.12.11 14:50 Сейчас в теме
Трудно конечно дедушку переучить от того к чему он привык давным давно :)
Как говорится: век живи - век учись!
40. 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 Сейчас в теме
44. пользователь 08.01.12 22:24
Сообщение было скрыто модератором.
...
45. sdwggg2 13.01.12 13:50 Сейчас в теме
46. BalVlad 17.01.12 09:48 Сейчас в теме
47. пользователь 17.01.12 09:59
Сообщение было скрыто модератором.
...
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 5 13.04.12 10:25 Сейчас в теме
Отличная статья! Надо тренироваться...
53. ipyu 23.06.12 08:21 Сейчас в теме
54. TrinitronOTV 14 27.11.12 10:37 Сейчас в теме
большое спасибо, очень пригодиться в работе
55. Lik2707 05.12.12 05:22 Сейчас в теме
Да, интересная фишка, обязательно надо попробовать :)
Несомненно плюс!
57. adhocprog 1139 05.12.12 09:41 Сейчас в теме
56. musatov1c.ru 6 05.12.12 08:38 Сейчас в теме
Да, весьма любопытно. Оставляю на заметку. Автору большое спасибо :)
58. DoctorRoza 05.12.12 10:44 Сейчас в теме
Возьму на вооружение!
59. user199589 05.12.12 12:23 Сейчас в теме
Спасибо большое! Буду пользоваться!
60. ander_ 06.12.12 08:07 Сейчас в теме
61. CaSH_2004 372 08.12.12 17:51 Сейчас в теме
Странно, но народ не в курсе. Тогда наверно механизм стека вызовов вообще будет шоком для многих :)
62. tolik_byr 08.12.12 21:58 Сейчас в теме
АГа, на моей практике есть "программисты" для которых стек вызовов - это новое открытие в области программирования! )))
63. ARL 313 25.01.13 11:14 Сейчас в теме
Описанный метод - такой простой и такой эффективный помощник, просто супер! Конечно, он эффективен, когда в коде используется большое количество процедур и функций, например, в громоздкой обработке. Срезу видишь - где "прошлась" отлаживаемая задача. И как результат - тут же определяешь - где надо исправлять.
64. namazi74 4 17.07.13 15:29 Сейчас в теме
спасибо! побольше бы таких статей!
65. kruglay 110 19.07.13 14:04 Сейчас в теме
66. ssa 16.10.13 22:20 Сейчас в теме
67. denis_aka_wolf 79 31.03.14 10:21 Сейчас в теме
А в чем тут хитрость??? нечего нового не сказал...
68. adhocprog 1139 31.03.14 15:19 Сейчас в теме
Хитрость в том, что это существенно облегчает отладку.
Далеко не все это знают.
69. denis_aka_wolf 79 01.04.14 08:41 Сейчас в теме
Думаю не делают так только новички. Нормальный разработчик использует различные инструменты для отладки. И точки остановок с условиями и табло и стек вызовов и замер производительности. Код должен работать точнее часов ))) без багов, утечек памяти и с высокой производительностью.
Иваныч; +1 1 Ответить
70. adhocprog 1139 01.04.14 11:17 Сейчас в теме
(69) >> Думаю не делают так только новички
В целом да, но.
Я тоже бы так думал, если бы не показывал это программистам. Далеко не новичкам, далеко не слабым.
71. Иваныч 23 15.05.14 18:30 Сейчас в теме
72. daryz 01.08.14 08:59 Сейчас в теме
73. bashirov.rs 31 04.09.14 09:01 Сейчас в теме
Спасибо за рекомендации! Беру в вооружение!
adhocprog; +1 Ответить
74. olgabel 47 23.01.20 13:32 Сейчас в теме
Спасибо, очень пригодилось. Отличная статья!
adhocprog; +1 Ответить
Оставьте свое сообщение