|   |   | 
| 
 | вычесть месяца | ☑ | ||
|---|---|---|---|---|
| 0
    
        Nst 16.01.25✎ 13:02 | 
        Здравствуйте всем. пожалуйста, подскажите
 ситуация такая - нужно вычесть месяца МояПеременная = Месяц(Выборка.ДатаПоказания) - Месяц(Выборка.ДатаПредыдущегоПоказания); например, моя переменная = месяц(15.01.25) - месяц(04.09.24) равно -8, но по факту прошло же 3 месяца, а не 8. как сделать правильный расчет, подскажите? | |||
| 1
    
        Волшебник 16.01.25✎ 13:03 | 
        РазницаМес = (ДатаПоказания - ДатаПредыдущегоПоказания) / 86400 / 30;     | |||
| 2
    
        Буковка 16.01.25✎ 13:04 | 
        (0) выспользуйтесь отладкой и пропишите условие на случай, если одна/обе даты не заполнены     | |||
| 3
    
        arsik гуру 16.01.25✎ 13:07 | 
        (0)(1) РазницаМес = (Год(ДатаПоказания)*12 + Месяц(ДатаПоказания)) - (Год(ДатаПредыдущегоПоказания)*12 + Месяц(ДатаПредыдущегоПоказания))     | |||
| 4
    
        Fedor-1971 16.01.25✎ 13:08 | 
        (0) Если уже использованы запросы, то РазностьДат(ххх, ууу, Месяц) - и не парься     | |||
| 5
    
        Волшебник 16.01.25✎ 13:11 | 
        (3) или так     | |||
| 6
    
        KJlag 16.01.25✎ 13:20 | 
        РазницаСек = ДатаПоказания - ДатаПредыдущегоПоказания;
 РасчетнаяДата = Дата(1,1,1,0,0,0) + РазницаСек; РазницаМес = (Год(РасчетнаяДата)-1)*12 + Месяц(РасчетнаяДата); | |||
| 7
    
        Ненавижу 1С гуру 16.01.25✎ 13:30 | 
        МояПеременная = (Год(Выборка.ДатаПоказания) - Год(Выборка.ДатаПредыдущегоПоказания))*12 + Месяц(Выборка.ДатаПоказания) - Месяц(Выборка.ДатаПредыдущегоПоказания)     | |||
| 8
    
        Asmody 16.01.25✎ 13:37 | 
        (0) (7) сколько месяцев прошло между 29.02.2024 и 28.02.2023?     | |||
| 9
    
        Михаил Козлов 16.01.25✎ 13:41 | 
        (7) Ещё от дней даты зависит. Для (0): (2025-2024)*12+1-9=4, а полных месяцев 3.     | |||
| 10
    
        Elf_80_lvl 16.01.25✎ 13:50 | 
        (0) Функция месяц(Дата) возвращает номер месяца из даты.
 Поэтому и получается: месяц(15.01.25) = 1 месяц(04.09.24) = 9 Ну и разница 8 А то что тебе нужно (1) или (3) | |||
| 11
    
        Волшебник 16.01.25✎ 13:49 | 
        (10) разница "-8"     | |||
| 12
    
        Ненавижу 1С гуру 16.01.25✎ 13:56 | 
        (8) а сколько между 31.12.24 и 01.01.25?     | |||
| 13
    
        Волшебник 16.01.25✎ 14:02 | 
        (12) где-то от 0 до 1, точнее 0,033(3)     | |||
| 14
    
        Ненавижу 1С гуру 16.01.25✎ 14:06 | 
        (13) чтобы начать говорить о точном значении надо определиться с единицей измерения "месяц", а это очень неоднозначно     | |||
| 15
    
        arsik гуру 16.01.25✎ 14:17 | 
        Судя по контексту, показания числятся в том месяце, в котором поданы. Тем более у нас например показания с 15 по 25 принимают.     | |||
| 16
    
        Nst 16.01.25✎ 14:21 | 
        спасибо, помог (1)
 этот вариант подходящий, т.к получается на моем примере, что между сентябрем и январем прошло 3 месяца (октябрь, ноябрь, декабрь) | |||
| 17
    
        arsik гуру 16.01.25✎ 14:25 | 
        (16) Вообще то 4 месяца. если уж так 
 09-10 - 1 месяц 10-11 - 1 месяц 11-12 - 1 месяц 12-01 - 1 месяц | |||
| 18
    
        Волшебник 16.01.25✎ 14:24 | 
        (16) 🤦 но моя формула выдаёт 4,43     | |||
| 19
    
        Fedor-1971 16.01.25✎ 14:40 | 
        (16) Что есть Выборка из "Выборка.ДатаПоказания"? Если результат запроса, то сразу подготовь как в (4), будет ещё одно поле, например, РазностьДат(Таб.ДатаПредыдущегоПоказания, Таб.ДатаПоказания, Месяц) КАК КолМесяцев (вместо Таб подставь что там у тебя в запросе)
 И пустые даты сможешь обработать там же | |||
| 20
    
        Михаил Козлов 16.01.25✎ 15:20 | 
        (17) 12-01 - неполный месяц. Формально 0.     | |||
| 21
    
        KJlag 16.01.25✎ 15:24 | 
        (20) учитывая что там 15.01.25 и 04.09.24, то 12-01 - полный месяц, а вот 01-02 не полный и с 05.01 по 15.01 - откидываем     | |||
| 22
    
        Михаил Козлов 16.01.25✎ 17:25 | 
        (21) А с 04.09.2024 по 30.09.2024 тоже нужно откинуть?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |