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
2023-05-24 16:35:12 +05:00

8.5 KiB

Задание к занятию "Процедуры и функции"

Примерное время выполнения: 60 минут

Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.

Любые вопросы по решению задач задавайте в чате учебной группы.

Цель задания

  1. Закрепить на практике работу с процедурами и функциями

Решение задания научит вас декомпозировать программный код на процедуры и функции. Этот навык является одним из базовых для дальнейшего решения домашних заданий и промышленной разработки.

Чеклист готовности к домашнему заданию

Инструкция к заданию

  1. Решите описанные задачи в конфигураторе.
  2. Протестируйте решение в пользовательском режиме.
  3. Отправьте на проверку в личном кабинете Нетологии файл выгрузки информационной базы (.dt) с конфигурацией, содержащей решение по задачам 1 и 2. Файлы прикрепите в раздел "решение" в практическом задании.

Задача 1 "Поздравление с днем рождения"

Описание задачи

Вы хотите добавить в программу автоматическое поздравление сотрудников с днем рождения.

Требования к результату

Выгрузка информационной базы (.dt), в которой есть справочник Сотрудники с датами рождения, и которая, определив сотрудника поиском по полному наименованию текущего пользователя, поздравляет его с днем рождения, если он приходится на текущую дату.

Процесс выполнения

  1. Используйте конфигурацию УправлениеИТФирмой из прошлых заданий, в которой есть справочник Сотрудники с датой рождения и механизм поздравлений.
  2. Создайте параметр сеанса СотрудникТекущегоПользователя типа СправочникСсылка.Сотрудники.
  3. В модуле сеанса создайте обработчик УстановкаПараметровСеанса, в коде которого:
  • Определите полное имя текущего пользователя (ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя).
  • Найдите соответствующего сотрудника в справочнике поиском по наименованию (Справочники.Сотрудники.НайтиПоНаименованию()). Обратите внимание: это сработает, лишь если наименование элемента справочника и полное имя пользователя ИБ совпадают до символа.
  • Проинициализируйте найденным сотрудником параметр сеанса.
  1. Создайте общий модуль СотрудникиСервер, в котором реализуйте экспортные функции:
  • СотрудникТекущегоПользователя(), возвращающую значение одноименного параметра сеанса.
  • ДеньРожденияТекущегоПользователя(), возвращающую значение реквизита ДеньРождения сотрудника текущего пользователя. К реквизиту за значением можно просто обратиться через точку.
  1. Создайте общий модуль СотрудникиВызовСервера, в котором реализуйте экспортную функцию-интерфейс для функции СотрудникиСервер.ДеньРожденияТекущегоПользователя().
  2. В обработчике ПриНачалеРаботыСистемы модуля приложения определите день рождения текущего пользователя вызовом СотрудникиВызовСервера.ДеньРожденияТекущегоПользователя(), и, если он совпадает с текущей датой - выведите поздравление.

Задача 2 "Проверка ИНН контрагента"

Описание задачи

Вы хотите усилить проверку корректности ввода ИНН, с помощью проверки контрольной суммы цифр в ИНН для юридических лиц.

Требования к результату

Выгрузка информационной базы (.dt) с конфигурацией УправлениеИТФирмой, в которой реализована проверка ИНН контрагента-юридического лица вызовом отдельной функции ИННВерен(), расположенной в общем модуле.

Процесс выполнения

  1. Используйте конфигурацию из домашнего задания к занятию Универсальные коллекции.
  2. Создайте общий модуль РаботаСИНН с установленными флажками Клиент, Сервер и Внешнее соединение.
  3. В новом общем модуле реализуйте экспортную функцию ИННВерен():
  • В качестве параметра принимающую ИНН.
  • Возвращающую Истина, если ИНН верен, и Ложь в противном случае.
  • Проверяющую контрольный разряд 10-значного ИНН аналогично задаче "Случайный ИНН".
  • 12-значный ИНН можно считать верным всегда.
  1. Дополните проверку на длину и состав ИНН в модуле объекта справочника Контрагенты вызовом функции ИННВерен.

Критерии оценки

Задание считается выполненным при соблюдении следующих условий:

  1. Решение включает выгрузку в формате dt с конфигурацией УправлениеИТФирмой;
  2. При запуске приложения система поздравляет текущего пользователя с днем рождения, если у него день рождения сегодня;
  3. При записи контрагента система проверяет контрольный разряд ИНН для юридических лиц.

Подсказка:

Чтобы вам было проще понять, что в итоге должно получиться, мы подготовили подсказки: анимационные изображения в формате gif или картинки. Чтобы их увидеть, кликните по ссылке