Огромное спасибо. Хорошо знаю js. Появилась необходимость писать курсач на 1с, после чего возник интерес к изучению синтаксиса языка, чтобы быстро в него вникнуть, и твои уроки максимально для этого подошли :) P.S: Оч. хорошо подаёшь материал. Продолжай в том же духе!
Пошаговая инструкция по работе с отладкой в 1С. Как поставить точку останова в коде. Вычисление выражений и просмотр значений переменных. Стек вызовов. Табло для вычисления выражений. Как найти и исправить ошибки в программной коде 1С. Наша статья про отладку: programmist1s.ru/otladka-1s/ Услуги 1С программиста в Москве: 1cproger.ru/ Читайте статьи по 1С на нашем сайте: programmist1s.ru/materialyi-po-1s/
на 5:27 после перезапуска у меня зацикливание не прошло, т.к. не были сохранены изменения в коде, и только после нажатия сохранить, и перезапустить все сработало. Не увидел на видео чтоб вы нажимали сохранить
Странно, делал все как на видео ,но у меня при наведение на Слово количество не высвечивается число, а при вычислении M пишет переменная неопределена, что может быть?
После просмотра появился вопрос можно ли прописать в коде условия остановки его выполнения и открытия в отладчике на этом месте? Т.е. не устанавливать точку останова вручную, а прописать через условную конструкцию условия, при достижении которых исполнение останавливается на этом моменте, а если условия не наступят, то код исполняется полностью.
Илья,возникла необходимость переноса типового функционала в сильно переработанную конфу,необновляемую 5 лет какие инструменты рассмотреть (раньше анализировал стек...,но тут случай сложнее,уже меня не хватает) для анализа необходимых компонентов,составляющих нужную подсистему в источнике? - речь об обычном приложении (не управляемое)
Чтобы СлучЧисло приобрело хотя бы одно значение, необходимо, чтобы цикл выполнился хотя бы один раз. Цикл выполняется при нескольких нажатиях кнопки F11 и прохождением таким образом курсора по всем операциям процедуры. Соответственно, показатель СлучЧисло изменяется при повторении этой процедуры. Вследствие этого Массив накапливает данные и тоже становится доступным к просмотру.
Это конечно хорошо, но как быть когда необходимо узнать в какой момент происходит вызов того или иного события. Например: мне необходимо установить жесткий отбор на динамический список документов. Как мне понять в какой момент открывается форма списка этих документов и какая процедура инициализирует данное открытие?
Устанавливаете точку остановка в событии формы "ПриСозданииНаСервере" (или "ПриОткрытии"). После того, как выполнение кода встанет на этой точке, используйте Отладка - Стек вызовов, чтобы вычислить вызовы, которые привели к открытию формы.
В строке меню"Отладка", у меня отсутствует: шаг вперед, назад, вычисл. выражение и тд. Как найти ? Помогите пожалуйста. Извиняюсь, может для кого то это легко, вот так вот(
Для того, чтобы появилась трассировка, нужно установить точку останова, хотя бы одну, и запустить режим отладки любым способом (Меню "Отладка", Пиктограмма в панели или "f5")
Программируя на Делфи и C# никогда не пользовался отладчиком и не считал это необходимостью. Как минимум с зависанием цикла Пока студия программирования просто сообщит об исключении во время выполнения кода. Так зачем нужен этот отладчик? В 1С вообще есть механизм исключений? По ощущениям от первых роликов я увидел только абсолютно непонятную проверку синтаксиса с ужасающей вложенностью, что-то по типу "ФормаФормаФорма", хотя конечно и не стоило ожидать уровня Visual Studio, но все же неужели мне придется самому искать при помощи точек останова цикл в котором я забыл инкриминировать счетчик?
Да нет, на самом деле очень удобный механизм: всегда можно посмотреть что содержится в той или иной переменной. Это очень полезно, особенно для изучения чужого кода :) А особенно при изучения кода фирмы "1С" :))) По исключениям... Наверное есть (но механизм может отличатся от др. языков - поэтому "наверное"): Попытка //код который может вызвать ошибку Исключение Сообщить(ОписаниеОшибки()); //вывести из-за чего ошибка КонецПопытки; P.S. Ужасающая вложенность ужасает только до момента понимания это вложенности)
Школа 1С - видеоуроки бесплатно, как я понял это вы писали обработку исключений - "try catch finely". Понятно, что если я сам оберну код в этот оператор, то исключение обработается. Ну а если его можно перехватить, значит механизм исключений есть, что уже не может не радовать) Если блок catch не найден, то среда CLR отображает пользователю сообщение о необработанном исключении и останавливает выполнение программы. Последнее предложение, как раз и было моим вопросом, в большинстве багов и ошибок я буду зависать или получать необработанное исключение в среде 1С? Спасибо, что отвечаете на сообщения под видео, которому уже год!
Николай, цикл, в котором вы забыли инкриминировать счетчик, придется искать самостоятельно. Система вам об этом не сообщит. Что касается зависания в момент возникновения ошибок: если в настройках поставить галочку "Останавливать по ошибке", то при отладке в момент возникновения ошибки система встанет на эту ошибочную строчку и даст вам возможность исследовать состояние переменных на момент ее возникновения.
@@Дмитрий-с5щ2и возможно, вы пытаетесь отладить уже подключенную внешнюю обработку. А так нельзя - нужно ее сначала сохранить в виде файла. Затем уже этот файл открыть в режиме "Конфигуратор" для отладки. Далее необходимо будет запустить программу в пользовательском режиме в режиме отладки (например, нажав на клавишу F5 в режиме Конфигуратор). И уже в этом режиме запускать и отлаживать обработку в виде сохраненного файла. После завершения отладки и исправления всех ошибок обработку нужно будет снова подключить туда, откуда вы ее взяли.
Хороший урок, спасибо! Только пока не понятно, отладчик в обычном приложении и управляемом приложении одинаковые или нет? А еще не понятно, кто те 11 ронинов, поставившие дизлайк? ;)
Огромное спасибо. Хорошо знаю js. Появилась необходимость писать курсач на 1с, после чего возник интерес к изучению синтаксиса языка, чтобы быстро в него вникнуть, и твои уроки максимально для этого подошли :)
P.S: Оч. хорошо подаёшь материал. Продолжай в том же духе!
Пошаговая инструкция по работе с отладкой в 1С. Как поставить точку останова в коде. Вычисление выражений и просмотр значений переменных. Стек вызовов. Табло для вычисления выражений.
Как найти и исправить ошибки в программной коде 1С.
Наша статья про отладку:
programmist1s.ru/otladka-1s/
Услуги 1С программиста в Москве:
1cproger.ru/
Читайте статьи по 1С на нашем сайте:
programmist1s.ru/materialyi-po-1s/
Буквально лучший урок по 1С. Возможность изучить чужой код эффективно сложно переоценить. Наблюдать за работой интерпретатора очень интересно.
Спасибо Леонтьев Илья 👋
Ты крутой, спасибо
Спасибо, все понятно.
на 5:27 после перезапуска у меня зацикливание не прошло, т.к. не были сохранены изменения в коде, и только после нажатия сохранить, и перезапустить все сработало. Не увидел на видео чтоб вы нажимали сохранить
Леонтив красавчег 👍🏻😎
Очень полезно! Спасибо!
Странно, делал все как на видео ,но у меня при наведение на Слово количество не высвечивается число, а при вычислении M пишет переменная неопределена, что может быть?
такая же ситуация
Выведи его на "Табло", и шагай, все поймешь в процессе.
После просмотра появился вопрос можно ли прописать в коде условия остановки его выполнения и открытия в отладчике на этом месте? Т.е. не устанавливать точку останова вручную, а прописать через условную конструкцию условия, при достижении которых исполнение останавливается на этом моменте, а если условия не наступят, то код исполняется полностью.
Илья,возникла необходимость переноса типового функционала в сильно переработанную конфу,необновляемую 5 лет какие инструменты рассмотреть (раньше анализировал стек...,но тут случай сложнее,уже меня не хватает) для анализа необходимых компонентов,составляющих нужную подсистему в источнике? - речь об обычном приложении (не управляемое)
привет из 2022
В колонке значения пусто, в колонке тип - неопределено, при вычислении выражения. Что делать?
Тоже, самое что делать? Вы нашли ответ
Чтобы СлучЧисло приобрело хотя бы одно значение, необходимо, чтобы цикл выполнился хотя бы один раз. Цикл выполняется при нескольких нажатиях кнопки F11 и прохождением таким образом курсора по всем операциям процедуры. Соответственно, показатель СлучЧисло изменяется при повторении этой процедуры. Вследствие этого Массив накапливает данные и тоже становится доступным к просмотру.
Благодарю!!
На этом уроке закончилось действие учебной программы... Достигнуто предельное количество подключений. Как то можно его продлить??
"Обламаетесь" =)))
спасибо
Это конечно хорошо, но как быть когда необходимо узнать в какой момент происходит вызов того или иного события. Например: мне необходимо установить жесткий отбор на динамический список документов. Как мне понять в какой момент открывается форма списка этих документов и какая процедура инициализирует данное открытие?
Устанавливаете точку остановка в событии формы "ПриСозданииНаСервере" (или "ПриОткрытии").
После того, как выполнение кода встанет на этой точке, используйте Отладка - Стек вызовов, чтобы вычислить вызовы, которые привели к открытию формы.
@@IlyaLeontyev Спасибо!
Фактически в таких примерах можно в начале зажать F10 и держать, что в итоге приведёт нас к месту бесконечного цикла?
Алексей, "в таких примерах" - то есть в зависающих задачах? Да, Вы все правильно поняли.
ооо точка остановы это прям как в визуал студио сишка)))))
В строке меню"Отладка", у меня отсутствует: шаг вперед, назад, вычисл. выражение и тд. Как найти ? Помогите пожалуйста. Извиняюсь, может для кого то это легко, вот так вот(
Для того, чтобы появилась трассировка, нужно установить точку останова, хотя бы одну, и запустить режим отладки любым способом (Меню "Отладка", Пиктограмма в панели или "f5")
Программируя на Делфи и C# никогда не пользовался отладчиком и не считал это необходимостью. Как минимум с зависанием цикла Пока студия программирования просто сообщит об исключении во время выполнения кода. Так зачем нужен этот отладчик? В 1С вообще есть механизм исключений? По ощущениям от первых роликов я увидел только абсолютно непонятную проверку синтаксиса с ужасающей вложенностью, что-то по типу "ФормаФормаФорма", хотя конечно и не стоило ожидать уровня Visual Studio, но все же неужели мне придется самому искать при помощи точек останова цикл в котором я забыл инкриминировать счетчик?
Да нет, на самом деле очень удобный механизм: всегда можно посмотреть что содержится в той или иной переменной. Это очень полезно, особенно для изучения чужого кода :)
А особенно при изучения кода фирмы "1С" :)))
По исключениям... Наверное есть (но механизм может отличатся от др. языков - поэтому "наверное"):
Попытка
//код который может вызвать ошибку
Исключение
Сообщить(ОписаниеОшибки()); //вывести из-за чего ошибка
КонецПопытки;
P.S.
Ужасающая вложенность ужасает только до момента понимания это вложенности)
Школа 1С - видеоуроки бесплатно, как я понял это вы писали обработку исключений - "try catch finely". Понятно, что если я сам оберну код в этот оператор, то исключение обработается. Ну а если его можно перехватить, значит механизм исключений есть, что уже не может не радовать) Если блок catch не найден, то среда CLR отображает пользователю сообщение о необработанном исключении и останавливает выполнение программы. Последнее предложение, как раз и было моим вопросом, в большинстве багов и ошибок я буду зависать или получать необработанное исключение в среде 1С? Спасибо, что отвечаете на сообщения под видео, которому уже год!
Николай, цикл, в котором вы забыли инкриминировать счетчик, придется искать самостоятельно. Система вам об этом не сообщит.
Что касается зависания в момент возникновения ошибок: если в настройках поставить галочку "Останавливать по ошибке", то при отладке в момент возникновения ошибки система встанет на эту ошибочную строчку и даст вам возможность исследовать состояние переменных на момент ее возникновения.
У вас получается и во внешней обработке отладчик работает?
1С не любит Фаерволов. Дайте ему "полный доступ" - и отладчик заработает и во внешних обработках.
@@user-vg9vz9xo3v Это как, подскажите пожалуйста
@@Дмитрий-с5щ2и отладчик должен работать во внешней обработке без проблем.
@@IlyaLeontyev почему то не останавливается... А ещё, как отлаживать внешние печатные формы?
@@Дмитрий-с5щ2и возможно, вы пытаетесь отладить уже подключенную внешнюю обработку. А так нельзя - нужно ее сначала сохранить в виде файла. Затем уже этот файл открыть в режиме "Конфигуратор" для отладки. Далее необходимо будет запустить программу в пользовательском режиме в режиме отладки (например, нажав на клавишу F5 в режиме Конфигуратор). И уже в этом режиме запускать и отлаживать обработку в виде сохраненного файла. После завершения отладки и исправления всех ошибок обработку нужно будет снова подключить туда, откуда вы ее взяли.
"останова", "табло".. неужели эти слова никого не смущают?
Людей, знающих русский, не смущает. Посмотрите в вики значение слова "останов".
Хороший урок, спасибо!
Только пока не понятно, отладчик в обычном приложении и управляемом приложении одинаковые или нет?
А еще не понятно, кто те 11 ронинов, поставившие дизлайк? ;)
КолвоДизлайков = КолВоСотрудниковУчЦентраН1 - 1РандомныйСлепой Или 1РандомныйГлухой;
Спасибо за Уроки! Но всё-таки не "зависание", а "зацикливание" программы происходит. Зависшая программа не станет реагировать на отладку.
А как ПОДКЛЮЧИТЬ эту долбаную отладку? Она вообще теперь не работает, ничего не останавливается!!!
Извините, но Вы так не приятно причмокиваете и придыхаете, еле еле через силу дослушал до конца. Поработайте пожалуйста над подачей.
Если из шипованой резины повыдергивать шипы, шума будет меньше, а вот эффекта не будет. Смыслом проникайтесь, а не шипами
@@lero4ka_valero4ka_77 мчмок мчм мням хорошо
@@ПавелВасюков-ж9и Вам бесплатно предоставляют ценную информацию, а вы на причмокивания(которых я не заметил) обращаете внимание.
держи в курсе "братан"