gifts2017

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

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