Pavel Marychev c014f355cf init
Первоначальная загрузка данных
2021-11-15 23:59:23 +04:00

41 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Задание к занятию "Процедуры и функции"
## Задача 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. Дополните проверку на заполненность и длину ИНН вызовом функции **ИННВерен**.