Имя: Пароль:
1C
1С v8
Рассчитать возраст в форме списка
0 Failodrom
 
28.12.13
19:56
Здравствуйте! Подскажите, пожалуйста, как можно рассчитать возраст в форме списка справочника? Каким способом лучше это сделать?
1 zak555
 
28.12.13
20:02
воспользоваться функцией из ОМ
2 wsxcde
 
28.12.13
20:05
если уф и динамический список, то в запросе РАЗНОСТЬДАТ иначе при выводе строки
3 Failodrom
 
28.12.13
20:07
подскажите, пожалуйста, как это сделать при выводе строки? (2)
4 wsxcde
 
28.12.13
20:10
в гуголь сходить
5 Failodrom
 
28.12.13
20:29
(4) там я ничего подходящего не нашёл, могли бы вы подсказать?
6 GROOVY
 
28.12.13
20:35
(2) Чур тебя! ПриПолученииДанных!
7 marvak
 
28.12.13
20:52
(0)
У меня ПриВыводеСтроки так (можно в ПриПолученииДанных()):
1С 8.1 правда, не УФ

Если Элемент.Колонки.Возраст.Видимость Тогда
   Если ДанныеСтроки <> Неопределено
    И Не ДанныеСтроки.ЭтоГруппа
    И ЗначениеЗаполнено(ДанныеСтроки.Ссылка.ДатаРождения) Тогда
            
            ОформлениеСтроки.Ячейки.Возраст.УстановитьТекст(ПолучитьВозраст(ДанныеСтроки.Ссылка.ДатаРождения));
            
   КонецЕсли;
КонецЕсли;

Функция ПолучитьВозраст(ДатаРождения) Экспорт
    
    Если ДатаРождения = Дата("00010101000000") Тогда
        Возврат 0;
    Иначе
    // Число полных лет между текущей датой и датой рождения
        Возврат Цел((ТекущаяДата() - ДатаРождения) / (60 * 60 * 24 * 365.25));
    КонецЕсли;
    
КонецФункции
8 EvgeniuXP
 
28.12.13
21:28
365.25 - а это что? 8-0
9 Fram
 
28.12.13
21:36
(8) похоже среднее кол-во дней в году  учитывая високосные.
оригинально :)
10 marvak
 
28.12.13
22:13
(9)
ага :)
11 Failodrom
 
28.12.13
23:37
Спасибо большое! (7)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс