[РЕШЕНО] Разность дат в месяцах

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем PavelA, 16 июл 2014.

  1. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    Подскажите как подсчитать разность дат в месяцах не в запросе.
    например есть дата 12.12.13 и 12.02.14 - результат 2
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Могу скинуть формулу
    Код:
    &НаСервере
    Функция РазницаВМесяцах(ДатаНач, ДатаКон)
        Лет1 = Год(ДатаНач);
        Месяцев1 = Месяц(ДатаНач);
        Если НачалоДня(ДатаНач) <> НачалоДня(КонецМесяца(ДатаНач)) Тогда
            Дней1 = День(ДатаНач);
        Иначе
            Дней1 = 30;//В каждом месяце ровно 30 дней
        КонецЕсли;
    
        Лет2 = Год(ДатаКон);
        Месяцев2 = Месяц(ДатаКон);
        Если НачалоДня(ДатаКон) <> НачалоДня(КонецМесяца(ДатаКон)) Тогда
            Дней2 = День(ДатаКон)+1;
        Иначе
            Дней2 = 30;//В каждом месяце ровно 30 дней
        КонецЕсли;    
    
        Лет = Лет2 - Лет1;
        Месяцев = Месяцев2 - Месяцев1;
        Дней = Дней2 - Дней1;
        Возврат Цел(Лет*12 + Месяцев + Дней/30);
    КонецФункции
  3. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    а так :
    МаксДата = Макс(Дата1,Дата2);
    КолМес=0;
    ДатаТек = Мин(Дата1,Дата2);
    Пока ДатаТек<МаксДата Цикл
    КолМес=КолМес+1;
    ДатаТек = ДобавитьМесяц(ДатаТек,1);
    КонецЦикла;
  4. TopicStarter Overlay
    PavelA
    Offline

    PavelA Опытный в 1С

    Регистрация:
    26 дек 2011
    Сообщения:
    739
    Симпатии:
    0
    Баллы:
    26
    спс! закрыта тема, буду разбираться)

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