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