Как получить количество рабочих дней за период? #14393


#0 by Dee
см. сабж
#1 by Витаэль
Дата1-Дата2
#2 by Walther
Смотря где - в ЗиК'е, например, есть спец. календарь, в котором проставляются рабочие дни и часы =)
#3 by Витаэль
Может кто знает более оптимальный вариант???
#4 by Dee
Это количество дней, включая выходные. А как получить количество дней, исключая нерабочие (выходные и праздники)?
#5 by Walther
Дата1-Дата2 - довольно оригинальный подход =)) Если бы все работали 7 гноября... ;)
#7 by Dee
ГрафикРаботы - это что? у меня "Предприятие" v7.7 - говорит, переменная не определена.
#8 by Walther
Если не в ЗиК'е, то с праздниками не знаю как справиться. А насчет выходных - посмотри в синтаксис-помощнике - если мне не изменяет память, там есть какая-то функция, которая возвращает по дате день недели =)
#9 by wt
ГрафикРаботы = Константа.ОсновнойГрафик или создать объект календарь.
#10 by Walther
Какая у тя конфигурация? Буха, ТиС или Зарплата? Или какое-нить отраслевое решение? Или еще чего?
#11 by Wd
НомерДняНедели(<?>) Синтаксис: НомерДняНедели(<Дата>) Назначение: Возвращает порядковый номер дня недели для заданной даты. Параметры: <Дата> - выражение со значением типа дата. Замечание: Порядковые номера дней недели: 1 - понедельник, 2 - вторник, ..., 7 - воскресенье.
#12 by Walther
как здорово, когда под рукой есть синтаксис-помощник =)) ИМХО без учета праздников это должно выглядеть примерно так: + подумай, как учесть остаток от неполной недели (у мну уже голова не варит)
#13 by Витаэль
Берешь бумашный календарь - быстрее всего.
#14 by Аечка
Я для расчета рабочих дней ввела такую функцию. Только все это считается у меня в документе, поэтому еще введен дополнительные список праздников (в форме документа), который заполняется вручную.
#15 by Dee
Скорректируем вопрос :) В 1С есть такая фича, как календарь бухгалтера (Сервис/Календарь бухгалтера). Там есть "Производственный календарь на 2004 год", где все праздники и выходные уже указаны. Можно конечно, как Аечка, руками один раз прописать все праздники в какой-нибудь своей функции. Но зачем это делать, если все уже есть готовое? Собственно, вопрос - как этим подключаемым календарем воспользоваться программно?
#16 by shura
В любой конф создаешь календарь, заполняешь его своим графиком работы, затем делаешь как в . Самое простое и оптимальное решение.
#17 by Dee
>>shura А как создать календарь, извините за глупый вопрос :)  ? Пробую К=СоздатьОбъект("Календарь") - ругаеться "Неудачная попытка создания объекта (Календарь)"
#18 by Шапокляк
В конфигураторе создаешь календарь. Называешь его, напримерЮ Пятидневка. Как его использовать читаешь в синтакс-помощнике или, например, в модуле расчета "По окладу" типовой ЗиК.
#19 by bsg
Реально Вы бредите. Завидую.
#20 by Rovan
Это вам кто-то делал на заказ ? (В типовой таких нет)
#21 by bsg
Расчет - в канаву. В бухгалтерии календари и праздники нашлись.
#22 by Gorr
где "КалендарьБухгалтера" имя календаря как оно задано в конфигураторе.
#23 by Dee
Я создал в кофигураторе новый календарь - "К2004" При попытке обращения: Возникает ошибка: "Поле агрегатного объекта не обнаружено (К2004)" Как к нему всетаки обращаться?
#24 by Шапокляк
А компонента Расчет установлена?
#25 by Шапокляк
Дней = Календари.ПолучитьАтрибут("К2004").Дней(ДатаНачала, ДатаКонца);
#26 by Dee
Пробовал - ругается "Неверное имя атрибута". Для работы с Календарем компонента расчет обязательна?
#27 by Шапокляк
Календари - это специфические для расчетной компоненты метаданные. В принципе, если программа дала его создать, значит, есть расчетная компонента на машине. А программа ругается при запуске на той же машине? Если Неверное имя атрибута, значит, возможно К латинское, а обращаетесь к К2004 где русское К.
#28 by Dee
Все делаю на одной машине. Имена все правильные. Делаю след. образом: 1. в конфигураторе в разделе "Календари" создаю новый календарь с именем "К2004" 2. в отчете пытаюсь к этому календарю обратиться:  КРБ=Календари.К2004.Дней(Д1,Д2); при любом способе обращения выдает ошибку.
#29 by Шапокляк
1. в конфигураторе в разделе "Календари" создаю новый календарь с именем "К2004" 2. в отчете пытаюсь к этому календарю обратиться:
#30 by Dee
"Неверное имя атрибута"
#31 by Gorr
1. журнал расчета хоть один в системе создан? 2. что выдает "сообщить(Метаданные.Календарь);" (без кавычек) ?
#32 by Шапокляк
У меня нормально работает. Еще раз проверьте, с какой буквы календарь в метаданных начинается, с русской или латинской. И обращайтесь в Дней = Календари.ПолучитьАтрибут("К2004").Дней(ДатаНачала, ДатаКонца); с той же самой.
#33 by Dee
Ни одного журнала расчета не создано.
#34 by Gorr
Возможно, для нормального функционирования части расчет необходимо создать хотябы один журнал расчета. Вовсе не обязательно его использовать. PS функция Метаданные.Календать возвращает количество созданных календарей в конфигураторе.
#35 by Dee
Действительно, после создания пустого Журнала Расчетов Календарь заработал нормально. Теперь следующий вопрос - есть файл PRCLND04.MXL с календарем на 2004 год. Как его загрузить (использовать) для созданного в конфигураторе календаря? Файл лежит в стандартной папке с календарями.
#36 by Gorr
Вообще, календари в системе "Автозаполняются", а не загружаются из файлов. 1.в режиме предприятия проставляешь в "праздниках" даты праздников. 2.все в том же режиме выбираешь календарь жмешь кнопку "автозаполнение" (галка учитывать праздники должна быть"). кстати, "стандартная папка" с календарями лежит у кого? и вообще что за файл такой?
#37 by Dee
C:1СBaseИмяБазыExtFormsCalendarPRCLND04.MXL я его получил через Сервис/Календарь Бухгалтера/
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С