mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2024-11-24 08:02:20 +02:00
74 lines
8.5 KiB
Markdown
74 lines
8.5 KiB
Markdown
# Задание к занятию "Процедуры и функции"
|
|
_Примерное время выполнения: 60 минут_
|
|
|
|
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
|
|
|
|
Любые вопросы по решению задач задавайте в чате учебной группы.
|
|
|
|
## Цель задания
|
|
|
|
1. Закрепить на практике работу с процедурами и функциями
|
|
|
|
Решение задания научит вас декомпозировать программный код на процедуры и функции. Этот навык является одним из базовых для дальнейшего решения домашних заданий и промышленной разработки.
|
|
|
|
## Чеклист готовности к домашнему заданию
|
|
|
|
- [ ] Установлена учебная платформа версии 8.3.20 или больше.
|
|
- [ ] Развернута информационная база с конфигурацией **УправлениеИТФирмой**, полученная по итогу выполнения [домашнего задания к занятию Универсальные коллекции](/homework-2-7.md).
|
|
|
|
## Инструкция к заданию
|
|
|
|
1. Решите описанные задачи в конфигураторе.
|
|
2. Протестируйте решение в пользовательском режиме.
|
|
3. Отправьте на проверку в личном кабинете Нетологии файл выгрузки информационной базы (.dt) с конфигурацией, содержащей решение по задачам 1 и 2. Файлы прикрепите в раздел "решение" в практическом задании.
|
|
|
|
## Задача 1 "Поздравление с днем рождения"
|
|
|
|
### Описание задачи
|
|
Вы хотите добавить в программу автоматическое поздравление сотрудников с днем рождения.
|
|
|
|
### Требования к результату
|
|
Выгрузка информационной базы (.dt), в которой есть справочник **Сотрудники** с датами рождения, и которая, определив сотрудника поиском по полному наименованию текущего пользователя, поздравляет его с днем рождения, если он приходится на текущую дату.
|
|
|
|
### Процесс выполнения
|
|
1. Используйте конфигурацию **УправлениеИТФирмой** из прошлых заданий, в которой есть справочник **Сотрудники** с датой рождения и механизм поздравлений.
|
|
2. Создайте параметр сеанса **СотрудникТекущегоПользователя** типа **СправочникСсылка.Сотрудники**.
|
|
3. В модуле сеанса создайте обработчик **УстановкаПараметровСеанса**, в коде которого:
|
|
* Определите полное имя текущего пользователя (**ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя**).
|
|
* Найдите соответствующего сотрудника в справочнике поиском по наименованию (**Справочники.Сотрудники.НайтиПоНаименованию()**). **Обратите внимание**: это сработает, лишь если наименование элемента справочника и полное имя пользователя ИБ совпадают до символа.
|
|
* Проинициализируйте найденным сотрудником параметр сеанса.
|
|
4. Создайте общий модуль **СотрудникиСервер**, в котором реализуйте экспортные функции:
|
|
* **СотрудникТекущегоПользователя()**, возвращающую значение одноименного параметра сеанса.
|
|
* **ДеньРожденияТекущегоПользователя()**, возвращающую значение реквизита **ДеньРождения** сотрудника текущего пользователя. К реквизиту за значением можно просто обратиться через точку.
|
|
5. Создайте общий модуль **СотрудникиВызовСервера**, в котором реализуйте экспортную функцию-интерфейс для функции **СотрудникиСервер.ДеньРожденияТекущегоПользователя()**.
|
|
6. В обработчике **ПриНачалеРаботыСистемы** модуля приложения определите день рождения текущего пользователя вызовом **СотрудникиВызовСервера.ДеньРожденияТекущегоПользователя()**, и, если он совпадает с текущей датой - выведите поздравление.
|
|
|
|
## Задача 2 "Проверка ИНН контрагента"
|
|
|
|
### Описание задачи
|
|
Вы хотите усилить проверку корректности ввода ИНН, с помощью проверки контрольной суммы цифр в ИНН для юридических лиц.
|
|
|
|
### Требования к результату
|
|
Выгрузка информационной базы (.dt) с конфигурацией **УправлениеИТФирмой**, в которой реализована проверка ИНН контрагента-юридического лица вызовом отдельной функции **ИННВерен()**, расположенной в общем модуле.
|
|
|
|
### Процесс выполнения
|
|
1. Используйте конфигурацию из [домашнего задания к занятию Универсальные коллекции](/homework-2-7.md).
|
|
2. Создайте общий модуль **РаботаСИНН** с установленными флажками Клиент, Сервер и Внешнее соединение.
|
|
3. В новом общем модуле реализуйте экспортную функцию **ИННВерен()**:
|
|
* В качестве параметра принимающую ИНН.
|
|
* Возвращающую Истина, если ИНН верен, и Ложь в противном случае.
|
|
* Проверяющую контрольный разряд 10-значного ИНН [аналогично задаче "Случайный ИНН"](/homework-2-8.md).
|
|
* 12-значный ИНН можно считать верным всегда.
|
|
3. Дополните проверку на длину и состав ИНН в модуле объекта справочника Контрагенты вызовом функции **ИННВерен**.
|
|
|
|
## Критерии оценки
|
|
|
|
Задание считается выполненным при соблюдении следующих условий:
|
|
1. Решение включает выгрузку в формате dt с конфигурацией **УправлениеИТФирмой**;
|
|
2. При запуске приложения система поздравляет текущего пользователя с днем рождения, если у него день рождения сегодня;
|
|
3. При записи контрагента система проверяет контрольный разряд ИНН для юридических лиц.
|
|
|
|
## Подсказка:
|
|
|
|
Чтобы вам было проще понять, что в итоге должно получиться, мы подготовили подсказки: анимационные изображения в формате gif или картинки. Чтобы их увидеть, кликните по [ссылке](https://github.com/netology-code/1c-homeworks/blob/vy-new-format/Examples/homework-2-9-example.md)
|