# Задание к занятию "Процедуры и функции"

## Задача 1 "Поздравление с днем рождения"

### Описание задачи
Дополнить поздравления (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-7.md, https://github.com/netology-code/1c-homeworks/blob/master/homework-2-3.md) поздравлением сотрудников с днем рождения.

### Требования к результату
Выгрузка информационной базы (.dt), в которой есть справочник **Сотрудники** с датами рождения, и которая, определив сотрудника поиском по полному наименованию текущего пользователя, поздравляет его с днем рождения, если он приходится на текущую дату.

### Процесс выполнения
1. Используйте конфигурацию **УправлениеИТФирмой** из прошлых заданий, в которой есть справочник **Сотрудники** с датой рождения и механизм поздравлений.
2. Создайте параметр сеанса **СотрудникТекущегоПользователя** типа **СправочникСсылка.Сотрудники**.
3. В модуле сеанса создайте обработчик **УстановкаПараметровСеанса**, в коде которого:
  * Определите полное имя текущего пользователя (**ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя**).
  * Найдите соответствующего сотрудника в справочнике поиском по наименованию (**Справочники.Сотрудники.НайтиПоНаименованию()**). **Обратите внимание**: это сработает, лишь если наименование элемента справочника и полное имя пользователя ИБ совпадают до символа.
  * Проинициализируйте найденным сотрудником параметр сеанса.
4. Создайте общий модуль **СотрудникиСервер**, в котором реализуйте экспортные функции:
  * **СотрудникТекущегоПользователя()**, возвращающую значение одноименного параметра сеанса. 
  * **ДеньРожденияТекущегоПользователя()**, возвращающую значение реквизита **ДеньРождения** сотрудника текущего пользователя. К реквизиту за значением можно просто обратиться через точку.
5. Создайте общий модуль **СотрудникиВызовСервера**, в котором реализуйте экспортную функцию-интерфейс для функции **СотрудникиСервер.ДеньРожденияТекущегоПользователя()**.
6. В обработчике **ПриНачалеРаботыСистемы** модуля приложения определите день рождения текущего пользователя вызовом **СотрудникиВызовСервера.ДеньРожденияТекущегоПользователя()**, и, если он совпадает с текущей датой - выведите поздравление.

## Задача 2 "Проверка ИНН контрагента"

### Описание задачи
Дополнить проверку реквизитов контрагента из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md) проверкой контрольной суммы 10-значного ИНН.

### Требования к результату
Выгрузка информационной базы (.dt) с конфигурацией **УправлениеИТФирмой**, в которой реализована проверка ИНН контрагента-юридического лица вызовом отдельной функции **ИННВерен()**, изолированной от контекста формы.

### Процесс выполнения
1. Используйте конфигурацию из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md).
2. В модуле формы реализуйте функцию **ИННВерен()**:
  * С директивой компиляциии **&НаКлиентеНаСервереБезКонтекста**.
  * В качестве параметра принимающую ИНН.
  * Возвращающую Истина, если ИНН верен, и Ложь в противном случае.
  * Проверяющую контрольный разряд 10-значного ИНН аналогично задаче "Случайный ИНН" (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-8.md).
  * 12-значный ИНН для простоты можно не проверять (например, считать верным).
3. Дополните проверку на заполненность и длину ИНН вызовом функции **ИННВерен**.
