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

03.12.12

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

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

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

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

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

См. также

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

Во второй статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, поговорим об особенностях анализа конфигурации 1С на наличие платформеннозависимого кода.

вчера в 17:30    323    it-expertise    0    

1

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

В практике нашей специальной команды по проектам сложных обновлений 1С прошел один из самых объёмных проектов: необходимо было обновить «1С: Бухгалтерия предприятия КОРП 3.0 + БИТ.ФИНАНС». Конфигурация содержала доработки практически по всем типам объектов метаданных. Длительность проекта составила 1 год и 2 месяца и обеспечила полной загрузкой 4 разработчиков на 6 месяцев.

вчера в 11:00    265    1c-izh    2    

1

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

В последнее время термин «чистый код» стал очень популярным. Появились даже курсы по данной тематике. Так что же это такое?

16.09.2024    16421    markbraer    66    

43

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

В статье рассматривается отказ от использования процедур и унификация формата ответа функций. Способ описывается на примере развития абстрактной информационной системы, работающей с PDF файлами.

10.09.2024    1258    acces969    4    

6

Рефакторинг и качество кода Бесплатно (free)

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

28.08.2024    1639    Chernazem    3    

6

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

SOLID – принципы проектирования программных структур (модулей). Акроним S.O.L.I.D. образован из первой буквы пяти принципов. Эти принципы делают код более гибким, упрощают разработку. Принято считать, что принципы SOLID применимы только в объектно-ориентированном программировании. Но их можно успешно использовать и в 1С. Расскажем о том, как разобраться в принципах SOLID и начать применять их при работе в 1С.

22.08.2024    11850    alex_sayan    41    

54

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

Рассмотрим основные принципы шаблона проектирования "Стратегия" на простом примере.

25.06.2024    5249    MadRave    34    

27

Рефакторинг и качество кода Программист Платформа 1С v8.3 Абонемент ($m)

В статье расскажу и покажу процесс проведения Code-review на примере обработки с GitHub.

1 стартмани

04.06.2024    6965    mrXoxot    55    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AnryMc 849 12.12.11 11:25 Сейчас в теме
(0) А как понять порядок выполнения? Производительность дает только, что "выполнилось за время"
2. Поручик 4661 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. МимохожийОднако 142 14.12.11 07:13 Сейчас в теме
Работает ли эта штука при отладке синтаксических ошибок?
8. master_yoda 27 14.12.11 08:28 Сейчас в теме
Пользовался давно..... но многие такой фиишки не знают
9. vec435 17 14.12.11 09:20 Сейчас в теме
пока не пользовался, но прикольно
10. slas 22 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 1836 14.12.11 13:03 Сейчас в теме
14. fomix 33 14.12.11 13:13 Сейчас в теме
(13) Rustig, Кажется я скачал ее c сайта автора - fixin.narod.ru. Но могу и ошибаться по URL. Он там много чего полезного выкладывает бесплатно. Если там не найдешь пришли в личку мыло -скину
16. fixin 4277 14.12.11 14:57 Сейчас в теме
(12) гы, скоро я ее тут размещу. По просьбам трудящихся. Следите за развитием событий.
15. Sergoninfostarru 2 14.12.11 14:13 Сейчас в теме
Прекрасный метод отслеживания использования процедур как в контексте документа, так и общих модулей. Но пошаговую отладку не отменяет : по этому методу можна только видеть какая процедура и сколько раз используется, а вот последовательность исполнения тут не увидишь. А отладка то и начинается с поиска ошибки, поэтому до выполнения определенных процедур может и не дойти !!!
17. fixin 4277 14.12.11 14:58 Сейчас в теме
(15) а вы знаете, как в 1С сделать трассировку отдельной строки с помощью условной точки останова? Думаете это невозможно? ;-)
19. fomix 33 14.12.11 21:46 Сейчас в теме
22. fixin 4277 14.12.11 23:14 Сейчас в теме
(19) скоро, очень скоро, пока на моем сайте ищите, я ведь недавно вернулся на ИС. Скоро все это счастие, мои шедевры будут тут. ;-)
35. Збянтэжаны Саўка 245 20.12.11 15:39 Сейчас в теме
(22) fixin, дай здесь URL своего сайта, интересно же глянуть, что там у тебя есть
36. fixin 4277 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 63 15.12.11 08:47 Сейчас в теме
Очень полезно бывает)))
25. shizobruder 63 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 16 27.11.12 10:37 Сейчас в теме
большое спасибо, очень пригодиться в работе
55. Lik2707 05.12.12 05:22 Сейчас в теме
Да, интересная фишка, обязательно надо попробовать :)
Несомненно плюс!
57. adhocprog 1144 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 373 08.12.12 17:51 Сейчас в теме
Странно, но народ не в курсе. Тогда наверно механизм стека вызовов вообще будет шоком для многих :)
62. tolik_byr 08.12.12 21:58 Сейчас в теме
АГа, на моей практике есть "программисты" для которых стек вызовов - это новое открытие в области программирования! )))
63. ARL 316 25.01.13 11:14 Сейчас в теме
Описанный метод - такой простой и такой эффективный помощник, просто супер! Конечно, он эффективен, когда в коде используется большое количество процедур и функций, например, в громоздкой обработке. Срезу видишь - где "прошлась" отлаживаемая задача. И как результат - тут же определяешь - где надо исправлять.
64. namazi74 5 17.07.13 15:29 Сейчас в теме
спасибо! побольше бы таких статей!
65. kruglay 111 19.07.13 14:04 Сейчас в теме
66. ssa 16.10.13 22:20 Сейчас в теме
67. denis_aka_wolf 79 31.03.14 10:21 Сейчас в теме
А в чем тут хитрость??? нечего нового не сказал...
68. adhocprog 1144 31.03.14 15:19 Сейчас в теме
Хитрость в том, что это существенно облегчает отладку.
Далеко не все это знают.
69. denis_aka_wolf 79 01.04.14 08:41 Сейчас в теме
Думаю не делают так только новички. Нормальный разработчик использует различные инструменты для отладки. И точки остановок с условиями и табло и стек вызовов и замер производительности. Код должен работать точнее часов ))) без багов, утечек памяти и с высокой производительностью.
Иваныч; +1 1 Ответить
70. adhocprog 1144 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 Ответить
Оставьте свое сообщение