8.х Расчет стажа

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Александр 1906, 17 июл 2015.

  1. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    Подскажите как можно раситать количество лет, месяцев и дней для сотрудника за выбранный перод? Конкретно нужно что бы в отчете выводились эти три поля за выбранный период, например за май 2014 чтобы выводило стаж 3 дня ,9 месяцев и 2 года, а за июнь должно было вывести 3 дня 10 месяцев 2 года! как это все можно расчитать и запихнутьв отет7
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    РазностьДат(Дата1, Дата2, КвантДаты), где квант даты может быть Секунда, Минута, Час, День, Неделя, Месяц,Квартал, Год(если ничего не путаю)
  3. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    а вот такое выражение можно использовать
    ВЫБОР
    КОГДА ДЕНЬ(&Период) < ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
    ТОГДА ДЕНЬ(КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней), МЕСЯЦ)) - ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней)) + ДЕНЬ(&Период)
    КОГДА ДЕНЬ(&Период) > ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
    ТОГДА ДЕНЬ(&Период) - ДЕНЬ(ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Стажи.ДатаОтсчета, МЕСЯЦ, -Стажи.РазмерМесяцев), ДЕНЬ, -Стажи.РазмерДней))
    ИНАЧЕ 0
    КОНЕЦ
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Откуда ж я знаю, можно или нет....

    Стаж работы в первом приближении считается так:

    Код:
    Выбор КОгда ДатаПриемаНаРаботу < НачалоПериода(&ТекущаяДата, ГОД)
    РазностьДат(ДатаПриемаНаРаботу, &ТекущаяДата, ГОД)
    ИНаче 0
    КОНЕЦ КАК КолвоЛет,
    Выбор КОгда ДатаПриемаНаРаботу < НачалоПериода(&ТекущаяДата, ГОД)
    РазностьДат(НачалоПериода(&ТекущаяДата, ГОД), &ТекущаяДата, Месяц)
    Иначе РазностьДат(НачалоПериода(ДатаПриемаНаРаботу, Месяц), &ТекущаяДата, Месяц)
    КОНЕЦ КАК КолвоМесяцев,
    Выбор КОгда ДатаПриемаНаРаботу < НачалоПериода(&ТекущаяДата, Месяц)
    РазностьДат(НачалоПериода(&ТекущаяДата, Месяц), &ТекущаяДата, День)
    Иначе РазностьДат(НачалоПериода(ДатаПриемаНаРаботу, День), &ТекущаяДата, День)
    КОНЕЦ КАК КолвоДней
    За корректность значений не ручаюсь, нужна проверка.
    Последнее редактирование: 17 июл 2015

Поделиться этой страницей