mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-24 08:02:20 +02:00
fdb7572fae
Требование - dt-файл
41 lines
5.6 KiB
Markdown
41 lines
5.6 KiB
Markdown
# Задание к занятию "Процедуры и функции"
|
|
|
|
## Задача 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. Дополните проверку на заполненность и длину ИНН вызовом функции **ИННВерен**.
|