[Alimir_BootModal_Login]

Внутренний язык программирования 1С 8.3 для начинающих программистов: отладка в 1С

Автор уроков и преподаватель школы: Владимир Милькин

Как вы знаете, выполнение программы 1С компьютером - это последовательное исполнение команд, написанных программистом. На этом занятии мы научимся останавливать компьютер во время выполнения определенной команды и просматривать значения переменных в этот самый момент. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.

Этот процесс в 1С называется отладкой и он бывает очень полезен для того, чтобы разобраться в том, как программа работает. Благодаря отладке мы также можем легко находить ошибки, которые допустили на этапе написания кода.

Отладка в 1С

Итак, давайте начнём наш эксперимент.

Напишите в модуле управляемого приложения следующий код:

    А = 3;
    Б = 5;
    Сумма = А + Б;
 
    Сообщить(Сумма);
 
    Сумма = Сумма * 2;
    Сообщить(Сумма);

Код очень простой. Сначала мы определяем две переменные с именами А и Б и значениями 3 и 5 соответственно. Затем складываем эти числа и кладём результат сложения в переменную с именем Сумма. Затем выводим это значение на экран. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Затем удваиваем это значение. И снова выводим.

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

Для этого установим курсор мыши в пятую строчку:

И в главном меню выберем команду "Отладка"-"Точка останова".

Если при этом появилась вот такая ошибка...

... это означает, что код который мы собираемся отлаживать ещё не сохранен в базу данных и нам следует предварительно выполнить пункт меню "Конфигурация-Обновить конфигурацию базы данных":

После этого конфигуратор даст нам установить точку остановки в нужном месте.

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

Теперь запустим отладку программы. Для этого через главное меню выполним команду "Отладка"-"Начать отладку" (или нажмём F5 на клавиатуре).

И увидим, что компьютер дошёл до пятой строчки и замер в ожидании наших дальнейших действий. Об этом свидетельствует стрелка, появившаяся слева от пятой строки. Это стрелка указывает нам на какой команде находится компьютер в данный момент исполнения программы.

Предположим, что мы хотим увидеть чему равно значение переменной Сумма в данный момент. Для этого выделим мышкой эту переменную:

И выполним через главное меню команду "Отладка"-"Вычислить выражение...":

Откроется следующее окно, в котором мы видим нашу переменную и её значение в данный момент. Оно действительно равно восьми. Закройте это окно.

Но давайте заставим компьютер выполнить текущую команду и перейти к следующей. Для этого выполним "Отладка"-"Шагнуть через" (или нажмём F10 на клавиатуре):

И мы увидим, что стрелка выполнения переместилась на следующую команду, которая удваивает значение переменной Сумма:

И ещё раз выполним "Отладка"-"Шагнуть через" (а лучше снова нажмём F10 на клавиатуре), чтобы стрелочка оказалась на последней строке:

А теперь снова выделим переменную Сумма и выполним "Отладка"-"Вычислить выражение...". Как видите значение переменной Сумма теперь стало равно 16:

Чтобы прекратить отладку программы выполним команду "Отладка"-"Завершить".

Когда отладка закончена и мы не хотим, чтобы компьютер останавливался во время выполнения программы - просто выполним "Отладка" - "Убрать все точки останова" и все красные точки из программы исчезнут.

Пройдите тест

Начать тест

Домашнее задание

Выполните отладку вот этой программы:

    МассивЧисел = Новый Массив(5); // объявим массив на 5 ящиков
    МассивЧисел[0] = 10;
    МассивЧисел[1] = 5;
    МассивЧисел[2] = 450;
    МассивЧисел[3] = 654;
    МассивЧисел[4] = 34;
 
    // изначально делаем наименьшее число заведомо очень большим
    НаименьшееЧисло = 1000000; 
    Для Шаг = 0 По 4 Цикл // пробегаемся по всем значениям массива
        // если в массиве есть число меньшее, чем НаименьшееЧисло
        Если МассивЧисел[Шаг] < НаименьшееЧисло Тогда 
            // тогда его и делаем новым наименьшим числом
            НаименьшееЧисло = МассивЧисел[Шаг];
        КонецЕсли;
    КонецЦикла;
 
    Сообщить("Наименьшее из введенных чисел равно " + НаименьшееЧисло);

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

Для учеников

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

Обязательно выполняйте все тесты и домашние задания, старайтесь улучшить свои результаты. Сверяйтесь с эталонными решениями только после самостоятельного выполнения задач.

На вопросы учеников — отвечаю по почте,  но прежде загляните в ЧАВО (ссылка) .

С уважением, Владимир Милькин

[Alimir_BootModal_Login]