Практика с объяснением

Тренажёр чтения кода 1С:
выберите ответ и разберите ход решения

Шесть коротких фрагментов: циклы, соответствие, условие и серверная директива. Сначала выберите ответ самостоятельно, затем сравните ход мысли с объяснением.

Вопрос 1 из 6

Какой итог даст цикл?

Итог = 0;
Для Номер = 1 По 4 Цикл
    Итог = Итог + Номер;
КонецЦикла;
Выберите один ответ

Без таймера. Ответы не отправляются и исчезнут после перезагрузки страницы.

  • Один вопрос на экране
  • Объяснение после ответа
  • Повторение сложных тем
  • Без регистрации и отправки ответов
Содержание

Как заниматься с тренажёром

Отведите несколько спокойных минут. Не открывайте объяснение до выбора ответа. Для цикла выпишите значения после каждого прохода, для коллекции — её содержимое после каждой вставки.

Неправильный ответ не отнимает попытки. После проверки переходите дальше или вернитесь к уже разобранному вопросу. Чтобы проверить себя заново, начните новую попытку; не считайте повтор после чтения объяснений независимой проверкой знаний.

Цикл с накоплением Итога открыт в настоящем модуле управляемой формы 1С
Так выглядит первый фрагмент в конфигураторе: цикл находится внутри обработчика кнопки. Для самостоятельной проверки добавлен Сообщить(Итог). Сначала проследите изменения вручную; результат здесь не показан.

Какой итог даст цикл?

Проследите фрагмент вручную. Какие значения окажутся в переменных после последней строки?

Учебный пример для разбора
Итог = 0;
Для Номер = 1 По 4 Цикл
    Итог = Итог + Номер;
КонецЦикла;
Показать ответ и объяснение

Ответ: 10. Границы от 1 до 4 включаются в обход. Итог меняется так: 0 → 1 → 3 → 6 → 10. Здесь суммируются значения, а не считается число проходов.

Проверьте себя. Измените одно исходное значение и снова объясните результат без запуска.

Почему осталась только последняя цена?

Проследите фрагмент вручную. Какие значения окажутся в переменных после последней строки?

Учебный пример для разбора
Цены = Новый Массив;
Цены.Добавить(100);
Цены.Добавить(200);
Итог = 0;
Для Каждого Цена Из Цены Цикл
    Итог = Цена;
КонецЦикла;
Показать ответ и объяснение

Ответ: Присваивание заменяет итог на каждом проходе. Строка Итог = Цена заменяет накопленное значение. После двух проходов получится 200. Для суммы нужно Итог = Итог + Цена, тогда получится 300.

Проверьте себя. Измените одно исходное значение и снова объясните результат без запуска.

Что вернёт Получить("А")?

Проследите фрагмент вручную. Какие значения окажутся в переменных после последней строки?

Учебный пример для разбора
Цены = Новый Соответствие;
Цены.Вставить("А", 100);
Цены.Вставить("А", 150);
Результат = Цены.Получить("А");
Показать ответ и объяснение

Ответ: 150. Повторный ключ заменяет прежнее значение. В соответствии одна пара с ключом «А» и значением 150. Две цены не складываются автоматически.

Проверьте себя. Измените одно исходное значение и снова объясните результат без запуска.

Где выполняется эта функция?

Фрагмент размещён в модуле управляемой формы. Определите место выполнения по директиве.

Учебный пример для разбора
&НаСервереБезКонтекста
Функция Удвоить(Знач Число)
    Возврат Число * 2;
КонецФункции
Показать ответ и объяснение

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

Проверьте себя. Измените одно исходное значение и снова объясните результат без запуска.

Каким станет Количество?

Проследите фрагмент вручную. Какие значения окажутся в переменных после последней строки?

Учебный пример для разбора
Количество = 0;
Для Х = 1 По 5 Цикл
    Если Х % 2 <> 0 Тогда
        Продолжить;
    КонецЕсли;
    Количество = Количество + 1;
КонецЦикла;
Показать ответ и объяснение

Ответ: 2. Продолжить пропускает оставшуюся часть текущего прохода для нечётных 1, 3 и 5. Увеличение выполняется только для 2 и 4. Ответ — 2.

Проверьте себя. Измените одно исходное значение и снова объясните результат без запуска.

Что лежит в Результат?

Проследите фрагмент вручную. Какие значения окажутся в переменных после последней строки?

Учебный пример для разбора
Цены = Новый Соответствие;
Цены.Вставить("А", 0);
Результат = Цены.Получить("Б");
Показать ответ и объяснение

Ответ: Неопределено. Ключ «Б» не найден, поэтому Получить возвращает Неопределено. Ноль сохранён под другим ключом «А» и не становится значением по умолчанию для всех ключей.

Проверьте себя. Измените одно исходное значение и снова объясните результат без запуска.

Что делать с результатом

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

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

Самопроверка

Частые вопросы

Здесь выполняется код 1С?

Нет. Проверяется выбранный вариант ответа. Фрагменты предназначены для чтения; браузер не запускает BSL.

Сохраняются ли ответы на сервере?

Нет. Ответы находятся в памяти страницы. После перезагрузки попытка начинается заново.

Это замена практике в конфигураторе?

Нет. После объяснения повторите тему в собственной учебной базе и проверьте изменённый пример.

Первичные источники

Что проверить дополнительно

·

Полезный материал

Поделиться статьёй

Сохраните материал или отправьте его тому, кому он пригодится.

Следующий шаг

Теперь попробуйте найти ошибку самостоятельно

В тренажёре код-ревью — 50 бесплатных заданий на поиск ошибок в чужом коде. Отметьте проблемные строки, объясните причину и сравните результат с проверкой. Это самостоятельная тренировка, не проверка вашей работы ментором.

Нужен бесплатный вход. AI-раздел и практика с проверкой ментором имеют отдельные условия доступа. В «1С код» действуют лимиты попыток и восстановление жизней.
Открыть тренажёр код-ревью →