Цель работы
Создать информационную базу, в которой необходимо реализовать невозможность проведения документа, если дата увольнения меньше даты приема на работу и запрет приема на работу сотрудника, который младше 18 лет.
Задание
Перед началом работы необходимо создать справочники, которые необходимы для дальнейшей реализации поставленной цели. Главным и основополагающим справочником будет являться Сотрудник, показанный на рисунке 1, данные которого изображены на рисунке 2.
Рисунок. 1. Создание справочника Сотрудники
Рисунок. 2. Данные справочника Сотрудники
После чего нужно создать документ, который будет содержать в себе информацию о приеме на работу новых сотрудников, как показано на рисунке 3.
Рисунок. 3. Документ Прием на работу
После чего необходимо внести данные в документ и проверить работоспособность ограничения на дату проведения документа, как показано на рисунках 4-5. Программный код реализации данной задачи приведен в приложении А.
Рисунок. 4. Внесение данных
Рисунок. 5. Предупреждение
Далее нужно внести все данные в созданный документ, как показано на рисунке 6, если была введена дата рождения, которая говорит о несовершеннолетии нанимаемого сотрудника, то документ не будет проведен, а также выдаст ошибку показанную на рисунке 7.
Рисунок. 6. Внесение данных
Рисунок. 7. Ошибка проведения документа
Приложение А
&НаКлиенте
Процедура ДатаПриемаПриИзменении(Элемент)
Если Объект.ДатаПриема < Объект.Дата
Тогда сообщить("Дата приема не может быть меньше текущей");
Объект.ДатаПриема = Объект.Дата;
КонецЕсли;
КонецПроцедуры
Функция РазностьДат(Знач Дата1,Знач Дата2,Лет=0,Месяцев=0,Дней=0)
ЧислоЛет = Год(Дата2) - Год(Дата1);
Если Месяц(Дата2) < Месяц(Дата1) Тогда
ЧислоЛет = ЧислоЛет-1;
ИначеЕсли Месяц(Дата2) = Месяц(Дата1) И День(Дата2) < День(Дата1) Тогда
ЧислоЛет = ЧислоЛет-1;
КонецЕсли;
Возврат -ЧислоЛет-1
КонецФункции // глРазобратьРазностьДат
&НаСервере
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Лет = РазностьДат(ТекущаяДата(),Объект.ДатаРождения);
Если Лет<18 Тогда
Отказ = Истина;
Сообщить("Устраеваемому сотруднику нет 18 лет. Отмена проведения");
КонецЕсли
КонецПроцедуры18>
Достарыңызбен бөлісу: |