|   |   | 
| 
 | В форму списка справочника при открытии высчитывать и заполнять реквизит формы | ☑ | ||
|---|---|---|---|---|
| 0
    
        ANDRU48 16.07.15✎ 10:04 | 
        У меня есть справочник "А", в нем есть реквизит "Возраст" и "ДатаРождения". При открытии формы элемента реквизит "Возраст" высчитывается и заполняется, в зависимости от "ДатыРождения" на текущую дату - это реализовал. 
 Теперь нужно в форме списка данного справочника при открытии заполнять реквизит "Возраст" от реквизита "ДатаРождения" на текущую дату. Здесь застрял, порылся в интернете не нашел. Подскажите плиз...Спасибо | |||
| 1
    
        vicof 16.07.15✎ 10:08 | 
        ПриПолученииДанных     | |||
| 2
    
        butterbean 16.07.15✎ 10:09 | 
        нафиг реквизит, если он постоянно в формах пересчитывается?     | |||
| 3
    
        ANDRU48 16.07.15✎ 10:13 | 
        (1) УФ     | |||
| 4
    
        ANDRU48 16.07.15✎ 10:15 | 
        В форме элемента делаю так:
 Элементы.Возраст = .ВозрастВычислить(Объект.ДатаРождения, ТекущаяДата()); | |||
| 5
    
        butterbean 16.07.15✎ 10:16 | 
        (3) произвольный запрос у дин. списка + текущую дату как параметр и вперед     | |||
| 6
    
        VikingKosmo 16.07.15✎ 10:17 | 
        если это УФ, то все эти шашни нужно написать в запросе ДемоническогоСписка     | |||
| 7
    
        ANDRU48 16.07.15✎ 10:22 | 
        Высчитывается кол-во месяцев вот так
 &НаКлиенте Процедура ПриОткрытии(Отказ) Для Каждого Строка Из Элементы.Возраст = .ВозрастВычислить(Объект.ДатаРождения, ТекущаяДата()); КонецПроцедуры &НаСервереБезКонтекста Функция ВозрастВычислить(Возраст, Дата) Месяцы = РазностьМеждуДатамиВМесяцах(Возраст,Дата); ВозрастСтруктура = ВозрастВМесяцахИГодах(Месяцы); ВозрастПрописью = ВозрастПрописью(ВозрастСтруктура); Возврат ВозрастПрописью; КонецФункции &НаСервереБезКонтекста Функция ВозрастВМесяцахИГодах(Месяцы) Структура = Новый Структура; Структура.Вставить("Год"); Структура.Вставить("Месяц"); Структура.Месяц = Месяцы % 12; Структура.Год = (Месяцы - Структура.Месяц) / 12; Возврат Структура; КонецФункции &НаСервереБезКонтекста Функция ВозрастПрописью(Структура) Строка = ""; Если Структура.Год > 0 Тогда ПоследняяЦифраГода = Число(Сред(Строка(Структура.Год), СтрДлина(Строка(Структура.Год)), 1)); Если (ПоследняяЦифраГода = 1) И (Структура.Год <> 11) Тогда Строка = Строка(Структура.Год) + " год"; КонецЕсли; Если (ПоследняяЦифраГода >= 2) И (ПоследняяЦифраГода <=4) И ((Структура.Год < 12) ИЛИ (Структура.Год > 14)) Тогда Строка = Строка(Структура.Год) + " года"; КонецЕсли; Если ((ПоследняяЦифраГода >= 5) И (ПоследняяЦифраГода <=9)) ИЛИ (ПоследняяЦифраГода = 0) Тогда Строка = Строка(Структура.Год) + " лет"; КонецЕсли; Если (Структура.Год >= 11) И (Структура.Год <= 14) Тогда Строка = Строка(Структура.Год) + " лет"; КонецЕсли; КонецЕсли; Если (Структура.Год > 0) И (Структура.Год < 3) И (Структура.Месяц > 0) Тогда Строка = Строка + ", "; КонецЕсли; Если (Структура.Месяц > 0) И (Структура.Год <= 3) Тогда Если Структура.Месяц = 1 Тогда Строка = Строка + "1 месяц"; КонецЕсли; Если (Структура.Месяц >= 2) И (Структура.Месяц <= 4) Тогда Строка = Строка + Строка(Структура.Месяц) + " месяца"; КонецЕсли; Если Структура.Месяц >= 5 Тогда Строка = Строка + Строка(Структура.Месяц) + " месяцев"; КонецЕсли; КонецЕсли; Возврат Строка; КонецФункции &НаСервереБезКонтекста Функция РазностьМеждуДатамиВМесяцах(Дата1,Дата2) Год1 = Год(Дата1); Год2 = Год(Дата2); Месяц1 = Месяц(Дата1); Месяц2 = Месяц(Дата2); День1 = День(Дата1); День2 = День(Дата2); Результат = (Год1 - Год2) * 12 + Месяц1 - Месяц2; Если Результат < 0 Тогда Результат = 0 - Результат; КонецЕсли; Если ((Дата1 > Дата2) И (День1 < День2)) ИЛИ ((Дата1 < Дата2) И (День1 > День2)) ИЛИ ((Дата1 < Дата2) И (День1 < День2)) Тогда Результат = Результат - 1; КонецЕсли; Возврат Результат; КонецФункции Как из динамического списка потом вытаскивать это значение? | |||
| 8
    
        VikingKosmo 16.07.15✎ 10:28 | 
        (7) про ДемоническиеСписки вообще в курсе? Что это такое и зачем используется?     | |||
| 9
    
        Timon1405 16.07.15✎ 10:29 | 
        рвутся все шаблоны, как совместим вопрос в топике и Как продавать свою конфу?     | |||
| 10
    
        ANDRU48 16.07.15✎ 11:03 | 
        Спасибо за помощь     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |