Количество месяцев и дней между датами (ЗУП)

Опубликовал relax2105 (relax2105) в раздел Обработки - Универсальные обработки

Обработка подсчитывает количество месяцев и дней между 2-мя датами с учетом високосных

Версия первая

Обработка подсчитывает количество месяцев и дней между 2-мя датами с учетом високосных лет

Версия вторая:

Обработка подсчитывает количество месяцев и дней между 2-мя датами с учетом високосных лет. Во 2 версии обработки добавлена возможность подсчета "прерывного" стажа (если человек менял работы) и на его основе общего страхового. Теперь, так как сия обработка писалась для кадров, есть возможность сразу же расчитать стаж и записать его в выбранном элементе справочника "Физ. лица".

Версия третья:

В данной версии устранил глюк с датами:

1. Если месяц начальной даты - 12, а конечной - 1, то вылетала ошибка - просто забыл включить такое условие.

2. Добавил реквизит, при установке которого в количество дней стажа включается последний день. Теперь можно регулировать самим где и как захотим.

3. Если имеем, например, дату начала 22.01.09 и дату конца 17.02.09, то в предыдущих вериях количество месяцев и дней было 0 и +/- 5 соответственно. Сейчас обновил условия - считает верно, 27/28 - взависимости от того установлен ли флажок ВКЛЮЧИТЕЛЬНО.

Кому пригодилось и понравилось - можно плюсануть))))) Буду рад, если кому то поможет эта маленькая штука)

Скачать файлы

Наименование Файл Версия Размер
Количество месяцев и дней между датами
.1239593092 7,85Kb
25.09.09
276
.1239593092 7,85Kb 276 Бесплатно
Количество месяцев и дней между датами (версия вторая)
.1239694307 10,34Kb
25.09.09
207
.1239694307 10,34Kb 207 Бесплатно
Количество месяцев и дней между датами (версия третья)
.1249968727 10,98Kb
23.11.09
107
.1249968727 10,98Kb 107 Бесплатно

См. также

PowerTools от 1 000
Добавить вознаграждение
Комментарии
1. relax2105 (relax2105) 29 13.04.09 09:06 Сейчас в теме
Плиз, по-возможности оставляйте критику ) (хамло может проходить мимо)
2. Андрей Скляров (coder1cv8) 3273 13.04.09 09:32 Сейчас в теме
(1) Если не хамить, то моя критика укладывается в одну строку:

Запрос=Новый Запрос("ВЫБРАТЬ РАЗНОСТЬДАТ(&НачалоПериода,&КонецПериода,МЕСЯЦ) КАК Месяцев, РАЗНОСТЬДАТ(&НачалоПериода,&КонецПериода,ДЕНЬ) КАК Дней");
ram3; 1c-kt; ИрискаЯ; Kyrales; Ish_2; biv75; O-Planet; +7 Ответить 1
3. relax2105 (relax2105) 29 13.04.09 09:55 Сейчас в теме
coder1cv8 спасибо. Теперь буду знать)
4. Ulcer (KapasMordorov) 13.04.09 11:40 Сейчас в теме
2(2)
В теме+картинке условие задачи другое. Запрос выполняет половину заданного.
5. Михаил Ражиков (tango) 466 13.04.09 11:43 Сейчас в теме
6. Михаил Ражиков (tango) 466 13.04.09 11:46 Сейчас в теме
(4) не выполняет и половины
7. rasswet (rasswet) 80 15.04.09 09:57 Сейчас в теме
в зупе насколько я помню стаж вводить надо через лет, месяцев, дней. ибо просто так 78 месяцев это не наглядно. и не удобно.
покопал инфу по екселю, ввел формулу, сделал табличку, кадровики уже по ней 400 чел просчитали стаж.
8. relax2105 (relax2105) 29 15.04.09 12:21 Сейчас в теме
(7) в ЗУПе нажно вводить стаж следующим образом: на дату приема ставится количество месяцев и дней стажа! В екселе расчитывать стаж неудобно, по крайней мере у нас, т.к. пользователи работают в Ске под терминалом и переключение из терминала на машину, чтобы расчитать стаж в екселе - не есть удобно. Потому и написал для кадров эту штуку. Да, rasswet, по-мимо же расчетов стажа, кадрам необходимо эти цифры еще и забить в Ску (вторая версия реализует это). Хотя, критика принимается)))
9. rasswet (rasswet) 80 15.04.09 13:01 Сейчас в теме
сделай переключатель "лет, месяцев, дней"-"месяцев, дней". мне не надо (я в екселе), но будет универсальнее. мож кому-то и пригодится.
10. relax2105 (relax2105) 29 15.04.09 13:05 Сейчас в теме
11. Олег (limbo) 19.04.09 17:33 Сейчас в теме
БП 1.6.15.5 вылезла ошибка
{Форма.Форма(109)}: Поле объекта не обнаружено (ВидыСтажа)
ВидСтажа = Справочники.ВидыСтажа.СтраховойСтажДляБЛ;
12. relax2105 (relax2105) 29 20.04.09 06:14 Сейчас в теме
(11) в бухгалтерии нет такого справочника "ВидыСтажа"
13. Андрей Скляров (coder1cv8) 3273 20.04.09 07:00 Сейчас в теме
У меня еще один вопрос :)
В ЗУП есть типовая функция, возвращающая количество лет, месяцев, дней между датами... Зачем изобретать велосипед?!
14. relax2105 (relax2105) 29 20.04.09 07:22 Сейчас в теме
(13) просвети, плиз, я не в курсе этой функции)
15. Андрей Скляров (coder1cv8) 3273 20.04.09 08:52 Сейчас в теме
(14)
// Процедура вычисляет количество лет, месяцев и дней между двумя датами
ОбщегоНазначения.РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0)
16. Наталья (lonec) 231 28.05.09 11:19 Сейчас в теме
relax2105, спасибо большое!!! Типовая процедура РазобратьРазностьДат не учитывает високосные года и из-за этого теряются 2 дня... Например, 06.04.1995 и 29.02.1996. Разность между этими датами должна быть равна 10 мес. 23 дня. А типовая процедура насчитывает 10 мес. 21 день. Так что, relax2105, спасибо!!!
17. relax2105 (relax2105) 29 03.06.09 04:01 Сейчас в теме
lonec, пожалуйста! Рад что кому то пригодилась сия штука))))
18. Олег Бушев (DrMabuzo) 11.09.09 13:37 Сейчас в теме
а как узнать количество дней в месяце?
19. Олег Бушев (DrMabuzo) 11.09.09 13:37 Сейчас в теме
20. Александр Честикин (cheiser1982) 42 20.11.14 10:22 Сейчас в теме
При внедрении ЗУП 8.3 писал обработки для загрузки информации из другой программы. Т.к. ранее учет велся помесячно, написал простенькую функцию для подсчета количества месяцев между датами. Может кому нибудь пригодится...

//Считаем количество месяцев между датами
&НаКлиенте
Функция КоличествоМесяцевМеждуДатами(НачальнаяДата, КонечнаяДата)
МесяцНачальнойДаты = Месяц(НачальнаяДата);
МесяцКонечнойДаты = Месяц(КонечнаяДата);
КоличествоЛет = Год(ТекущаяДата()) - Год(НачальнаяДата);
Возврат КоличествоЛет * 12 - МесяцНачальнойДаты + МесяцКонечнойДаты;
КонецФункции