1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-24 08:02:20 +02:00
1c-homeworks/homework-2-9.md

74 lines
8.5 KiB
Markdown
Raw Permalink Normal View History

2020-03-14 18:00:37 +02:00
# Задание к занятию "Процедуры и функции"
2023-05-24 13:35:12 +02:00
_Примерное время выполнения: 60 минут_
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
Любые вопросы по решению задач задавайте в чате учебной группы.
## Цель задания
1. Закрепить на практике работу с процедурами и функциями
Решение задания научит вас декомпозировать программный код на процедуры и функции. Этот навык является одним из базовых для дальнейшего решения домашних заданий и промышленной разработки.
## Чеклист готовности к домашнему заданию
- [ ] Установлена учебная платформа версии 8.3.20 или больше.
- [ ] Развернута информационная база с конфигурацией **УправлениеИТФирмой**, полученная по итогу выполнения [домашнего задания к занятию Универсальные коллекции](/homework-2-7.md).
## Инструкция к заданию
1. Решите описанные задачи в конфигураторе.
2. Протестируйте решение в пользовательском режиме.
3. Отправьте на проверку в личном кабинете Нетологии файл выгрузки информационной базы (.dt) с конфигурацией, содержащей решение по задачам 1 и 2. Файлы прикрепите в раздел "решение" в практическом задании.
2020-03-14 18:00:37 +02:00
## Задача 1 "Поздравление с днем рождения"
### Описание задачи
2023-05-24 13:35:12 +02:00
Вы хотите добавить в программу автоматическое поздравление сотрудников с днем рождения.
2020-03-14 18:00:37 +02:00
### Требования к результату
Выгрузка информационной базы (.dt), в которой есть справочник **Сотрудники** с датами рождения, и которая, определив сотрудника поиском по полному наименованию текущего пользователя, поздравляет его с днем рождения, если он приходится на текущую дату.
2020-03-14 18:00:37 +02:00
### Процесс выполнения
1. Используйте конфигурацию **УправлениеИТФирмой** из прошлых заданий, в которой есть справочник **Сотрудники** с датой рождения и механизм поздравлений.
2. Создайте параметр сеанса **СотрудникТекущегоПользователя** типа **СправочникСсылка.Сотрудники**.
3. В модуле сеанса создайте обработчик **УстановкаПараметровСеанса**, в коде которого:
* Определите полное имя текущего пользователя (**ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя**).
2020-12-14 19:10:45 +02:00
* Найдите соответствующего сотрудника в справочнике поиском по наименованию (**Справочники.Сотрудники.НайтиПоНаименованию()**). **Обратите внимание**: это сработает, лишь если наименование элемента справочника и полное имя пользователя ИБ совпадают до символа.
2020-03-14 18:00:37 +02:00
* Проинициализируйте найденным сотрудником параметр сеанса.
4. Создайте общий модуль **СотрудникиСервер**, в котором реализуйте экспортные функции:
* **СотрудникТекущегоПользователя()**, возвращающую значение одноименного параметра сеанса.
* **ДеньРожденияТекущегоПользователя()**, возвращающую значение реквизита **ДеньРождения** сотрудника текущего пользователя. К реквизиту за значением можно просто обратиться через точку.
5. Создайте общий модуль **СотрудникиВызовСервера**, в котором реализуйте экспортную функцию-интерфейс для функции **СотрудникиСервер.ДеньРожденияТекущегоПользователя()**.
6. В обработчике **ПриНачалеРаботыСистемы** модуля приложения определите день рождения текущего пользователя вызовом **СотрудникиВызовСервера.ДеньРожденияТекущегоПользователя()**, и, если он совпадает с текущей датой - выведите поздравление.
## Задача 2 "Проверка ИНН контрагента"
### Описание задачи
2023-05-24 13:35:12 +02:00
Вы хотите усилить проверку корректности ввода ИНН, с помощью проверки контрольной суммы цифр в ИНН для юридических лиц.
2020-03-14 18:00:37 +02:00
### Требования к результату
2023-05-24 13:35:12 +02:00
Выгрузка информационной базы (.dt) с конфигурацией **УправлениеИТФирмой**, в которой реализована проверка ИНН контрагента-юридического лица вызовом отдельной функции **ИННВерен()**, расположенной в общем модуле.
2020-03-14 18:00:37 +02:00
### Процесс выполнения
2023-05-24 13:35:12 +02:00
1. Используйте конфигурацию из [домашнего задания к занятию Универсальные коллекции](/homework-2-7.md).
2. Создайте общий модуль **РаботаСИНН** с установленными флажками Клиент, Сервер и Внешнее соединение.
3. В новом общем модуле реализуйте экспортную функцию **ИННВерен()**:
2020-03-14 18:00:37 +02:00
* В качестве параметра принимающую ИНН.
* Возвращающую Истина, если ИНН верен, и Ложь в противном случае.
2023-05-24 13:35:12 +02:00
* Проверяющую контрольный разряд 10-значного ИНН [аналогично задаче "Случайный ИНН"](/homework-2-8.md).
* 12-значный ИНН можно считать верным всегда.
3. Дополните проверку на длину и состав ИНН в модуле объекта справочника Контрагенты вызовом функции **ИННВерен**.
## Критерии оценки
Задание считается выполненным при соблюдении следующих условий:
1. Решение включает выгрузку в формате dt с конфигурацией **УправлениеИТФирмой**;
2. При запуске приложения система поздравляет текущего пользователя с днем рождения, если у него день рождения сегодня;
3. При записи контрагента система проверяет контрольный разряд ИНН для юридических лиц.
## Подсказка:
Чтобы вам было проще понять, что в итоге должно получиться, мы подготовили подсказки: анимационные изображения в формате gif или картинки. Чтобы их увидеть, кликните по [ссылке](https://github.com/netology-code/1c-homeworks/blob/vy-new-format/Examples/homework-2-9-example.md)