Всем привет, предлагаю добавить системную настройку (если такой нет, искал но не нашел) типа  "чек- бокс", что-то на подобии "Отображать возраст" или "Не отображать год рождения(возраст) женщин :)

Постоянно все приходят и просят удалить год

4 комментария

Разверну мысль - надо ввести новый тип контрола день-месяц (без года)

Интересная идея, только чем будет управлять системная настройка? Если включена — скрывать у всех? Или сделать ещё одну настройку со статической или динамической группой и скрывать только у входящих в неё? Или добавить в карточку контакта логическое поле «Отображать год» и запретить всем его менять?

 

Если просто по значению поля «Пол», то можно пользовательскими средствами настроить бизнес-правило с видимостью, но тогда не будет видно даты вообще. Сейчас дата есть только на детали «Знаменательные события», которую можно скрыть целиком, а поле «Возраст» в карточке контакта — текстовое.

Зверев Александр,

Если включена - скрывать у всех, ну или у женщин. Про динамическую группу слишком сложно будет, чем проще и очевиднее, тем лучше. Проблема возникает из-за оповещения которое всем приходит, на карточку никто не жаловался 

Если важно именно для уведомлений, идея «Уведомления. Клиент не хочет, чтобы по уведомлению знаменательного события выводились данные о годе рождения и количестве полных лет сотрудника» заведена в прошлом году, пока сроки и версии не называются.

Показать все комментарии

Для определения возраста по дате рождения у меня получилась такая функция:

function GetAgeByDate(BirthDate) {
        if (IsEmptyValue(BirthDate)) {
                return null;
        }
        var NowDate = System.Now();
        var TempBirthDate = new Date(BirthDate);
        var TempNowDate = new Date(NowDate);
       
        var BirthFullYear = TempBirthDate.getFullYear();
        var BirthMonth = TempBirthDate.getMonth();
        var BirthDay = TempBirthDate.getDate();

        var NowFullYear = TempNowDate.getFullYear();
        var NowMonth = TempNowDate.getMonth();
        var NowDay = TempNowDate.getDate();
       
        if (BirthFullYear >= NowFullYear) {
                return 0;
        } else {
                if ((BirthMonth > NowMonth) || ((BirthMonth == NowMonth) && (BirthDay > NowDay))) {
                        return (NowFullYear - BirthFullYear - 1);
                } else {
                        return (NowFullYear - BirthFullYear);
                }
        }
}

Нравится

Поделиться

2 комментария

может лучше возвращать 0 в этих строка кода:

if (IsEmptyValue(BirthDate)) {
                return null;
}

Изначально было 0, но затем заменил на null. Считаю так правильнее, ведь это всё же разные ситуации.

Показать все комментарии