# Задание к занятию "Процедуры и функции" ## Задача 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) поздравлением сотрудников с днем рождения. ### Требования к результату Конфигурация, в которой есть справочник **Сотрудники** с датами рождения, и которая, определив сотрудника поиском по полному наименованию текущего пользователя, поздравляет его с днем рождения, если он приходится на текущую дату. ### Процесс выполнения 1. Используйте конфигурацию **УправлениеИТФирмой** из прошлых заданий, в которой есть справочник **Сотрудники** с датой рождения и механизм поздравлений. 2. Создайте параметр сеанса **СотрудникТекущегоПользователя** типа **СправочникСсылка.Сотрудники**. 3. В модуле сеанса создайте обработчик **УстановкаПараметровСеанса**, в коде которого: * Определите полное имя текущего пользователя (**ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя**). * Найдите соответствующего сотрудника в справочнике поиском по наименованию (**Справочники.Сотрудники.НайтиПоНаименованию()**). * Проинициализируйте найденным сотрудником параметр сеанса. 4. Создайте общий модуль **СотрудникиСервер**, в котором реализуйте экспортные функции: * **СотрудникТекущегоПользователя()**, возвращающую значение одноименного параметра сеанса. * **ДеньРожденияТекущегоПользователя()**, возвращающую значение реквизита **ДеньРождения** сотрудника текущего пользователя. К реквизиту за значением можно просто обратиться через точку. 5. Создайте общий модуль **СотрудникиВызовСервера**, в котором реализуйте экспортную функцию-интерфейс для функции **СотрудникиСервер.ДеньРожденияТекущегоПользователя()**. 6. В обработчике **ПриНачалеРаботыСистемы** модуля приложения определите день рождения текущего пользователя вызовом **СотрудникиВызовСервера.ДеньРожденияТекущегоПользователя()**, и, если он совпадает с текущей датой - выведите поздравление. ## Задача 2 "Проверка ИНН контрагента" ### Описание задачи Дополнить проверку реквизитов контрагента из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md) проверкой контрольной суммы 10-значного ИНН. ### Требования к результату Конфигурация **УправлениеИТФирмой**, в которой реализована проверка ИНН контрагента-юридического лица вызовом отдельной функции **ИННВерен()**, изолированной от контекста формы. ### Процесс выполнения 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. Дополните проверку на заполненность и длину ИНН вызовом функции **ИННВерен**.