Имя: Пароль:
1C
1C 7.7
v7: Как получить разность дат без выходных?.. и праздников
0 Босечка
 
11.07.13
10:49
Как получить разность дат без выходных? (суббота,воскресенье)
1 Darych
 
11.07.13
10:50
смотри сп календари
2 aka AMIGO
 
11.07.13
10:56
например, так делается в ЗиКе:
           Календарь = СоздатьОбъект("Календарь.Пятидневка");

       ВсегоДней =  Календарь.Дней(НачальнаяДата,СледующаяДата);
       ВсегоЧасов =  Календарь.Часов(НачальнаяДата,СледующаяДата);
3 aka AMIGO
 
11.07.13
10:59
+2 а в пустою строку вставить код:

Календарь = ГрафикРаботы.ОсновныеЧасы;
4 Босечка
 
11.07.13
11:01
Это понятно, как в зарплате. Это надо в бухгалтерии.
5 Darych
 
11.07.13
11:03
вброс засчитан.. всего-то 4 пост
6 Босечка
 
11.07.13
11:03
Без календаря никак нельзя?
7 Darych
 
11.07.13
11:03
кури день недели в работе с датами
8 aka AMIGO
 
11.07.13
11:04
(6) в цикле, +7
9 Базис
 
naïve
11.07.13
11:04
В какой-то из конф перебираются дни и каждый проверяется на (рабочий/выходной из календаря).
10 Базис
 
naïve
11.07.13
11:05
(6) Нельзя, сравни результаты на январе или мае.
11 Darych
 
11.07.13
11:07
(10) можно.. не звезди.. сб и вс проверить можно)
12 Mikeware
 
11.07.13
11:07
пипец, совсем люди математику забыли...
13 Darych
 
11.07.13
11:08
(12) отрыгнулся и здесь?)
14 Mikeware
 
11.07.13
11:09
(9) у ТС задачка примитивная - ей нужно только без суббот-воскресений.
15 Базис
 
naïve
11.07.13
11:12
(14) И почти наверняка - неточно сформулированная.

Чем 6 января 2014 года похоже на рабочий день?
16 Grobik
 
11.07.13
11:12
Функция КолвоРабДнейИнтервал(НачДат,КонДат) Экспорт
 
 КолРабДней=0;
 ДеньМесяц="";
 Для К=НачДат По КонДат Цикл
   Если (НомерДняНедели(К)>=1) И (НомерДняНедели(К)<=5) Тогда
     ДеньМесяц=Лев(СокрЛП(Строка(К)),6);
   КонецЕсли;
 КонецЦикла;
 Возврат КолРабДней;    
КонецФункции
17 Darych
 
11.07.13
11:13
(15) перечитай (0): Как получить разность дат без выходных? (суббота,воскресенье)
18 Grobik
 
11.07.13
11:14
Функция КолвоРабДнейИнтервал(НачДат,КонДат) Экспорт
 КолРабДней=0;
 ДеньМесяц="";
 Для К=НачДат По КонДат Цикл
   Если (НомерДняНедели(К)>=1) И (НомерДняНедели(К)<=5) Тогда
     ДеньМесяц=Лев(СокрЛП(Строка(К)),6);
     КолРабДней=КолРабДней+1;
   КонецЕсли;
 КонецЦикла;
 Возврат КолРабДней;    
КонецФункции
19 skunk
 
11.07.13
11:14
(18)по 7 дней кошернее прибавлять
20 Grobik
 
11.07.13
11:15
ДеньМесяц=Лев(СокрЛП(Строка(К)),6);

не надо, это для праздников
21 Базис
 
naïve
11.07.13
11:17
(17) Спасибо, видел.

Первое, что делаю, увидев задачу - думаю, не решена ли она за меня уже? Сразу после этого проверяю на непротиворечивость, полноту (чтоб не переделывать).


(19) Можно перепрыгнуть дальше нужной даты.
22 skunk
 
11.07.13
11:19
(21)если правильно запрогаммировать, то не перепрыгнешь
23 zak555
 
11.07.13
11:20
(0) в бухии/комплексной 77 есть производственный календарь в mxl файле
24 skunk
 
11.07.13
11:21
а побольшому счету вообще можно сделать без цикла
25 1Сергей
 
11.07.13
11:21
КоличествоРабДнейВТекущейНеделе + КоличествоПолныхНедельНачинаяСоСледущегоПнд * 5 + КоличествоРабочихДнейВПоследнейНеделе
26 zak555
 
11.07.13
11:22
(25) не учитываются праздники
27 1Сергей
 
11.07.13
11:23
(26) Праздники? Кто говорил про праздники?
28 skunk
 
11.07.13
11:24
(26)читаем внимательно (0)
29 zak555
 
11.07.13
11:25
(27) есть праздники, которые являются выходными => автор просил получить разность дат без выходных
30 1Сергей
 
11.07.13
11:26
(29) Это твои домыслы
31 zak555
 
11.07.13
11:26
(28) телеграфирую : сейчас она попросит учесть нерабочие дни (праздники)
32 aka AMIGO
 
11.07.13
11:26
(29) вот ты педант-то :)
33 Darych
 
11.07.13
11:27
(29) в 0 ТС явео сказал про сб и вс... нех растекаться мозгом
34 skunk
 
11.07.13
11:27
(29)тс конкретищировал - (суббота,воскресенье)
35 zak555
 
11.07.13
11:29
ну тогда это без циклов делается
36 aka AMIGO
 
11.07.13
11:29
(31) кстати, их можно проверять условием прямо в цикле.
это криво, конечно, но для нечастых применений - сойдет :)

кстати, ТСу вариантов решения предложено много, пусть выбирает :)
37 1Сергей
 
11.07.13
11:30
(36) ему нужно готовенькое
38 Босечка
 
11.07.13
11:31
(31) Вы оказались правы, как это не смешно. Праздники тоже надо исключить.
39 Босечка
 
11.07.13
11:32
(18) Работает, спасибо, а праздники как сделать?
40 Darych
 
11.07.13
11:32
еще вброс... вываливай уж все
41 zak555
 
11.07.13
11:32
бу га га

пошёл работать на телеграф =)
42 aka AMIGO
 
11.07.13
11:33
да.. ТС читает через один пост, что-ли?..
43 Босечка
 
11.07.13
11:33
Почему через один?
44 1Сергей
 
11.07.13
11:34
(43) через два?
45 1Сергей
 
11.07.13
11:34
(41) ты бы научил 1С-ку телепатировать все праздники, без календарей и прочих справочников :)
46 zak555
 
11.07.13
11:35
(45) так в штатных конфах всё есть
47 aka AMIGO
 
11.07.13
11:35
(45) в текстовом файлике - прописать все праздники.. делов-то :)
48 Mikeware
 
11.07.13
11:36
(45) я вот понять не могу - а чего они жмутся программиста нанять...
49 Grobik
 
11.07.13
11:36
50 aka AMIGO
 
11.07.13
11:37
(49) угу.. только праздники в коде - моветон :)
51 zak555
 
11.07.13
11:38
(18) про НомерНеделиГода не слышад ?
52 1Сергей
 
11.07.13
11:38
(50) а в текстовике - ересь
53 1Сергей
 
11.07.13
11:38
(51) оно есть в клюшках?
54 aka AMIGO
 
11.07.13
11:39
(52) ну и ладно! на костер не отправят :)
55 dedmoroz777
 
11.07.13
11:39
(54) лучше справочник праздников сделать
56 zak555
 
11.07.13
11:39
(53) разумеется
57 aka AMIGO
 
11.07.13
11:41
(55) тут условие проскочило: сделать без колендарей и справочников :)
58 aka AMIGO
 
11.07.13
11:41
колендарей = календарей извините
59 dedmoroz777
 
11.07.13
11:42
(57) про справочники небыло такого
60 Darych
 
11.07.13
11:42
ща аВВтар напишет: хочу знать количество рабочих дней в году
61 aka AMIGO
 
11.07.13
11:42
(59) см (45)
62 1Сергей
 
11.07.13
11:43
(60) оно в константах задаётся
63 Darych
 
11.07.13
11:44
(62) а ты его конфу видел?
64 dedmoroz777
 
11.07.13
11:46
(61) это не ТС
65 1Сергей
 
11.07.13
11:46
(63) По последним данным разветки это не его конфа, а её :)
66 dedmoroz777
 
11.07.13
11:47
(65) и когда ты всё успел разведать?)
67 МихаилМ
 
11.07.13
11:50
71 Босечка
 
11.07.13
14:39
Всем спасибо, все получилось, пускай не так красиво, как вам хотелось. Сделала справочник с праздниками. Все равно лучше чем в тексте программы писать.
72 Босечка
 
11.07.13
14:40
(49) Как у вас, только вместо текста справочник. Спасибо!
Закон Брукера: Даже маленькая практика стоит большой теории.