mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-24 08:02:20 +02:00
104 lines
9.5 KiB
Markdown
104 lines
9.5 KiB
Markdown
# Задание к занятию "Условия"
|
|
_Примерное время выполнения: 60 минут_
|
|
|
|
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
|
|
|
|
Любые вопросы по решению задач задавайте в чате учебной группы.
|
|
|
|
## Цель задания
|
|
|
|
1. Закрепить на практике приемы разработки алгоритмов с ветвлениями
|
|
|
|
Решение задания научит вас создавать ветвящиеся алгоритмы. Это базовый навык, необходимый для решения домашних заданий в будущем и разработки реальных приложений.
|
|
|
|
## Чеклист готовности к домашнему заданию
|
|
|
|
- [ ] Установлена учебная платформа версии 8.3.20 или больше.
|
|
- [ ] Развернута информационная база с конфигурацией **УправлениеИТФирмой**, полученная по итогу выполнения [домашнего задания к занятию Даты и строки](/homework-2-4.md)
|
|
|
|
## Инструкция к заданию
|
|
|
|
1. Решите описанные задачи в конфигураторе.
|
|
2. Протестируйте решение в пользовательском режиме.
|
|
3. Отправьте на проверку в личном кабинете Нетологии файл выгрузки информационной базы (.dt) с конфигурацией, содержащей решение по задачам 1 и 2. Файлы прикрепите в раздел "решение" в практическом задании.
|
|
|
|
## Задача 1 "Анализ времени запуска"
|
|
|
|
### Описание задачи
|
|
Вы хотите, чтобы при запуске программа сообщала пользователю рабочее сейчас время или нет с детальной информацией.
|
|
|
|
### Требования к результату
|
|
Выгрузка информационной базы (.dt), при запуске информирующая пользователя выводом сообщения о том, рабочее сейчас время или нет. Сообщение должно содержать информацию о текущем дне недели, является он будним или нет. Если день будний, то должно быть указано рабочее время еще не началось, рабочее время идет или рабочее время уже закончилось. Текст сообщения необходимо собирать с помощью функции **СтрШаблон()**.
|
|
|
|
### Процесс выполнения
|
|
1. Используйте произвольную конфигурацию.
|
|
2. В модуле приложения создайте обработчик **ПриНачалеРаботыСистемы**, если его еще нет.
|
|
3. В обработчике:
|
|
* Сохраните текущую дату в локальную переменную.
|
|
* Проверьте условиями текущий день недели (будний или выходной).
|
|
* Если это выходной день, то выведите сообщение **Сегодня [ИмяДняНедели], выходной день**.
|
|
* Если это будний день, то выведите сообщение **Сегодня [ИмяДняНедели], будний день. Рабочее время [СостояниеРабочегоВремени].**
|
|
* Если сейчас раньше 9:00, то состояние рабочего времени - **еще не началось**.
|
|
* Если сейчас с 9:00 до 18:00, то состояние рабочего времени - **идет**.
|
|
* Если сейчас позднее 18:00, то состояние рабочего времени - **завершилось**.
|
|
* Сообщение выводить вызовом **Сообщить()**.
|
|
|
|
<details>
|
|
<summary>Подсказка</summary>
|
|
|
|
![](https://github.com/netology-code/1c-homeworks/blob/master/%D0%BF%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D0%B7%D0%BA%D0%B0.%20%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%20%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0.png)
|
|
|
|
</details>
|
|
|
|
4. Для отладки решения задайте явно значение локальной переменной, например: `ТекущаяДата = '20220101100000';`
|
|
|
|
## Задача 2 "Проверка введенных данных"
|
|
|
|
### Описание задачи
|
|
Вы хотите снизить вероятность ошибки при заполнении реквизитов ИНН и КПП в справочнике **Контрагенты**, проверяя длину строк.
|
|
|
|
### Требования к результату
|
|
Выгрузка информационной базы (.dt) с конфигурацией, в которой есть справочник **Контрагенты** с ИНН, КПП и видом контрагента ("Юридическое лицо", "Физическое лицо"). Перед записью контрагента должна выполняться проверка на заполненность и длину ИНН и КПП в зависимости от вида контрагента.
|
|
|
|
### Процесс выполнения
|
|
1. Используйте конфигурацию **УправлениеИТФирмой** со справочником **Контрагенты**.
|
|
2. В модуле объекта создайте обработчик события **ОбработкаПроверкиЗаполнения**, в коде которого реализуйте проверку на заполненность и длину ИНН и КПП в зависимости от вида контрагента:
|
|
* Для юридического лица ИНН и КПП должны быть заполнены; ИНН должен быть длиной 10 знаков, КПП - 9 знаков.
|
|
|
|
<details>
|
|
<summary>Подсказка</summary>
|
|
|
|
ПредопреленноеЗначение - это элементы прикладных объектов, которые создаются в конфигураторе, обращение к которым возможно по имени без предварительного поиска.
|
|
|
|
Пример:
|
|
|
|
ПолСотрудника = ПредопределенноеЗначение("Перечисление.МужскойЖенскийПол.Женский");
|
|
|
|
</details>
|
|
|
|
* Для физического лица ИНН должен быть длиной 12 знаков, КПП - не заполнен.
|
|
* Контрольную сумму ИНН и наличие только цифр в ИНН и КПП проверять пока не нужно.
|
|
* При выявлении ошибок устанавливайте параметр обработчика **Отказ** в **Истина** и выводите разумное сообщение вызовом **Сообщить()**.
|
|
|
|
<details>
|
|
<summary>Подсказка</summary>
|
|
|
|
Ошибка должна выводиться, в случае неверно введенных символов(например букв или специальных символов) или длины ИНН. Ниже приведены примеры возможных ошибок.
|
|
|
|
![](https://github.com/netology-code/1c-homeworks/blob/master/%D0%BF%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D0%B7%D0%BA%D0%B0.%20%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0%20%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_1.png)
|
|
|
|
![](https://github.com/netology-code/1c-homeworks/blob/master/%D0%BF%D0%BE%D0%B4%D1%81%D0%BA%D0%B0%D0%B7%D0%BA%D0%B0.%20%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0%20%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%BD%D1%8B%D1%85%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_2.png)
|
|
|
|
</details>
|
|
|
|
## Критерии оценки
|
|
|
|
Задание считается выполненным при соблюдении следующих условий:
|
|
1. Решение включает выгрузку в формате dt с конфигурацией **УправлениеИТФирмой**;
|
|
2. В конфигурации **УправлениеИТФирмой** при старте выводится сообщение с информацией о сегодняшнем дне;
|
|
3. В конфигурации **УправлениеИТФирмой** при записи справочника контрагенты проверяется длина строк в реквизитах ИНН и КПП.
|
|
|
|
## Подсказка:
|
|
|
|
Чтобы вам было проще понять, что в итоге должно получиться, мы подготовили подсказки: анимационные изображения в формате gif или картинки. Чтобы их увидеть, кликните по [ссылке](https://github.com/netology-code/1c-homeworks/blob/vy-new-format/Examples/homework-2-5-example.md)
|