Хитрости отладки кода 1С
Только самые простые задачи не требуют отладки. Для решения сложных задач без отладки в принципе не обойтись. С годами придумал способ упростить этот процесс.
1) Включаем отладку (без точек останова), включаем замер производительности, выполняем отлаживаемые действия, выключаем замер производительности (появится список выполненных команд и он будет подсвечен в коде).
2) Потом устанавливаем точки останова и идем по шагам, т.е. выполняем обычную отладку.
Теперь мы заранее видим какой код будет исполнен (и сколько раз). Это значительно ускоряет процесс отладки сложного, объемного кода.
1) Включаем отладку (без точек останова), включаем замер производительности, выполняем отлаживаемые действия, выключаем замер производительности (появится список выполненных команд и он будет подсвечен в коде).
2) Потом устанавливаем точки останова и идем по шагам, т.е. выполняем обычную отладку.
Теперь мы заранее видим какой код будет исполнен (и сколько раз). Это значительно ускоряет процесс отладки сложного, объемного кода.
Когда в реале показываю этот способ коллегам, они не сразу видят выгоду. Но потом говорят, что это вещь 🙂
Горячие клавиши (записанные на подкорку):
Alt+F2 — поставить/убрать закладку
F2 — перейти к следующей закладка
Shift+F2 — перейти к предыдущей
F9 — поставить/убрать точку останова
Ctrl+Shift+F9 — отключить точку останова
Другие темы по отладке:
Динамическое изменение переменных во время отладки
Обработка для отладки обработок заполнения табличных частей документов
Отладка Web сервисов 1С в картинках
Отладка удаленных сеансов пользователей
(0) А как понять порядок выполнения? Производительность дает только, что «выполнилось за время»
(1) Это типа для новичков и плюс неполный список публикаций по теме. (0) Про тестирование и отладку печатных форм забыл.
Все равно +
Тоже пользуюсь этой штукой, и вижу что вокруг народ не знает.
неполный список публикаций по теме
А полным поделишься? 🙂
(1) Порядок смотреть при проходе отладчиком. А вот без лишних тыканий оценить прохождения условий — это мысль. За мысль плюсанул.
Идеи для статьи:
1) Как использовать удалённую отладку (не у всех получается);
2) Как включать отладку на сервере (знаю людей, которые про такую возможность не знают вообще).
Работает ли эта штука при отладке синтаксических ошибок?
Пользовался давно….. но многие такой фиишки не знают
пока не пользовался, но прикольно
Спасибо за идею, обязательно воспользуюсь
Любопытно. Надо попробовать.
Давно пользуюсь обработкой «Продвинутый отладчик для 8.1» от Фиксина — за что автору большое спасибо! Помогает при отладке запросов. Особенно в ЗУПе, где запросы написаны какими-то «титанами от 1С» и осилить их можно только с помощью данной обработки, расчленяя на более мелкие и удобные для понимания прямо по ходу работы программы.
Смело можно включить в список автора
(12) где ее найти?
(13) Rustig, Кажется я скачал ее c сайта автора — fixin.narod.ru. Но могу и ошибаться по URL. Он там много чего полезного выкладывает бесплатно. Если там не найдешь пришли в личку мыло -скину
Прекрасный метод отслеживания использования процедур как в контексте документа, так и общих модулей. Но пошаговую отладку не отменяет : по этому методу можна только видеть какая процедура и сколько раз используется, а вот последовательность исполнения тут не увидишь. А отладка то и начинается с поиска ошибки, поэтому до выполнения определенных процедур может и не дойти !!!
(12) гы, скоро я ее тут размещу. По просьбам трудящихся. Следите за развитием событий.
(15) а вы знаете, как в 1С сделать трассировку отдельной строки с помощью условной точки останова? Думаете это невозможно? 😉
Спасибо! Никогда не думал в таком ключе, очень интересная мысль… Должно быть неплохой способ отследить выполнение процедур. Надо будет обязательно попробовать на практике.
(17) fixin, Колись!
Замечательная статья. Не зря время провнел за прочтением, новые нюансы узнал. Спасибо автору!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Знаете, для тех, кто на 1С пришел из других языков программирования, эти знания сакральными не являются. Тем не менее, спасибо, дойти до этого «с нуля», наверно, непросто
(19) скоро, очень скоро, пока на моем сайте ищите, я ведь недавно вернулся на ИС. Скоро все это счастие, мои шедевры будут тут. 😉
Я считаю, если научился пользоваться отладчиком в полную силу, то остальное ерунда…
Очень полезно бывает)))
вообще с помощью этой штуки начал разбираться в языке)))
(21) dumal, абсолютно с вами согласен. это тонкости работы, которые могут помогать но мало кто их использует
Прикольно. По отдельности про это (замер производительности + отладка по шагам) знал, но чтобы вместе — не думал. Только вот код чаще всего приходится отлаживать который (А очень долго работает) (Б не работает вообще) — т.е. вылетает с ошибкой. Методика уже не прокатит. И наконец, последний гвоздь: все чаще ошибки кроются в запросах. Так, например, некорректно определяется сумма при перемещении из розницы обратно на оптовый склад в УНФ. Ошибку то удалось найти, но сколько это заняло времени… Вот если бы кто предложил методику отладки пакетных запросов по частям — было бы супер.
Возмем на вооружение, молодец, за идею +
Очень интересно и позновательно! Молодец! Спасибо! ))
Интересно, надо будет попробовать
Может будет практично! попробуем!
Попробовал, плюсов не заметил, но, думаю, найдутся задачи и под это решение! Спасибо!
Сейчас попробуем!
(22) fixin, дай здесь URL своего сайта, интересно же глянуть, что там у тебя есть
(35) fixin.com.ru
(36) fixin, 10x!
Спасибо очень помогло
Трудно конечно дедушку переучить от того к чему он привык давным давно 🙂
Как говорится: век живи — век учись!
Тоже пользуюсь этой штукой
Очень полезно. Ждем от автора новых публикаций. Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)))))
Очень полезная статья. Спасибо!
Спасибо. Буду знать.
узнал кое что новое
Спасибо. +
я вообще в восторге от запуска замера без точек останова
недавно начал работать с 8 после 7, и неоднократно тратил кучу времени например, чтоб найти откуда беруться движения у документа, формирование которых не ловилось отладчиком в обработке проведения. бывало все пройдешь — нет нигде, движения смотрим, а они есть. домовой блин завелся. не знал тогда, что в 8 есть подписки на события.
вот теперь заживем! спасибо!
Очень хороший файлик… сэкономил время!!! очень помогло…
надо было срочно и тут как раз мне в помощь.
спасибо автору
спасибо
Идея в работе неплохая. надо все проверить лично. На практике так сказать.
Спасибо +
Отличная статья! Надо тренироваться…
Спасибо, идея на 5.
большое спасибо, очень пригодиться в работе
Да, интересная фишка, обязательно надо попробовать 🙂
Несомненно плюс!
Да, весьма любопытно. Оставляю на заметку. Автору большое спасибо 🙂
(55), (56) спасибо )
Возьму на вооружение!
Спасибо большое! Буду пользоваться!
спасибо! в «копилку».
Странно, но народ не в курсе. Тогда наверно механизм стека вызовов вообще будет шоком для многих 🙂
АГа, на моей практике есть «программисты» для которых стек вызовов — это новое открытие в области программирования! )))
Описанный метод — такой простой и такой эффективный помощник, просто супер! Конечно, он эффективен, когда в коде используется большое количество процедур и функций, например, в громоздкой обработке. Срезу видишь — где «прошлась» отлаживаемая задача. И как результат — тут же определяешь — где надо исправлять.
спасибо! побольше бы таких статей!
Плюс
Спасибо,полезно.
А в чем тут хитрость??? нечего нового не сказал…
Хитрость в том, что это существенно облегчает отладку.
Далеко не все это знают.
Думаю не делают так только новички. Нормальный разработчик использует различные инструменты для отладки. И точки остановок с условиями и табло и стек вызовов и замер производительности. Код должен работать точнее часов ))) без багов, утечек памяти и с высокой производительностью.
(69) >> Думаю не делают так только новички
В целом да, но.
Я тоже бы так думал, если бы не показывал это программистам. Далеко не новичкам, далеко не слабым.
Плюс поставил
Полезно, спасибо!
Спасибо за рекомендации! Беру в вооружение!