Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 5 Тема- Отладчик

Работа добавлена на сайт samzan.net:


Лабораторная работа №5

Тема: Отладчик.

Цель: Научится работать с отладчиком.

Время выполнения: 2 часа

Средства обучения:

- персональный компьютер

- 1С: Предприятие 8.1

Порядок выполнения работы:

  1.  Запустить 1С: Предприятие 8.1
  2.  Начать работу
  3.  Составить отчет, о сделанной работе описав процесс создания, сделать скриншоты (снимки экрана) ответить на контрольные вопросы.

Ход работы:

  1.  Прочитать теоретическую часть
  2.  Начать работу в 1С: Предприятие 8.1 и выполнить отладку

Контрольные вопросы:

  1.  Для чего нужна отладка?

Преподаватель: Маркин А.А.

Теоретическая часть:

Что такое отладчик

Если у Вас уже имеется опыт программирования на каком-либо языке программирования, то ты наверняка знаешь, для чего нужны отладчики,

Итак, отладчик – это отдельное приложение, либо компонент среды разработки (IDE) предназначенный для поиска ошибок в программе. Отладчик позволяет тебе выполнять код программы пошагово (трассировка), просматривать значения переменных, изменять их значения (прямо во время выполнения программы) и т.д.

Отладка в 1С:Предприятие 8.х

Поскольку «1С:Предприятие» это все же платформа, включающая в себя полноценную среду разработки присутствие в ней отладчика вполне обосновано. Запусти «1С:Предприятие» в режиме конфигуратор и открой в нем созданную в прошлом уроке информационную базу. Затем, создай новую внешнюю обработку.

Для внешней обработки нам потребуется создать форму. Как это делается, ты можешь прочитать в первой части статьи. Делать какие-либо настройки для формы, а также добавлять компоненты нам не потребуется. Для сегодняшнего урока, созданных по умолчанию кнопок «Выполнить» и «Закрыть» будет вполне достаточно.

Рисунок 1. Пустая форма новой обработки

Так, с обработкой разобрались, теперь определим действие для кнопки «Выполнить». Для этого щелкни один раз левой клавишей мыши по кнопке «Выполнить», а затем в панели свойств (рисунок 2) кликни напротив свойства «Действие» по пимпе с изображением лупы. После этого перед тобой откроется редактор кода с созданной заготовкой для процедуры КнопкаВыполнитьНажатие(Кнопка).

В теле процедуры напишем небольшой кусочек кода. Я понимаю, что еще не объяснял тебе про циклы, условия и т.д. (на примере «1С:Предприятие»), но не стоит волноваться. Пока просто перепиши мой код (если ты уже имеешь опыт программирования, то с его пониманием не должно возникнуть проблем), а в следующей статье я уже подробно расскажу про различные языковые конструкции применяемые в «1С:Предприятие».

Листинг 1. Код для отладки

Переменная1 = 24;

Переменная2 = 31;

 

Массив = Новый Массив;

 

//Ошибок не возникнет

РезультатСложения = Переменная1 + Переменная2;

 

//Ошибок не возникнет

РезультатВычитания = Переменная2 - (Переменная1 + 7);

 

//А вот здесь произойдет ошибка

//на 0 делить нельзя

РезультатДеления = Переменная1 / РезультатВычитания;

 

//запускаем цикл от 0 до 1 млн

//заполняем массив

Для сч = 0 по 1000000 Цикл

 Массив.Добавить(сч + сч);

КонецЦикла;

Рисунок 2. Окно свойств кнопки

Приведенный код прост, но сегодня нам такой и нужен. Обрати внимание, в нем нет выводов сообщений с результатами вычислений, их нам предстоит смотреть в отладчике.

Возможности отладчика

Наш код готов, самое время приступить к его отладке. Все функции встроенного отладчика в «1С:Предприятие» ты можешь найти в пункте главного меню «Отладка». Рассмотрим его содержимое подробней:

Рисунок 3. Возможности отладчика

1. Продолжить отладку – Кнопка предназначена для двух действий: запуск режима «Предприятия» для начала отладки; продолжение отладки после остановки программы на точке останова.
2. Перезапустить – Перезапуск режима «Предприятие» во время отладки. Функция обычно применяется когда ты внес изменения в код, но забыв перезапустить 1С:Предприятие (для того чтобы внесенные тобой изменения начали действовать) запустил отладку. В этом случае ты также попадешь в окно отладки, но недавно внесенные изменения в код не будут задействованы. Чтобы прервать процесс отладки (в зависимости от отлаживаемой части он может занимать достаточно продолжительное время) и перезапустить создаваемое решение, и предназначена эта кнопочка.
3. Завершить – завершение процесса отладки. 1С'ка, запущенная в режиме «Предприятие»? будет закрыта (именно та копия, которая связана с отладчиком). Этот пункт применяется для принудительной остановки отладки. Например, ты выполняешь отладку и код зациклился. Тут ничего не остается делать, как выполнить прекращение отладки.
4. Остановка по ошибке – выполнение остановки программы при возникновении ошибки. Функция позволяет начинать отладку сразу после возникновения ошибки. Обычно эта опция применяется при тестировании (особенно при первом тесте разрабатываемого решения), т.к. мы еще не можем знать проблемных участков в коде (следовательно, не можем определить нужную точку останова), поэтому чтобы приступить к отладке в момент возникновения ошибки. Чуть позже я рассмотрю пример ее практического использования.
5. Подключение – подключение отладчика к уже открытой конфигурации в режиме «Предприятие». Возможность полезна для отладки решений запущенных от имени другого пользователя или выполняющихся на удаленном компьютере. Очень часто сталкиваешься с ситуацией, когда на твоей тачке все работает отлично, а на компьютере конечного пользователя происходят какие-то странности. В таких ситуациях, проще всего подключиться отладчиком к его 1С'ске, и посмотреть что к чему.
6. Шагнуть в – трассировка кода с заходом в процедуру. Сразу представим пример. Тебе требуется отладить некий код (например, тот, который мы написали в обработчике события для нашей единственной кнопке), а в коде есть вызов функции, объявленной, в общем, в модуле. Когда ты доберешься до кода вызова функции, у тебя будет выбор – перейти к отладке тела функции или продолжить отладку обработчика события. Для перехода к отладке кода вызываемых процедур/функции и предназначена эта кнопка.
7. Шагнуть через – полная противоположность предыдущем пункту. Если ты дошел в коде до вызова функции и нажал «Шагнуть через», то перехода к отладке тела функции не будет.
8. Шагнуть из – выход из тела функции/процедуры. Если ты вдруг перешел к отладке тела функции и передумал пошагово выполнять ее код, то нажимаешь «Шагнуть из» и моментально вернешься к месту, в котором выполнил погружение.
9. Идти до курсора – отладка будет выполняться до места в котором установлен курсор. Затем пошаговая отладка будет завершена и приложение продолжит работу в штатном режиме.
10. Текущая строка – перемещение курсора на текущую строку отладки.
11. Точка останова – установка точки останова (брякпоинта; бряка; – сленговые выражения). В месте установки точки останова начнется отладка приложения. Например, тебе надо начать отладку с пятой строчки своего кода. Ставишь на ней точку останова и запускаешь программу на выполнение. Как только дойдет очередь до точки останова, сразу же произойдет переключение в режим пошагового выполнения программы.
12. Точка останова с условием – у этой функции точно такая же роль, что и у предыдущей, но за одним исключением. Переключение в режим отладки произойдет лишь в случае выполнения заданного условия. Подобные точки бывают очень полезны во время нахождения нерегулярно повторяющихся ошибок. Допустим, ты знаешь, что ошибка возникает при 100-м разе выполнения цикла. Как быть? Каждый раз пошагово просматривать 100 раз выполнения цикла? Можно, но не нужно. Лучше поставить точку останова с условием и начинать отладку сразу на 100-й итерации.
13. Отключение точки останова – временное отключение точки останова. Выполнив эту функцию, ты больше не будешь попадать в режим отладки в месте установки точки останова. Она будет отключена (но не удалена).
14. Убрать все точки останова – удаление всех ранее расставленных точек останова в тексте программы.
15. Отключить все точки останова – то же самое, что и отключение точки останова, только для всех расставленных точек.
16. Точки останова – просмотр всех установленных точек останова в диалоговом окне. В нем ты можешь отключать/включать точки останова, устанавливать для них условия, удалять и т.д.
17. Вычислить выражение – функция позволяет вычислить/посмотреть выражение, записанное на встроенном языке. Это, пожалуй, наиболее часто используемая функция во время отладки. С ее помощью выполняется просмотр значений переменных; просмотр результата выполнения выражения на встроенном языке; перенос переменны в специальное табло (для постоянного наблюдения за содержимым переменной во время пошаговой отладки).
18. Табло – отображение панели, на которую можно перетаскивать переменные, значение которых будут отображаться во время пошаговой отладки. Именно в эту панель попадают переменные после нажатия кнопки «Включить в табло» в окне «Выражения», вызываемом через функцию «Вычислить выражение».
19. Стек вызовов – в стеке вызовов выводится последовательность функций/процедур, которые привели к строке, отлаживающейся в настоящий момент.
20. Замер производительности – инструмент выполняет замеры производительности конфигурации или определенной ее части. Если для разрабатываемого решения особое значение имеет скорость выполнения, то этот инструмент поможет тебе выявить участки кода, которые выполняются особенно медленно.

Отладка на практике

Функции, предоставляемые платформой «1С:Предприятие» для отладки мы рассмотрели и теперь самое время проверить некоторые из них на практике. Начнем с самого простого – установки точки останова. Перейди в редактор кода (если ты еще не в нем), установи курсор на первой строчке и нажми клавишу F9 (или воспользуйся пунктом «Точка останова» в меню «Отладка»). Затем, нажми клавишу F5 (начни отладку). Выполнив это действие, ты запустишь «1С» в режиме «Предприятие». В нем открывай созданную обработку и жми на кнопку «Выполнить». Не успеешь моргнуть и глазом, как перед тобой снова распахнет свои объятия «Конфигуратор», только теперь напротив строчки, где мы установили точку останова, появится желтая стрелочка. Это означает, что сейчас будет выполнена данная строка. Чтобы это произошло, тебе нужно воспользоваться клавишами «навигации»: F11 (шагнуть в), F10 (шагнуть через), Shift+F11 (шагнуть из) и Shift + F10 (идти до курсора).

Нажми клавишу F10. Желтая стрелка переместится на следующую строку и в переменную с именем «Переменная1» будет записано числовое значение 24. Чтобы в этом убедиться, выдели имя переменной («Переменная1») и нажми сочетание клавиш Shift + F9 (нажатие равносильно выбору пункта “Вычислить выражение» в меню «Отладка»). Если ты не промахнулся с выделением имени переменной, то увидишь примерно такую же картинку как на рисунке 4.

Рисунок 4. Смотрим значение переменной

В этом окне мы можем узнать тип переменной, ее значение, а также, в случае необходимости, вычислить произвольное выражение на встроенном языке. Например, попробуй ввести в строке «выражение» следующий текст:

ТипЗнч(Переменная1) = Тип("Число")


Затем нажми кнопку «Рассчитать» и в окне результатов ты должен увидеть примерно следующее:

Рисунок 5. Вычисляем значение выражения

Что означает данное выражение? Все просто, в нем я выполняю сравнение типа значения переменной «Переменная1» с типом «Число». Если «переменная1» является числом, то результат будет «Истина». В нашем случае так оно и есть.

Надеюсь, с этим все ясно, двигаемся дальше. Пока закрой окно вычисления результатов и попробуй пошагово пройтись по всему коду. Периодически проверяй значение переменных с помощью окна вычисления выражений. Особое внимание обрати на строчку, в которой происходит деление. В ней я намеренно совершил ошибку. Значение переменной «РезультатВыражения» равно 0, а на ноль делить нельзя. Следовательно, на этом шаге возникнет ошибка, и отладка будет прекращена. Пока не будем ее исправлять, а познакомимся с другими функциями отладчика.

Начнем с «Остановка по ошибке». Зайди в соответствующий пункт меню «Отладка». В появившемся окне (рисунок 6) установи флажок «Останавливаться по ошибке».

Рисунок 6. Окно «Остановка по ошибке»

Этим действием мы укажем отладчику, что переходить в режим пошаговой отладки нужно всякий раз как платформа будет генерировать какую-нибудь ошибку. В этом окне также есть табличная поле, в котором ты можешь определить текст сообщений, при возникновении которых стоит переходить в режим отладки. Для нашего примера мы не будем определять список конкретных сообщений. Нам главное увидеть работу этой функции в действии. Итак, установи флажок и нажми кнопку Ok.

Вернись в режим «Предприятие» и вновь в обработке нажми кнопку «Выполнить». Поскольку мы устанавливали точку останова, то значит, ты сразу попадешь в режим отладки. Для демонстрации примера нам это не нужно, поэтому после того как выполнение программы остановится (сработает точка останова) нажми F5, тем самым продолжив выполнение.

Буквально сразу после нажатия F5 ты вновь попадешь в отладчик, а также увидишь сообщение как на рисунке 7.

Рисунок 7. Сработала система «Остановка по ошибке»

В этом сообщение тебе сразу приводится номер строки, в которой произойдет ошибка, а также текст ошибки. Нажав кнопку Ok, ты сможешь продолжить отладку приложения.

Я уже говорил, что этот инструмент весьма полезен при начальной отладке приложения. Установил реакцию на ошибки и начинаешь спокойно тестировать приложение. Возникла ошибка – перешел в отладчик и начал просматривать содержимое всех переменных, участвующих в выполнении операции.

Точки останова с условием

Точки останова могут быть двух видов – обычные и с условием. С первыми мы уже познакомились, теперь настала очередь вторых. Чтобы установить точку останова с условием, необходимо установить курсор в строке, для которой требуется создать точку останова, а после этого пройти в меню «Отладка» и выбрать пункт «Точка останова с условием».

Рисунок 8. Установка точки останова с условием

Напиши в этом окне: «РезультатВычитания = 0» (без кавычек) и нажми Ok. Сразу после этого, слева от строки, на которой находится курсор, появится значок в виде знака вопроса.

Считай, что установка точки останова с условием нам удалась. Попробуй опять нажать на кнопку «Выполнить» нашей обработки (в режиме «Предприятие») и посмотреть поведение отладчика. Если ты все сделал правильно, то практически сразу попадешь в отладку, т.к. сработает условная точка останова, которая сравнивает значение переменной «РезультатВычитания» с 0.

Такой тип точек останова очень удобно применять в коде с большим количеством вычислений и расчетов. Вспомни сразу пример, который я приводил при описании меню «Отладка».

Шагаем «в» и «из»

Функция Умножить(Число1, Число2)

Возврат Число1 * Число2;

КонецФункции

Данная функция выполняет умножение числа переданного ей в качестве первого параметра на число, переданное в качество второго параметра. Смысла заводить функцию для этой простейшей операции, в целом нет. Числа можно и так перемножить. Я ее описал лишь для того, чтобы опробовать на практике варианты шагов отладки. Ок, идея понятна. Давай, где-нибудь в основной процедуре произведем вызов только что описанной функции. В своем примере я это сделал сразу после строки с операцией сложение:

РезультатУмножения = Умножить(Переменная1, Переменная2);


Установи для этой строки точку останова и вновь запусти отладку (не забудь, что тебе требуется закрыть в режиме предприятия открытую обработку и заново ее открыть, иначе твой новый код обработан не будет). После того как управление будет передано отладчику нажми клавишу F11 и ты сразу перепрыгнешь в тело функции Умножить(). Попав в функцию Умножить(), можешь начать трейсить ее код (выполнять пошагово) или сразу из нее вернуться на то же место откуда и пришел. Для возврата воспользуйся функцией Шагнуть из (Shift + F11).

Рисунок 9. Стек вызовов после захода в функцию Умножить()

Замеряем производительность

Последняя функция отладки, с которой я тебя хочу познакомить – замер производительности. Это очень важная фича и ее приходится применять в каждом проекте. Весь создаваемый код должен быть не только рабочим, но и быстрым. Если код выполняет какую-то крутую функцию, но делает это очень медленно, то возможно и нет смысла пользоваться этим кодом (бывают, конечно, и исключения). Лучше сразу его либо переписать, либо оптимизировать.

Первый подход чересчур глобальный и требует четкого понимания и уверенности, что новый алгоритм действительно в n-ое число раз быстрее старого. Если такой уверенности нет, то лучше не тратить свое драгоценное время на бессмысленное кодирование. Куда эффективней попробовать оптимизировать существующее и рабочее решение, нежели выдумать новый велосипед. Инструмент «Замер производительности» создан для того, чтобы ты мог замерить время выполнения своего кода и на основании полученных данных принять соответствующие меры.

Несмотря на большую пользу этой возможности, пользоваться ей совсем не сложно. И сейчас ты в этом убедишься. Но сначала, давай внесем в наш тестовый код небольшое изменение. Найди строку, в которой происходит деление на 0 и закомментируй ее (установи курсор на строку и нажми сочетание клавиш ctrl + / или просто перед строчкой поставь два слеша (//)). Это пришлось сделать для того, чтобы наша обработка не выдавала ошибку на этой строке, а добралась до кода с длинным циклом.

Выбери пункт «Замер производительности» в меню «Отладка». Не пугайся, если перед тобой не появится каких-либо окон. Так все и должно быть. Пока ты просто активировал замер производительности и теперь нужно начать тестировать нашу обработку. Перейди в режим «предприятие» и нажми на кнопку «Выполнить». Как только обработка завершит свою работу, тебе надо вернуться в конфигуратор и опять зайти в меню «Отладка» -> «Замер производительность». На этот раз перед тобой должно появиться окошко как на рисунке 10. В нем ты можешь увидеть время, затраченное на выполнения определенных участков кода твоей обработке. Применительно к нашему примеру, самым медленным участком будет бесконечный цикл.

Рисунок 10. Замеряем производительность

Заключение

Отладка – неотъемлемая часть разработки приложения. Чтобы не говорили, а без отладчика многие проблемы выявить нереально. К сожалению, не все начинающие программисты горят желанием разбираться с нюансами отладки. Свое объяснение этому факту я уже приводил. Это в корне неверный подход. Рано или поздно тебе все же придется столкнуться с «кошмаром» с именем «Отладка».

2

Лист

Дата

Подпись

№ докум.

Лист

Изм.

БМТ

4

Листов

ит.

Утверд.

Н. Контр.

Реценз.

Маркин А.А.

Провер.

Хасьянов Р.М

Разраб.

10

Лист

Дата

Подпись

№ докум.

Лист

Изм.

3

Лист

Дата

Подпись

№ докум.

Лист

Изм.

4

Лист

Дата

Подпись

№ докум.

Лист

Изм.

5

Лист

Дата

Подпись

№ докум.

Лист

Изм.

6

Лист

Дата

Подпись

№ докум.

Лист

Изм.

7

Лист

Дата

Подпись

№ докум.

Лист

Изм.

8

Лист

Дата

Подпись

№ докум.

Лист

Изм.

9

Лист

Дата

Подпись

№ докум.

Лист

Изм.

10

Лист

Дата

Подпись

№ докум.

Лист

Изм.

11

Лист

Дата

Подпись

№ докум.

Лист

Изм.




1. Финансовые стратегии при реструктуризации государственного долга
2. Тема 1 Содержание и роль финансового анализа
3. Водночас власних коштів банку замало для розширення кредитних вкладень проведення операцій на фондовому ф.html
4. ЗАДАНИЕ Часть 1 ОАО Альфа небольшое промышленное предприятие которое начало св
5. Общее понятие «местное хозяйство» Теоретическая модель местной экономики
6. Реферат- Чипирование важный атрибут современной жизни
7. 1. Расчет валового внутреннего продукта ВВП и других показателей системы национальных счетов.html
8. Мятный Мохито Производитель ООО Ригли Россия СанктПетербург Состав- сорбит E420 резиновая основа
9. Задание 1. Работа с окнами объектов Если на экране монитора отсутствует Рабочий стол Windows то запустите ОС Windo
10. тематичне та програмне забезпечення обчислювальних машин і систем Автореферат дисертації
11. діловодство документаційне забезпечення управлінської діяльності документування організація ро
12.  Теоретичні основи формування знань молодших школярів про природу
13. Северный Арктический федеральный университет имени М
14. КАЗАНСКИЙ ПРИВОЛЖСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ в г
15. Малоэтажный жилой дом
16. Складові PR-кампанії
17.  Eduction in Britin Let us tke look t schools s most British children experience them tody
18. Понятие производства по делам об административных правонарушениях его задачи и принципы
19. Обзор сетевых функций PHP
20. Чечня в период гражданской войны 1918-1920 гг