Имя: Пароль:
1C
1С v8
Сложение дат
, , ,
0 manti
 
17.06.15
13:36
Есть две даты формата Лет, Месяцев, Дней:
12 лет 11 мес 20 дней
И
4 лет 10 мес 30 дней

Подскажите функцию, которая складывает эти две даты, чтобы в итоге получилось 17 лет 10 мес 30 дней
1 asady
 
17.06.15
13:36
(0) оператор "+"
2 asady
 
17.06.15
13:37
(0) и не факт что ты прав
3 Ненавижу 1С
 
гуру
17.06.15
13:37
это не даты, а интервалы времени

как они хранятся у вас?
4 Господин ПЖ
 
17.06.15
13:37
а високосные как считать?
5 butterbean
 
17.06.15
13:39
Зависит от того, какие месяцы складываются. Нужно по границам периодов смотреть.
6 manti
 
17.06.15
13:41
(3) первая величина (интервал времени) это количество отработанное сотрудником до прихода в орг. Забивается в спр физики. Вторая величина - получаем разностью от тек даты и датой приема.
(4) эти интервалы уже сформированы с этим учетом)
7 Avganec
 
17.06.15
13:44
(0) копайте ЗУП или ЗиК - там это точно есть
8 Господин ПЖ
 
17.06.15
13:47
>эти интервалы уже сформированы с этим учетом

интервалы то да, а складывать их как? 10 дней + 20 дней - это 1 месяц 0 дней? или 0 месяцев 30 дней?
9 НЕА123
 
17.06.15
13:50
РХ+((Д1-РХ)+(Д2-РХ))
10 bolobol
 
17.06.15
14:02
а почему в ответе дней 30, а не по-другому как-то?
11 manti
 
17.06.15
14:04
(8) можно так 10 дней + 20 дней - это 1 месяц 0 дней?
12 manti
 
17.06.15
14:53
кто то делал подобное?
13 manti
 
17.06.15
14:54
(9) РХ+((Д1-РХ)+(Д2-РХ)) - можно более подробно?
14 НЕА123
 
17.06.15
14:56
РХ = '0001-01-01';
15 Ненавижу 1С
 
гуру
17.06.15
15:00
(11) по вашему в году получится 360 дней, однако там несколько больше
16 bolobol
 
17.06.15
15:02
Извините, что повторяюсь: а почему в ответе дней 30, а не по-другому как-то?
17 НЕА123
 
17.06.15
15:18
(16)
как-бы похоже
что 4 года = 365*4 дней
а в итоговомм считается что 1 год = 360 дней.
ЗЫ
в общем - вышее высшей математики...
18 Господин ПЖ
 
17.06.15
15:20
(17) китайский мегабайт = 1000 килобайт

а у кадровиков в месяце вообще 29.4
19 hhhh
 
17.06.15
15:31
(71) ну там всё так. Например разность дат в годах между 31.12.2014 и 01.01.2015 будет 1 год.
20 разработчик 1с
 
17.06.15
15:52
текущая дата - (дата приёма - стаж до)
21 vhl
 
17.06.15
16:12
вообще то?
12 лет 11 мес 20 дней + 4 лет 10 мес 30 дней = 16 лет 22 мес 50 дней
откуда "17 лет 10 мес 30 дней"?
22 bolobol
 
17.06.15
17:27
(21) Оттуда, откуда 1 год = 12 месяцам и т.д. Вопрос лишь в 30 днях.
23 Господин ПЖ
 
17.06.15
17:31
> Вопрос лишь в 30 днях.

не только

и в 28, и в 29 и в 31

или закладываться на "365 и все"
24 DES
 
17.06.15
17:59
от текущей даты отнимайте года, месяцы и дни стандартной функцией
потом вычисляйте разность между текущей и полученной.
25 DES
 
17.06.15
18:06
(24)+ Я так сделал http://prntscr.com/7i1f5d
26 DES
 
17.06.15
18:07
(21) а откуда 22 месяца в годУ?
27 Phace
 
17.06.15
18:10
Вот, отрыл у себя в базе, правда делалось это для параметров типа Время, но вероятно и для Дата/Время будет работать:

&НаСервере
Функция ятСуммаВремени(Время1, Время2) Экспорт
    ДобавитьСекунд = Время2 - Дата(1,1,1);
    Возврат Время1 + ДобавитьСекунд;
КонецФункции

...соответственно складывать нужно даты 0012,11,20 и 0004,10,30
28 Phace
 
17.06.15
18:11
(27)+ но вообще задача в (0) некорректная
29 beaver1971
 
17.06.15
18:13
(18) вообще то с недавних пор 29,3 ))))
30 Господин ПЖ
 
17.06.15
18:18
(29) тем более
Закон Брукера: Даже маленькая практика стоит большой теории.