1
0
mirror of https://github.com/netology-code/1c-homeworks.git synced 2024-11-30 08:06:56 +02:00
1c-homeworks/homework-2-9.md
2020-06-14 19:11:22 +03:00

5.3 KiB

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

Задача 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) поздравлением сотрудников с днем рождения.

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

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

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

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

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

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

Дополнить проверку реквизитов контрагента из задания (https://github.com/netology-code/1c-homeworks/blob/master/homework-2-5.md) проверкой контрольной суммы 10-значного ИНН.

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

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

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

  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-значный ИНН для простоты можно не проверять (например, считать верным).
  1. Дополните проверку на заполненность и длину ИНН вызовом функции ИННВерен.