1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-16 07:10:14 +02:00
1c-homeworks/homework-2-6.md
2023-05-24 16:28:58 +05:00

9.1 KiB

Задание к занятию "Циклы"

Примерное время выполнения: 60 минут

Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.

Любые вопросы по решению задач задавайте в чате учебной группы.

Цель задания

  1. Закрепить на практике приемы разработки алгоритмов с циклами

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

Чеклист готовности к домашнему заданию

  • Установлена учебная платформа версии 8.3.20 или больше.
  • Развернута информационная база с конфигурацией УправлениеИТФирмой, полученная по итогу выполнения домашнего задания к занятию Условия.

Инструкция к заданию

  1. Решите описанные задачи в конфигураторе.
  2. Протестируйте решение в пользовательском режиме.
  3. Отправьте на проверку в личном кабинете Нетологии внешнюю обработку ПодсчетЧислаДней с решением задачи 1, внешнюю обработку ОбработкаТекста с решением задачи 2 и файл выгрузки информационной базы (.dt) с конфигурацией, содержащей решение по задаче 3. Файлы прикрепите в раздел "решение" в практическом задании.

Задача 1 "Подсчет числа дней"

Описание задачи

Вы хотите предоставить пользователю возможность рассчитывать сколько рабочих дней между указанными датами.

Требования к результату

Внешняя обработка ПодсчетЧислаДней с двумя реквизитами и полями ввода, задающими начало и конец интервала, и кнопкой "Подсчитать", по нажатию на которую подсчитывается и выводится пользователю число рабочих и выходных дней в указанном интервале дат.

Процесс выполнения

  1. Создайте внешнюю обработку с именем, например, ПодсчетЧислаДней.
  2. Добавьте в нее два реквизита типа Дата - например, ДатаНач и ДатаКон - и перетащите их на форму.
  3. Добавьте команду Подсчитать и перетащите ее кнопкой на форму.
  4. В обработчике команды:
    • Объявите две переменных-счетчика числа рабочих и выходных дней.
    • Обойдите в цикле все даты от начальной до конечной включительно.
    • В зависимости от дня недели даты прибавьте единицу к одному из двух счетчиков.
    • Выведите результаты вызовом Сообщить(), формируя строку с помощью СтрШаблон().

Задача 2 "Обработка текста"

Описание задачи

Вы хотите реализовать механизм, который ищет во введенном тексте самое длинное и самое короткое слово.

Требования к результату

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

Процесс выполнения

  1. Создайте внешнюю обработку с именем, например, ОбработкаТекста.
  2. Добавьте в нее реквизит типа Строка - например, Текст - и перетащите его на форму, сделав многострочным полем ввода.
  3. Добавьте команду НайтиСлова и перетащите ее кнопкой на форму.
  4. В обработчике команды:
    • Объявите две переменных для самого длинного и самого короткого слова.
    • Разделите текст на слова вызовом СтрРазделить().
    • Обойдите в цикле все слова.
    • В зависимости от длины сохраните текущее слово как самое длинное или самое короткое.
    • Выведите результаты вызовом Сообщить(), формируя строку с помощью СтрШаблон().

Задача 3 "Развитие проверки введенных данных"

Описание задачи

Вы хотите дополнительно снизить вероятность ошибки при заполнении реквизитов ИНН и КПП в справочнике Контрагенты, проверяя состав строк.

Требования к результату

Выгрузка информационной базы (.dt) с конфигурацией, в которой есть справочник Контрагенты с ИНН, КПП. В дополнение к проверке из предыдущего задания необходимо проверять, что строки состоят только из цифр.

Процесс выполнения

  1. Используйте конфигурацию УправлениеИТФирмой со справочником Контрагенты.
  2. Дополните обработчик события ОбработкаПроверкиЗаполнения алгоритмом проверки символов, из которых состоят ИНН и КПП:
    • Используйте цикл со счетчиком для перебора символов;
    • Для получения очередного символа используйте функцию Сред();
    • Для проверки является ли символ цифрой заранее определите строку, состоящую только из цифр, и ищите в ней очередной символ с помощью функции СтрНайти().
    • При выявлении ошибок устанавливайте параметр обработчика Отказ в Истина и выводите разумное сообщение вызовом Сообщить().

Критерии оценки

Задание считается выполненным при соблюдении следующих условий:

  1. Решение включает внешнюю обработку ПодсчетЧислаДней, внешнюю обработку ОбработкаТекста и выгрузку в формате dt с конфигурацией УправлениеИТФирмой;
  2. Обработка ПодсчетЧислаДней позволяет рассчитать сколько будней и сколько выходных дней между введенными датами;
  3. Обработка ОбработкаТекста позволяет найти во введенном тексте самое длинное и самое короткое слово;
  4. В конфигурации УправлениеИТФирмой при записи справочника контрагенты состав строк в реквизитах ИНН и КПП.

Подсказка:

Чтобы вам было проще понять, что в итоге должно получиться, мы подготовили подсказки: анимационные изображения в формате gif или картинки. Чтобы их увидеть, кликните по ссылке