Имя: Пароль:
1C
1С v8
А как не в запросах, а в коде получить разницу дат в месяцах?
0 Капюшон
 
14.06.12
13:42
В запоросах есть функция РАЗНОСТЬДАТ. А мне надо в самом коде такую функцию. как решить это? Не хочу делить на количество дней и т.п. есть вариант проще. может функции в типовых есть?
1 pumbaEO
 
14.06.12
13:42
ДобавитьМесяц
2 Агент Инфостарта
 
14.06.12
13:44
3 Капюшон
 
14.06.12
13:46
(1)это не то.
(2)придется так сделать.
4 Агент Инфостарта
 
14.06.12
13:46
5 mikadi
 
14.06.12
14:08
Если именно в месяцах, то можно что-то типа
Окр((НачалоМесяца(Дата2) - НачалоМесяца(Дата1))/30,0).

Некрасиво, но вроде корректно.
6 Fragster
 
гуру
14.06.12
14:09
12* (год2 - год1) + месяц2 - месяц1. так оно работает в запросе
7 nuctoh
 
14.06.12
14:11
(5) Точность никакая. Я бы заюзал цикл:

Месяцев = 0;
Пока ДобавитьМесяц(Дата1, Месяцев) < Дата2 Цикл
   Месяцев = Месяцев + 1;
КонецЦикла;
8 nuctoh
 
14.06.12
14:12
(7) Гоню-гоню, вот так надо:

Месяцев = 0;
Пока ДобавитьМесяц(Дата1, Месяцев+1) < Дата2 Цикл
   Месяцев = Месяцев + 1;
КонецЦикла;
9 Fragster
 
гуру
14.06.12
14:16
(8) в запросе работает не так, см. v8: v8: Туплю с разностью дат в запросе
10 Капюшон
 
14.06.12
14:23
есть один чувак на форуме. вот его функция

Функция РазностьДатМесяц(ДатаНачало,ДатаКонца) Экспорт
  Возврат ?(НачалоМесяца(ДатаНачало) >= НачалоМесяца(ДатаКонца), 0, 1 + РазностьДатМесяц(ДатаНачало,НачалоМесяца(ДатаКонца)-1));
КонецФункции
11 Fragster
 
гуру
14.06.12
14:24
(10) сделайте меня развидеть это :)
12 Fragster
 
гуру
14.06.12
14:24
РазностьДатМесяц('00010101','20120614'); ;)
13 Капюшон
 
14.06.12
15:02
(11)что означает ваша фраза?
14 Fragster
 
гуру
14.06.12
15:03
(13) ты попробовал (12)?
15 Капюшон
 
14.06.12
15:07
(14)не могу понять вашь код. зачем точки с запятой две и скобка
16 mikadi
 
14.06.12
15:07
(7) А почему "точность никакая"? В каких случаях будет ошибка?
17 Fragster
 
гуру
14.06.12
15:14
(16) в году примерно 12,175 месяцев. если брать разность дат больше чем за (примерно) 7 лет - будет ошибка, при расчете длинных кредитов это может влиять.

ну и не на 30, а на 86400*30 в в8 делить надо.
18 Fragster
 
гуру
14.06.12
15:21
(15) а, ну да, ну да.
19 mikadi
 
14.06.12
15:40
(17) Понял. Спасибо.
20 John83
 
14.06.12
16:51
(17) а чему у тебя равен один месяц?
21 Fragster
 
гуру
14.06.12
16:55
(20) у меня - см (6) и (9)
22 John83
 
14.06.12
16:59
однако...
23 n koretsky
 
14.06.12
17:53
(0) а чем запрос не угодил? или что мешает функцию самому написать? но в ней использовать РазностьДат в запросе.