|
Не умею использовать перечисление | ☑ | ||
---|---|---|---|---|
0
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 лет" и т.д выбиралось нужно перечисление автоматически, я пробовал у меня не получалось. |
|||
1
Hillsnake
24.05.19
✎
10:08
|
&НаКлиенте это не V7
окр((ТекущаяДата () - СтрокаТабличнойЧасти.ДатаРождения)/365/24/60/60 что это?? |
|||
2
Mikeware
24.05.19
✎
10:09
|
тема про ОВ, которым отравили скрипалей?
|
|||
3
MadDAD
24.05.19
✎
10:14
|
(0) Таки, да. &НаКлиенте - это 1С 8.х
Чтобы выбиралось нужное перечисление, надо правильно посчитать года. Для этого не нужно считать секунды. А надо взять год текущей даты и отнять от него год рождения. |
|||
4
1Сергей
24.05.19
✎
10:18
|
Возраст = окр((ТекущаяДата () - СтрокаТабличнойЧасти.ДатаРождения)/365/24/60/60, 0);
Если (Возраст < 3) и (Возраст > 0) Тогда СтрокаТабличнойЧасти.ВозрастнаяКатегория = Перечисления.ВозрастныеКатегории.От0До3лет; // Идентификаторы смотри как заданы в конфигураторе ИначеЕсли (Возраст < 14) Тогда СтрокаТабличнойЧасти.ВозрастнаяКатегория = Перечисления.ВозрастныеКатегории.От3До14лет; // Идентификаторы смотри как заданы в ... |
|||
5
Hillsnake
24.05.19
✎
10:23
|
(3) может полных лет нужно ?
(0) и что будет, если пользователь не введет дату рождения. |
|||
6
MadDAD
24.05.19
✎
10:26
|
Возраст = Год(ТекущаяДата()) - Год(СтрокаТабличнойЧасти.ДатаРождения);
Если (Возраст < 3) и (Возраст > 0) Тогда СтрокаТабличнойЧасти.ВозрастнаяКатегория = Перечисления.ВозрастныеКатегории.От0До3лет;// Идентификаторы смотри как заданы в конфигураторе ИначеЕсли (Возраст < 14) Тогда СтрокаТабличнойЧасти.ВозрастнаяКатегория = Перечисления.ВозрастныеКатегории.От3До14лет;// Идентификаторы смотри как заданы в |
|||
7
1Сергей
24.05.19
✎
10:31
|
(6) >>Возраст = Год(ТекущаяДата()) - Год(СтрокаТабличнойЧасти.ДатаРождения);
как грубо :) |
|||
8
1Сергей
24.05.19
✎
10:32
|
почти матом
|
|||
9
Evgenchik
24.05.19
✎
10:49
|
(4) и (6) -это &НаСервере лучше выполнить
|
|||
10
Кац
24.05.19
✎
11:00
|
(2) скорее, 86 год
|
|||
11
MadDAD
24.05.19
✎
11:08
|
(8) А чего он в семерочной ветке постит? :)
|
|||
12
DrWatson
24.05.19
✎
11:09
|
(0)
&НаКлиенте Процедура ТабличнаяЧасть1ДатаРожденияПриИзменении(Элемент) СтрокаТабличнойЧасти=Элементы.табличнаячасть1.ТекущиеДанные; Если ЗначениеЗаполнено(СтрокаТабличнойЧасти.ДатаРождения) Тогда КоличествоПолныхЛет = 0; //вставить рассчет из v8: Количество полных лет между двумя датами Если КоличествоПолныхЛет < 3 Тогда СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.От0до3"); ИначеЕсли КоличествоПолныхЛет < 14 Тогда СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.От3до14"); ИначеЕсли КоличествоПолныхЛет < 18 Тогда СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.От14до18"); Иначе //Возможно при возрасте больше 18 следует постаить другое значение СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.От14до18"); КонецЕсли; Иначе СтрокаТабличнойЧасти.ВозрастнаяКатегория = ПредопределенноеЗначение("Перечисление.ВозрастныеКатегории.ПустаяСсылка"); КонецЕсли; КонецПроцедуры Имя и значения перечисления подставить свои. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |