×
Показано с 1 по 10 из 10
  1. #1
    Аноним
    Гость

    Смешно Нужно сделать расчет возроста сотрудника

    ДобрыйДень.Задача состоит в следующем: В справочник сотрудники документом "ПриемНаРаботу" вводится дата рождения сотрудника "ДатаРождения". Необходимо чтобы при проведении документа "НачалоМесяца" расчитывался возраст сотрудника и записывался в СпрСотрудники.
    В модуле док "НачалоМесяца" написал процедуру:
    //Расчитывает возраст сотрудника и записывает в справочик Сотрудники
    Процедура Возраст()

    СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
    ДР = СпрСотр.ДатаРождения;
    СкЛет = ДатаГод(ТекущаяДата()) - ДР;
    Если ДатаМесяц(ДР) <= ДатаМесяц(ТекущаяДата()) Тогда
    Если ДатаЧисло(ДР) <= ДатаЧисло(ТекущаяДата()) Тогда
    СпрСотр.Возраст = СкЛет;
    Иначе
    СпрСотр.Возраст = СкЛет - 1;
    КонецЕсли;
    Иначе
    СпрСотр.Возраст = СкЛет - 1;
    СпрСотр.Записать();
    КонецЕсли;
    КонецПроцедуры

    по сути правильно но не работает где ошибка не разбирусь ни как????
    Поделиться с друзьями

  2. #2
    Fosihas
    Гость
    СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
    СпрСотр.НайтиЭлемент(РеквизитИзДокумента_Сотрудник);
    ДР = СпрСотр.ДатаРождения;

  3. #3
    Клерк Аватар для AntonDr
    Регистрация
    15.06.2006
    Адрес
    Оренбург
    Сообщений
    1,561
    Еще запись изменений реквизита "Возраст" не производится в случае ДатаМесяц(ДР) <= ДатаМесяц(ТекущаяДата()), что тоже вызывает сомнения.

  4. #4
    Аноним
    Гость

    Нужно сделать расчет возроста сотрудника

    Казалосьбы все элементарно взял дату рожден из справочника, посчитал возраст записал обратно в справочник и все, на самом деле столько косяков. Кто-нибудь встречал готовый расчет возроста сотрудника,??? чтобы содрать оттуда

  5. #5
    Fosihas
    Гость
    а я лично не вижу смысла, этот возраст считать. И тем более месячно его записывать в справочник...

  6. #6
    Аноним
    Гость

    Нужно сделать расчет возроста сотрудника

    Возраст будет использоваться при расчете надбавок хитрых. Так как это первое, что я делаю в 1с, самым простым для меня казался именно такой способ, других покач-то не знаю к моему стыду и позору.

  7. #7
    Fosihas
    Гость
    Не проше ее каждый раз расчитывать

    (ДатаГод(ТекущаяДата() или ДатаДокумента)-ДатаГод(ДействующаяДатаРождения)) = Возраст.

  8. #8
    Клерк Аватар для Pantera_rrr
    Регистрация
    25.10.2006
    Адрес
    г. Екатеринбург
    Сообщений
    30
    Цитата Сообщение от Аноним
    Возраст будет использоваться при расчете надбавок хитрых. Так как это первое, что я делаю в 1с, самым простым для меня казался именно такой способ, других покач-то не знаю к моему стыду и позору.
    как это не ужасно вы выбрали очень не хороший способ.
    т.к как я понимаю вы будете прописывать хитрый расчет, то какого черта вы портите справочник, нельзя ли все выяснения возразта прописывать именно в расчете?
    все говорят работайте головой, не могу понять как многие могут работать таким тупым предметом(с)

  9. #9
    Fosihas
    Гость
    Или можно вообще ничего не менять в модуле. А установить срок действия надбавки для человека. В документе Начисления это кажется возможно. Это конечно дольше но, без внутненних изменений конфигурации.

  10. #10
    Амёба
    Гость
    В ЗиКе в Глобальнике есть функуия глПредставлениеСтажа(), определяет количество лет, месяцев, дней на заданную дату для строковой даты из 10 символов. ('01.12.1962')

    Можно посмотреть например для стажа в справочнике Сотрудники в модуле элемента.

    Ею можно пользоваться для определения возраста на определенную дату.
    А хранить возраст на дату проведения приказа о приеме?
    Согласна с предыдущими выступающими - смысла никакого.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)