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

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

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

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

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

70 Comments

  1. AnryMc

    (0) А как понять порядок выполнения? Производительность дает только, что «выполнилось за время»

    Reply
  2. Поручик

    (1) Это типа для новичков и плюс неполный список публикаций по теме. (0) Про тестирование и отладку печатных форм забыл.

    Reply
  3. Yasen

    Все равно +

    Тоже пользуюсь этой штукой, и вижу что вокруг народ не знает.

    Reply
  4. Yasen
    Поручик пишет:

    неполный список публикаций по теме

    А полным поделишься? 🙂

    Reply
  5. saiten

    (1) Порядок смотреть при проходе отладчиком. А вот без лишних тыканий оценить прохождения условий — это мысль. За мысль плюсанул.

    Reply
  6. YuriM

    Идеи для статьи:

    1) Как использовать удалённую отладку (не у всех получается);

    2) Как включать отладку на сервере (знаю людей, которые про такую возможность не знают вообще).

    Reply
  7. МимохожийОднако

    Работает ли эта штука при отладке синтаксических ошибок?

    Reply
  8. master_yoda

    Пользовался давно….. но многие такой фиишки не знают

    Reply
  9. vec435

    пока не пользовался, но прикольно

    Reply
  10. slas

    Спасибо за идею, обязательно воспользуюсь

    Reply
  11. cassyan

    Любопытно. Надо попробовать.

    Reply
  12. fomix

    Давно пользуюсь обработкой «Продвинутый отладчик для 8.1» от Фиксина — за что автору большое спасибо! Помогает при отладке запросов. Особенно в ЗУПе, где запросы написаны какими-то «титанами от 1С» и осилить их можно только с помощью данной обработки, расчленяя на более мелкие и удобные для понимания прямо по ходу работы программы.

    Смело можно включить в список автора

    Reply
  13. Rustig

    (12) где ее найти?

    Reply
  14. fomix

    (13) Rustig, Кажется я скачал ее c сайта автора — fixin.narod.ru. Но могу и ошибаться по URL. Он там много чего полезного выкладывает бесплатно. Если там не найдешь пришли в личку мыло -скину

    Reply
  15. Sergoninfostarru

    Прекрасный метод отслеживания использования процедур как в контексте документа, так и общих модулей. Но пошаговую отладку не отменяет : по этому методу можна только видеть какая процедура и сколько раз используется, а вот последовательность исполнения тут не увидишь. А отладка то и начинается с поиска ошибки, поэтому до выполнения определенных процедур может и не дойти !!!

    Reply
  16. fixin

    (12) гы, скоро я ее тут размещу. По просьбам трудящихся. Следите за развитием событий.

    Reply
  17. fixin

    (15) а вы знаете, как в 1С сделать трассировку отдельной строки с помощью условной точки останова? Думаете это невозможно? 😉

    Reply
  18. opiumdx

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

    Reply
  19. fomix

    (17) fixin, Колись!

    Reply
  20. curys

    Замечательная статья. Не зря время провнел за прочтением, новые нюансы узнал. Спасибо автору!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Reply
  21. dumal

    Знаете, для тех, кто на 1С пришел из других языков программирования, эти знания сакральными не являются. Тем не менее, спасибо, дойти до этого «с нуля», наверно, непросто

    Reply
  22. fixin

    (19) скоро, очень скоро, пока на моем сайте ищите, я ведь недавно вернулся на ИС. Скоро все это счастие, мои шедевры будут тут. 😉

    Reply
  23. alexsiswx

    Я считаю, если научился пользоваться отладчиком в полную силу, то остальное ерунда…

    Reply
  24. shizobruder

    Очень полезно бывает)))

    Reply
  25. shizobruder

    вообще с помощью этой штуки начал разбираться в языке)))

    Reply
  26. highlander

    (21) dumal, абсолютно с вами согласен. это тонкости работы, которые могут помогать но мало кто их использует

    Reply
  27. DDos76

    Прикольно. По отдельности про это (замер производительности + отладка по шагам) знал, но чтобы вместе — не думал. Только вот код чаще всего приходится отлаживать который (А очень долго работает) (Б не работает вообще) — т.е. вылетает с ошибкой. Методика уже не прокатит. И наконец, последний гвоздь: все чаще ошибки кроются в запросах. Так, например, некорректно определяется сумма при перемещении из розницы обратно на оптовый склад в УНФ. Ошибку то удалось найти, но сколько это заняло времени… Вот если бы кто предложил методику отладки пакетных запросов по частям — было бы супер.

    Reply
  28. АлексейН

    Возмем на вооружение, молодец, за идею +

    Reply
  29. Maks_Payn

    Очень интересно и позновательно! Молодец! Спасибо! ))

    Reply
  30. ogeniv

    Интересно, надо будет попробовать

    Reply
  31. Veduin

    Может будет практично! попробуем!

    Reply
  32. and_r

    Попробовал, плюсов не заметил, но, думаю, найдутся задачи и под это решение! Спасибо!

    Reply
  33. Mopcuk

    Сейчас попробуем!

    Reply
  34. Збянтэжаны Саўка

    (22) fixin, дай здесь URL своего сайта, интересно же глянуть, что там у тебя есть

    Reply
  35. fixin

    (35) fixin.com.ru

    Reply
  36. Збянтэжаны Саўка

    (36) fixin, 10x!

    Reply
  37. extremehelp

    Спасибо очень помогло

    Reply
  38. t_dima

    Трудно конечно дедушку переучить от того к чему он привык давным давно 🙂

    Как говорится: век живи — век учись!

    Reply
  39. Pashikuss

    Тоже пользуюсь этой штукой

    Reply
  40. magrib

    Очень полезно. Ждем от автора новых публикаций. Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)))))

    Reply
  41. Hantinka

    Очень полезная статья. Спасибо!

    Reply
  42. ipyu

    Спасибо. Буду знать.

    Reply
  43. sdwggg2

    узнал кое что новое

    Reply
  44. BalVlad

    Спасибо. +

    Reply
  45. econom1

    я вообще в восторге от запуска замера без точек останова

    недавно начал работать с 8 после 7, и неоднократно тратил кучу времени например, чтоб найти откуда беруться движения у документа, формирование которых не ловилось отладчиком в обработке проведения. бывало все пройдешь — нет нигде, движения смотрим, а они есть. домовой блин завелся. не знал тогда, что в 8 есть подписки на события.

    вот теперь заживем! спасибо!

    Reply
  46. Гость

    Очень хороший файлик… сэкономил время!!! очень помогло…

    надо было срочно и тут как раз мне в помощь.

    спасибо автору

    Reply
  47. commo

    спасибо

    Reply
  48. Nickon

    Идея в работе неплохая. надо все проверить лично. На практике так сказать.

    Спасибо +

    Reply
  49. zachs

    Отличная статья! Надо тренироваться…

    Reply
  50. ipyu

    Спасибо, идея на 5.

    Reply
  51. TrinitronOTV

    большое спасибо, очень пригодиться в работе

    Reply
  52. Lik2707

    Да, интересная фишка, обязательно надо попробовать 🙂

    Несомненно плюс!

    Reply
  53. musatov1c.ru

    Да, весьма любопытно. Оставляю на заметку. Автору большое спасибо 🙂

    Reply
  54. adhocprog

    (55), (56) спасибо )

    Reply
  55. DoctorRoza

    Возьму на вооружение!

    Reply
  56. user199589

    Спасибо большое! Буду пользоваться!

    Reply
  57. ander_

    спасибо! в «копилку».

    Reply
  58. CaSH_2004

    Странно, но народ не в курсе. Тогда наверно механизм стека вызовов вообще будет шоком для многих 🙂

    Reply
  59. tolik_byr

    АГа, на моей практике есть «программисты» для которых стек вызовов — это новое открытие в области программирования! )))

    Reply
  60. ARL

    Описанный метод — такой простой и такой эффективный помощник, просто супер! Конечно, он эффективен, когда в коде используется большое количество процедур и функций, например, в громоздкой обработке. Срезу видишь — где «прошлась» отлаживаемая задача. И как результат — тут же определяешь — где надо исправлять.

    Reply
  61. namazi74

    спасибо! побольше бы таких статей!

    Reply
  62. kruglay

    Плюс

    Reply
  63. ssa

    Спасибо,полезно.

    Reply
  64. denis_aka_wolf

    А в чем тут хитрость??? нечего нового не сказал…

    Reply
  65. adhocprog

    Хитрость в том, что это существенно облегчает отладку.

    Далеко не все это знают.

    Reply
  66. denis_aka_wolf

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

    Reply
  67. adhocprog

    (69) >> Думаю не делают так только новички

    В целом да, но.

    Я тоже бы так думал, если бы не показывал это программистам. Далеко не новичкам, далеко не слабым.

    Reply
  68. Иваныч

    Плюс поставил

    Reply
  69. daryz

    Полезно, спасибо!

    Reply
  70. bashirov.rs

    Спасибо за рекомендации! Беру в вооружение!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *