Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не умею использовать перечисление

Не умею использовать перечисление
Я
   VoN
 
24.05.19 - 10:05
&НаКлиенте
Процедура ТабличнаяЧасть1ДатаРожденияПриИзменении(Элемент)
СтрокаТабличнойЧасти=Элементы.табличнаячасть1.ТекущиеДанные;

СтрокаТабличнойЧасти.ВозрастнаяКатегория = окр((ТекущаяДата () - СтрокаТабличнойЧасти.ДатаРождения)/365/24/60/60, 0);
Если   ( (СтрокаТабличнойЧасти.ВозрастнаяКатегория) < 3) и ( (СтрокаТабличнойЧасти.ВозрастнаяКатегория) > 0)
    тогда  СтрокаТабличнойЧасти.ВозрастнаяКатегория = "От 0 до 3 лет"
иначеесли (число(СтрокаТабличнойЧасти.ВозрастнаяКатегория) < 14) и (Число (СтрокаТабличнойЧасти.ВозрастнаяКатегория) > 3)
        тогда  СтрокаТабличнойЧасти.ВозрастнаяКатегория = "От 3 до 14 лет"
        иначе  СтрокаТабличнойЧасти.ВозрастнаяКатегория = "От 14 до 18 лет"    
    конецесли;
КонецПроцедуры
Можно ли как то сделать что бы вместо "От 0 до 3 лет" и т.д выбиралось нужно перечисление автоматически, я пробовал у меня не получалось.
 
 
   Hillsnake
 
1 - 24.05.19 - 10:08
&НаКлиенте  это не V7

окр((ТекущаяДата () - СтрокаТабличнойЧасти.ДатаРождения)/365/24/60/60 что это??
   Mikeware
 
2 - 24.05.19 - 10:09
тема про ОВ, которым отравили скрипалей?
   MadDAD
 
3 - 24.05.19 - 10:14
(0) Таки, да. &НаКлиенте - это 1С 8

Чтобы выбиралось нужное перечисление, надо правильно посчитать года. Для этого не нужно считать секунды.
А надо взять год текущей даты и отнять от него год рождения.
   1Сергей
 
4 - 24.05.19 - 10:18
Возраст = окр((ТекущаяДата () - СтрокаТабличнойЧасти.ДатаРождения)/365/24/60/60, 0); 
Если   (Возраст < 3) и (Возраст > 0) Тогда
    СтрокаТабличнойЧасти.ВозрастнаяКатегория = Перечисления.ВозрастныеКатегории.От0До3лет;// Идентификаторы смотри как заданы в конфигураторе

ИначеЕсли (Возраст < 14) Тогда
  СтрокаТабличнойЧасти.ВозрастнаяКатегория = Перечисления.ВозрастныеКатегории.От3До14лет;// Идентификаторы смотри как заданы в 

...
   Hillsnake
 
5 - 24.05.19 - 10:23
(3) может полных лет нужно ?

(0)  и что будет, если пользователь не введет дату рождения.
   MadDAD
 
6 - 24.05.19 - 10:26
Возраст = Год(ТекущаяДата()) - Год(СтрокаТабличнойЧасти.ДатаРождения); 

Если   (Возраст < 3) и (Возраст > 0) Тогда
    СтрокаТабличнойЧасти.ВозрастнаяКатегория = Перечисления.ВозрастныеКатегории.От0До3лет// Идентификаторы смотри как заданы в конфигураторе

ИначеЕсли (Возраст < 14) Тогда
  СтрокаТабличнойЧасти.ВозрастнаяКатегория = Перечисления.ВозрастныеКатегории.От3До14лет// Идентификаторы смотри как заданы в
   1Сергей
 
7 - 24.05.19 - 10:31
(6) >>Возраст = Год(ТекущаяДата()) - Год(СтрокаТабличнойЧасти.ДатаРождения); 

как грубо :)
   1Сергей
 
8 - 24.05.19 - 10:32
почти матом
   Evgenchik
 
9 - 24.05.19 - 10:49
(4) и (6) -это &НаСервере лучше выполнить
   Кац
 
10 - 24.05.19 - 11:00
(2) скорее, 86 год
   MadDAD
 
11 - 24.05.19 - 11:08
(8) А чего он в семерочной ветке постит? :)
   DrWatson
 
12 - 24.05.19 - 11:09
(0)
&НаКлиенте
Процедура ТабличнаяЧасть1ДатаРожденияПриИзменении(Элемент)

    
    СтрокаТабличнойЧасти=Элементы.табличнаячасть1.ТекущиеДанные;
    
    Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.ДатаРождения) Тогда
    
        КоличествоПолныхЛет = 0; //вставить рассчет из v8: Количество полных лет между двумя датами
        
        Если КоличествоПолныхЛет < 3 Тогда
        
            СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.От0до3");
        
        ИначеЕсли КоличествоПолныхЛет < 14 Тогда
        
            СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.От3до14");
        
        ИначеЕсли КоличествоПолныхЛет < 18 Тогда
        
            СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.От14до18");
        
        Иначе
        
            //Возможно при возрасте больше 18 следует постаить другое значение
            СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.От14до18");
        
        КонецЕсли;
    
    Иначе
    
        СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.ПустаяСсылка");
    
    КонецЕсли;
    
КонецПроцедуры

Имя и значения перечисления подставить свои.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.