1C отладка - Знакомимся с инструментами отладки платформы - Урок 13
Вставка
- Опубліковано 25 лип 2024
- Познакомимся с инструментами отладки в Платформе 1С:Предприятие.
На самом деле, инструменты для отладки в 1С очень даже хорошие и очень сильно помогают в работе, экономят нервы и время разработчика. Мало уметь писать программный код, нужно уметь эффективно доводить его до качественно рабочего состояния.
#ТЕХПОДДЕРЖКА #Курсы1С #Программист1С #1С
ТАЙМКОДЫ:
00:00 - Приветствие
00:29 - Что такое отладка и зачем нужна
01:51 - Как запустить отладку
01:19 - Как управлять выполнение кода в отладке
03:50 - Предметы отладки(подключение/отключение)
06:27 - Точка останова/остановки
08:19 - Локальные переменные
11:45 - Табло(очень удобно)
13:19 - Просмотр таблиц и списков в отладке
17:01 - Изменение значений в отладчике
18:03 - Управление точками останова
19:31 - Замер производительности(очень удобно)
23:33 - Стек вызовов(для собеседований)
28:26 - Остановка по ошибке(палочка-выручалочка)
31:04 - Точка остановки с условием
1С Программирование с нуля: • Бесплатный курс 1С Про...
Поддержать канал/Получить плюшки: boosty.to/tp2b
теперь поддержка только через Бусти?
@@AlexMiron1990 В описании канала есть еще варианты поддержки донатом через сервис или на карту.
основная фишечка стека вызовов - возможность тыкнуть 2 раза на любой из уровней вызова и увидеть, какие значения имеют переменные того уровня. очень удобно, облегчает понимание, как вообще программа дошла до текущей точки
Ух ты! Так я им ни когда не пользовался... Действительно это очень даже удобно!
Большое спасибо!
Спасибо, крутые видосы, смотрю с удовольствием. Не работал со стеком, благодаря комментам узнал новое)
Олег добрый день. Спасибо вам за этот урок. Очень полезный материал. Все кнопки потыкал всё попробовал. Очень позитивное впечатление от инструмента. Буду пользоваться в двльнейшем.
Олег - большое спасибо за 13 урок, за Ваш труд!!! Отличный и полезный материал, узнал много нового!!!
Спасибо! Хорошая подача материала.
Олег, материал отличный! Из услышанного/увиденного могу сказать, что теперь есть понимание как действительно код работает.
Раньше, где то приходилось интуитивно осознавать как работает код, где то автору курса доверять, а вот теперь можно и проверять... как этот код работает.
Я, как человек имеющий опыт написания макросов на VBA, постоянно пользовался "отладчиком" в Excel'e наблюдая за тем что происходит с переменными и прочими массивами во время исполнения программы. И это помогало мне очень в работе. И тут такое открытие (лично для меня, как новичка в 1С), что такой же отладчик, а может быть даже и лучше, есть в 1С. Подозрения у меня было о его существовании, но теперь я понял как им пользоваться.
Замер производительности и Стек вызовов - это своего рода карта для "ориентирования на местности". Потенциальным работодателям теперь можно утирать нос этим знанием! )))))
Табло - отличная штука, чтобы понять как течет кровь (исполняется код) в организме 1С:Предприятие (Конфигуратор).
По Табло хотелось бы добавить, что на мой субъективный взгляд было бы удобнее выводить его не внизу экрана в горизонтальном формате, а справа на экране и вертикально, потому что на мой субъективный взгляд, в таком положении можно больше происходящих процессов/изменений в переменных охватить взглядом. Если же табло держать внизу под основным представлением, то часто приходится ползунком пролистывать строки с переменными (или как они там называются) и прыгать взглядом между верхней и нижней частью экрана. Если же расположить табло вертикально справа (получается, что мы делим экран на две части, где в одной части код в модуле, а другой табло), то тогда взглядом можно параллельно охватить как сам код в модуле, так и результаты исполнения этого самого кода по мере прохождения его курсором отладчика.
Вот такое мое наблюдение.
Благодарю за отличный урок, Олег!
Спасибо за отзыв!
Мне не очень удобно использовать табло справа, может это очень субъективно, а может нужен очень широкий монитор.... не знаю :) А может просто привычка :)
Спасибо за интересный обзор. Вот и урок №13 из 16 посмотрел. Грустно, что нет пока продолжения. Ждем новых уроков.
Пожалуйста.
В планах продолжить курс в сентябре.
Как приятно было в конце занятия услышать слово "коллеги" ))) Очень бы хотелось чтобы так стало на самом деле! ))) Еще очень приятно,что некоторые люди оставляют полезную информацию в комментах, делятся своим опытом! )))
продолжили изучать 1с или забросили?
Отличный материал. Спасибо.
Пожалуйста
Спасибо! Очень полезный и доступный материал!
Ого сегодня вторник). А видосик вышел лайкосик сразу)
Спасибо
Урок, как и остальные - потрясающий. Печалит только то что все ближе подбираюсь к последнему(
Есть все шансы на продолжение уроков весной...
Пока нахожусь во власти очень важных и неотложных семейных дел.
Спасибо
Пожалуйста
Спасибо, грамотно объяснил!
Пожалуйста :)
спасибо! все очень доступно)
Пожалуйста :)
@@tp2b Здравствуйте. Скажите в двух словах если это возможно. Почему типовые конфигурации такие сложные. На уровне книги Радченко я уже достаточно уверенно разбираюсь в платформе, но когда я впервые увидел типовую конфигурацию - просто обалдел.
Неужели все эти инструменты реально нужны в работе? Или создатели платформы многие методы и инструменты придумали просто для демонстрации своей богатой фантазии, а не для реальной работы? Объясните это, пожалуйста. Хотя бы абстрактно.
Раньше(лет 15 назад) они были довольно простые для понимания... но, на сколько я знаю, концепция разработки изменилась, простота и понятность уступила место разного рода оптимизациям и код типовых стал сильно сложнее для понимания.
Тут можно долго рассуждать и искать плюсы с минусами, но всё сведется к банальному: "Чем универсальнее инструмент, тем он сложнее и менее эффективен для отдельных задач".
Вот и получается, что "из коробки" мы получаем кучу всяких возможностей, которые раньше заказчик за свой счет дорабатывал, но взамен получаем более сложную разработку того, чего еще не сделала сама 1С или того что уже есть, но не совсем подходит заказчику.
А к тому же и мир изменился... не было раньше, ни честного знака, ни маркетплейсов, ни эдектронного документооборота, ни даже интернет-магазинов развитых :) А теперь есть и с этим приходится мириться :)
@@tp2b да, код типовых сейчас явно не для понимания начинающих
Как вовремя для меня тема про отладчик, было недопонимание- а зачем оно нам? Посмотреть тип и значение переменной, и? Теперь знаю, что это позволяет пошагово следить за исполнением кода и это помощь в поиске ошибок. Из нового- узнала о замере производительности!) Спасибо Вам за отличную подачу материала!
Пожалуйста :)
PS Спасибо за обратную связь, это очень важно!
Интересно конечно про Замер производительности, но например в типовой, какое-нибудь формирование печатной формы от начала и до конца будет занимать добрые пару тысяч строк, попробуй там разобраться:) А вот Стек вызовов - наоборот, постоянный инструмент, особенно при доработке типовой - смотрю процедуру, смотрю параметры, вызываю Стек и смотрю из какой функции эти параметры передавались и раскручиваю дальше.
про дебаг - тут в целом все как у всех. про perf monitor - крутая штука однако, полезная, считаю. а вот про материал вцелом - для поддерживающих системы в рамках "а мне вот тут надо кнопочку подвинуть" или форму какую запилить уже весьма емкая получается.
Принято, буду стараться делать проще и доступнее!
Интересно и познавательно, но про "Идти до курсора" так и не сказали. Спасибо за видео!
Редко пользуюсь этим вариантом...
Пожалуйста! :) С Новым Годом!
Просто мнение - отладчик очень выручил бы перед предыдущим уроком, где надо было самому делать документ с яичницей. Пришлось голову ломать, почему проводка даёт пустые ячейки, кое как допер, что переменная пустая была. С отладчиком за 20 сек бы понял)
Да, тоже об этом подумал ) Я сидел и тупил выводя переменные через Сообщить.
В любом случае большое спасибо автору.
Голос приятный, подача тоже. Несомненно подписка и лайк!!!! Но он для меня схож с остальными курсами тем, что работаю в таких базах (не программистом, а консультантом), что там есть расширения и БСП (про нее вообще ничего не знаю). Вот где вообще не понятно что откуда появилось. И такой вопрос, будет ли курс по БСП в плане того, что, когда пишешь какую то процедуру или функцию заранее знать, что она уже реализована в БСП и не надо еще одну такую придумывать. Или может есть уже практики как это выяснить? Спасибо за ваш труд
Мне кажется всё БСП уместить в голову невозможно... что-то из неё я пользуюсь, что-то делаю сам...
Надо подумать. Идея интересная!
@@tp2b Хорошо было бы добавить про команду Остановить в отладке. Ведь без неё реально не понять, в каком месте сейчас исполняется программа. Ни в одном из видео на ютуб про это не увидел. А новичку без неё никак..... Или есть варианты?
@@melkiy1735 Сколько лет работаю, практически ни когда этим не пользуюсь... мне удобнее пользоваться замером производительности.
В современном мире большинства алгоритмов выполняются на столько быстро, что нажимать на эту кнопку просто некогда. Если брать учебные задачи, так они вообще мгновенно выполняются....
Исключения... Если мы попадаем в зацикливание, в замере это будет хорошо видно, если долго выполняется запрос, тоже будет видно... Можно попробовать вывести из зацикливания такой остановкой... да, думаю иногда можно...
@@tp2b Олег, я про то, что понять в каком месте исполняется код или вызывается та или иная процедура. А по нажатию на эту кнопку и выполнения в пользовательском режиме какого-то действия приведет к нужному месту в коде. Ну или хотя бы к его началу). Мне кажется новичкам будет действительно полезно.
А я стек вызовов постоянно использую. В некоторых случаях вообще не представляю как без него жить можно.
Как-то жил все эти годы, пока мне тут в комментах не написали практику применения :) :) :) :)
Век живи - век учись :)
Здравствуйте! Вопрос не в тему. А про сканеры будет продолжение?
Рассказать что есть, думаю чуть позже будет продолжение... просто как-то без отклика всё это прошло... ну и отложилось в долгий ящик.
Добрый день, Олег не понятно (для новичков как я).
Инструмент Табло, на 12:25 минуте. Вопрос: Чтобы в Табло колонки Значение и Тип заполнились нужно что сделать?
Скопировали Объект/Переменную, вставили в колонку Выражение и...???
Чтобы добавить еще одну строчку - нужно нажать F9?
Здравствуйте!
обычно это происходит автоматически :)
Но.... но для этого мы должны находиться в отладке и остановиться в точке остановки.
(обратите внимание, на точку остановки. Там желтая стрелочка, это значит что мы исполнение кода остановилось в этой точке)
В этом состоянии основная работа с Табло'м и происходит... достаточно добавить переменную, как сразу появится тип, значение и новая пустая строчка ниже.
Если мы не находимся в этом состоянии(желтой стрелочки/крусора нет) то табло работать не будет.
@@tp2b спасибо за супер быстрый ответ!
Да, я пыталась разобраться в этом, и в какой-то момент поняла, что должна быть эта стрелка)))
Спасибо!
Меня уроки вдвойне привлекают поскольку отсутствуют слова-паразиты!
Очень приятно слушать качественную подачу материала!
Спасибо!
А можно несколько примеров реальных ситуаций когда требуется "Точка останова с условием", а то не до конца понятно?
Конечно можно...
например в цикле обрабатывается большой массив товаров, но нам нужно проверить алгоритмы на одном из них(или остатки нужные, или реквизиты по особенному заполнены или еще как-то выделяется обработка и нужно именно на этом товаре).... ловить нужную итерацию простым обычной точкой остановки не удобно, скучно, долго, велика вероятность пропустить нужную итерацию и придётся начать всё с начала.
Ставим условие вида ВыборкаТоваров.Товар.Код = "00000000001" и остановка будет выполнена только на той итерации, на которой условие выполнится.
Аналогичная история происходит, когда какая-то процедура/функция вызывается из какого-то сложного алгоритма, можно также ловить именно нужный вызов по выполнению условий.
Выражение проверяется по текущему контексту(Урок 16) установки точки остановки.
@@tp2b Спасибо! Вроде понятно))
Интересно а с какого момента можно идти пробовать устраиваться на работу? Что нужно уметь джуну для начала, чтобы не сильно позориться?
В идеале сначала получить сертификат Специалист по платформе. Мы пока в самом начале пути.
В реальной жизни всё от человека зависит. Можно начать первые задачки решать довольно рано.
Надо будет пособирать на эту тему информацию и запилить видео :)
@@tp2b было бы интересно) вот я уже 3ий месяц мучаюсь, смотрю Чистова 1с за 21 день и вас, но до специалиста невообразимо далеко по ощущениям)
Курс Чистова не смотрел, сказать ни чего не могу.
Уроков текущего курса еще слишком мало чтобы думать об экзаменах.
Да и вообще, я убеждён, что для работы экзамены нужны именно "в идеале", а в реальном мире начинать нужно именно с практики, пусть с простой и корявой, но с практики и уже потом думать о развитии и об экзаменах типа Специалиста по платформе, т.к. сам экзамен штука весьма специфическая(сдавал, сужу по себе).
Доброго времени суток! Ставлю точку останова с условием. Перехожу в режим Предприятие, провожу документ ПриготовлениеПродуктов и.. ничего не происходит. Возвращаюсь в режим Конфигуратора - точки останова с условием нету. Повторял действие 3 раза, результат такой-же. Не могу понять в чем дело.
Весьма странно... самое банальное предложение - перезагрузите компьютер :)
17:13 меняю 85.2 на 1000 - нажимаю F5 - значение так и осталось 85.2 - перепровожу документ и выдает ошибку Недопустимое значение аргумента функции [dbgtgt - src\dbgtgt\src\IDebuggerTCPlmpl.cpp(2658)] ... Может я где то в коде накосячил, может он у меня работает, но через УПОЖ. Кто нибудь может дать резервную копию у кого все работает
1С:Предприятие 8.3, учебная версия (8.3.22.1603)
Частитчно разобрался, чтобы там появилась 1000, нужно при отладке в табло 85.2 менять на 1000 не руками, а справа есть значок калькулятора - заходим туда вводим 1000 - Ок, потом убираем точки остановы и жмем ф5, но при повторной проводке значение опять меняется на 85.2.... Не знаю так это должно быть или нет (Пишу комментарий сразу по месту без просмотра видео целиком, может быть дальше и будут ответы на мои проблемы)
Что то заполняется, но заполняется вообще как то не так, слишком быстро куда что тыкать не совсем понятно, окна с вашими не совпадают.... ладно, запускаю цикл - просмотр видео - если что то нихрена не понятно - то возвращаемся на начало цикла и смотрим еще раз
во всем виноваты, коллеги, приходится отвлекаться от просмотра видео
Снова приветствую, Олег! Подскажи, в чем может быть причина, если у меня не открывается консоль где мы сообщаем инфу пользователю?
Сообщить("Внимание! Недостаточно продукта: " + ВыборкаДетальныеЗаписи.ПродуктПредставление);
Возможно эта строка кода не выполняется...
Рекомендую посмотреть отладчиком.
@@tp2b помогло, спасибо)