Главная » 1С Предприятие » МОДУЛЬ  ФОРМЫ ЭЛЕМЕНТА СПРАВОЧНИКА ДЕТИ

0

Содержит функцию НайтиВозраст  и предопределенные процедуры ПриОткрытии и ПриЗаписи. Первая устанавливает значение элемента диалога дТ, вторая контролирует заданные в диалоге значения.

процедура  ПриОткрытии() дТ = ТекущаяДата();

конецПроцедуры // ПриОткрытии

// Возвращает возраст ребенка

// Результат имеет вид, например, 4 года или 5 лет, если возраст больше одного года,

// или, например, 8 месяцев в противном случае

функция НайтиВозраст()

перем нгр, нгт, нмр, нмт, числоЛет, числоМес, возр; если ПустоеЗначение(ДатаРождения) = 1 тогда

Предупреждение("Введите дату рождения.");

возврат""; конецЕсли;

нгр = ДатаГод(ДатаРождения);               //         Возвращает год рождения нгт = ДатаГод(дТ);

числоЛет = нгт нгр;

если  числоЛет >  18 тогда

Предупреждение("Возраст ребенка не должен быть  более  18 лет.");  возврат"";

конецЕсли;

если  числоЛет  < 0 тогда Предупреждение("Неверная дата рождения."); возврат "";

конецЕсли;

если  числоЛет = 0 тогда

нмр = ДатаМесяц(ДатаРождения); нмт = ДатаМесяц(дТ);

числоМес = нмт нмр;

если числоМес < 0 тогда Предупреждение("Неверная дата рождения."); возврат "";

конецЕсли;

если числоМес  =  1 тогда возр =" 1 месяц"

иначеЕсли (числоМес = 2) или (числоМес = 3) или (числоМес = 4) тогда

// Например, 3 месяца

возр = строка(числоМес)  + " месяца";

иначе                                    //                    числоМес > 4 или числоМес = О

// Например, 7 месяцев

возр = строка(числоМес) + " месяцев";  конецЕсли;

иначе                                         //                                         числоЛет > 1 если числоЛет = 1 тогда

возр = "1 год"

иначеЕсли (числоЛет = 2) или (числоЛет = 3) или (числоЛет = 4) тогда

// Например, 3 года

возр = строка(числоЛет) + " года";

иначе                                     //                      числоЛет  > 4

// Например, 7 лет

возр = строка(числоЛет) + " лет"; конецЕсли;

конецЕсли;

Возраст = возр; возврат  возр;

конецФункции // НайтиВозраст

процедура ПриЗаписи( )                       //              Предопределенная процедура если ПустоеЗначение(Возраст) = 1 тогда

Предупреждение("Не определен возраст.");

СтатусВозврата(0);                   //            Запрещаем запись данных возврат;

конецЕсли;

если ПустоеЗначение(Имя) = 1 тогда Предупреждение("Введите  имя.");

СтатусВозврата(0);                   //            Запрещаем запись данных форма.Активизировать(Имя);           //      Устанавливаем курсор  на поле Имя  возврат;

конецЕсли;

если (ПустоеЗначение(Имя) = 1) или (ПустоеЗначение(ДатаРождения) = 1) тогда

Предупреждение("Введите дату рождения.");

// Устанавливаем курсор на поле ДатаРождения форма.Активизировать(ДатаРождения);

СтатусВозврата(0);                   //            Запрещаем запись данных конецЕсли;

конецПроцедуры // ПриЗаписи

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии