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

41 lines
5.6 KiB
Markdown
Raw Normal View History

2020-03-14 18:00:37 +02:00
# Задание к занятию "Процедуры и функции"
## Задача 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), в которой есть справочник **Сотрудники** с датами рождения, и которая, определив сотрудника поиском по полному наименованию текущего пользователя, поздравляет его с днем рождения, если он приходится на текущую дату.
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 "Проверка ИНН контрагента"
### Описание задачи
Дополнить проверку реквизитов контрагента из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md) проверкой контрольной суммы 10-значного ИНН.
### Требования к результату
Выгрузка информационной базы (.dt) с конфигурацией **УправлениеИТФирмой**, в которой реализована проверка ИНН контрагента-юридического лица вызовом отдельной функции **ИННВерен()**, изолированной от контекста формы.
2020-03-14 18:00:37 +02:00
### Процесс выполнения
1. Используйте конфигурацию из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md).
2. В модуле формы реализуйте функцию **ИННВерен()**:
2020-06-14 18:11:22 +02:00
* С директивой компиляциии **&НаКлиентеНаСервереБезКонтекста**.
2020-03-14 18:00:37 +02:00
* В качестве параметра принимающую ИНН.
* Возвращающую Истина, если ИНН верен, и Ложь в противном случае.
* Проверяющую контрольный разряд 10-значного ИНН аналогично задаче "Случайный ИНН" (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-8.md).
* 12-значный ИНН для простоты можно не проверять (например, считать верным).
3. Дополните проверку на заполненность и длину ИНН вызовом функции **ИННВерен**.