Имя: Пароль:
1C
1C 7.7
v7: КалендарьПраздников
0 Славянин
 
09.07.13
16:15
Как можно получить количество праздничных дней за определённый период?
1 Franchiser
 
гуру
09.07.13
16:23
Как-то так:
КолвоПраздников =0;
Праздники = СоздатьОбъект("Праздники");
   Если Праздники.ВыбратьДаты(ЖурналРасчетовЗарплата.НачалоПериодаПоДате(ДатаПериода),ЖурналРасчетовЗарплата.КонецПериодаПоДате (ДатаПериода)) = 1 Тогда
       Пока Праздники.СледующаяДата() = 1 Цикл
       КолвоПраздников =КолвоПраздников +1;
       КонецЦикла;
   КонецЕсли;
2 Славянин
 
09.07.13
16:25
Делаю что то подобное,только даты указываю те, которые у меня в документе.
ЛишниеДни=0;
   Календ = СоздатьОбъект("Календарь.КромеПраздников");
   Календ.ВыбратьДаты(НачБол,КонБол);
   Пока Календ.СледующаяДата()=1 Цикл
       ЛишниеДни=ЛишниеДни+1;
       
   КонецЦикла;
3 Franchiser
 
гуру
09.07.13
16:26
ну хорошо, это то же самое? что не работает?
4 Franchiser
 
гуру
09.07.13
16:29
не понял только. Объект праздники и объект календарь разные вещи.
5 Славянин
 
09.07.13
16:30
У меня промежуток с 1.05.13 по 12.05.13, т.е. 1 и 9 мая праздники, по идее счётчик должен быть равен 2. Но у меня почему то пустота
6 Franchiser
 
гуру
09.07.13
16:30
По календарю ты праздники не получишь, там либо рабочие либо выходные дни. Ну только если у тебя спец календарь.
7 Славянин
 
09.07.13
16:30
А что такое праздники? это не календарь?
8 Franchiser
 
гуру
09.07.13
16:32
Открой конфигуратор. Праздники объект такой в календарях. У него иконка красного цвета. А у календарей синего. МОжет смысл похожий, но объект с точки зрения метаданных разный.
9 Славянин
 
09.07.13
16:35
ок,буду разбираться)спасибо
10 Chum
 
09.07.13
16:48
У праздников продолжительность дня = 0 если что
11 Chum
 
09.07.13
16:48
У выходных тоже = 0, только есть такое понятие, как графики работы
12 Franchiser
 
гуру
09.07.13
17:11
(11) Человек хочет праздники посчитать, причем тут графики работы. Праздники зависят от графика что ли?
13 Славянин
 
10.07.13
09:56
ребята, вот этот код считает количество дней в промежутке
(НачБол,КонБол). Как мне из этих дней вычислить праздничные?счётчик должен увеличиваться только в случае праздничного дня
ЛишниеДни=0;
   Календ = СоздатьОбъект("Календарь.КромеПраздников");
   Календ.ВыбратьДаты(НачБол,КонБол);
   Пока Календ.СледующаяДата()=1 Цикл
       ЛишниеДни=ЛишниеДни+1;
   
   КонецЦикла;
14 Chum
 
10.07.13
10:01
(12) ну хз, для сменных графиков при непрерывном производстве праздники как-то пофигу.

(13) тебе же выше пример привели в (2) Чем не устраивает?
15 Славянин
 
10.07.13
10:04
У меня нет такого объекта "Праздники". Если я пытаюсь создать ссылку на него,у меня падает 1С
16 ЧеловекДуши
 
10.07.13
10:07
(5) Читай в (4) до просветления :)
17 ЧеловекДуши
 
10.07.13
10:08
(15) Есть, он типовой, т.е. он всегда есть, был и будет :)
Его не надо создавать :)
18 ЧеловекДуши
 
10.07.13
10:09
+(15)Попробуй так

Праздники = СоздатьОбъект("Календарь.Праздники");
19 Chum
 
10.07.13
10:10
20 Славянин
 
10.07.13
10:12
Ребята,спасибо большое,понял,
21 ЧеловекДуши
 
10.07.13
10:12
Контекст работы с праздниками
Доступ к атрибутам и методам праздников осуществляется через объект, создаваемый системной функцией СоздатьОбъект с ключевым словом "Праздники".

Англоязычный синоним ключевого слова "Праздники" — "Holidays".
22 Chum
 
10.07.13
10:15
И, кстати, таблица праздников должна быть заполнена ;)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший