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

1. ROM 05.12.06 10:52 Сейчас в теме
Подскажите, как посчитать количество РАБОЧИХ дней между 2мя датами?
Из помощника, понял что нужно использовать: Дней(дата1, дата2); и УчитыватьПраздники(); но как их в модуль списока справочника вставить, чтобы считал?
Праздниками считаются все красные даты? и выходные тоже?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vasilykushnir 63 05.12.06 11:15 Сейчас в теме
Rom Написал:
-------------------------------------------------------
> Подскажите, как посчитать количество РАБОЧИХ дней
> между 2мя датами?
> Из помощника, понял что нужно использовать:
> Дней(дата1, дата2); и УчитыватьПраздники(); но как
> их в модуль списока справочника вставить, чтобы
> считал?
> Праздниками считаются все красные даты? и выходные
> тоже?

По-моему, в типовых д.б. так называемые календари, где уже отмечены и выходные и праздники - покопай в этом направлении.
3. ROM 05.12.06 11:22 Сейчас в теме
У меня под рукой только рарусCRM но там календари неиспользуют :(
дайте ссылку где можно про календари почитать, а то в моей книжке про них нислова не сказано.
5. ROM 05.12.06 15:58 Сейчас в теме
Процедура РабДни()
перем Дни;
Календ = СоздатьОбъект(Календари.Служащие);
Дни = Календ.Дней( ДатаУвольнения, ДатаПриема);
Сообщить(Дни);
КонецПроцедуры

пишет ERR

Календ = СоздатьОбъект(Календари.Служащие);
{Справочник.Сотрудники.ФормаСписка.ФормаСписка.Модуль(3)}: Неудачная попытка создания объекта

почему?
8. vladko 06.12.06 08:55 Сейчас в теме
Rom Написал:
-------------------------------------------------------
> Процедура РабДни()
> перем Дни;
> Календ = СоздатьОбъект(Календари.Служащие);
> Дни = Календ.Дней( ДатаУвольнения,
> ДатаПриема);
> Сообщить(Дни);
> КонецПроцедуры
>
> пишет ERR
>
> Календ = СоздатьОбъект(Календари.Служащие);
> {Справочник.Сотрудники.ФормаСписка.ФормаСписка.Мод
> уль(3)}: Неудачная попытка создания объекта
>
> почему?
Во-первых, сразу бросается в глаза:
Календ = СоздатьОбъект(Календари.Служащие);
надо хотя бы уж
Календ = СоздатьОбъект("Календарь.Служащие");
4. vasilykushnir 63 05.12.06 11:56 Сейчас в теме
В справке 1С по календарям не густо. Достань к-нить типовуху и посмотри, как там сделано.

Цитата:
Объект Календарь в системе 1С:Предприятие предназначен для вычисления временных интервалов на основании произвольных временных графиков. Этот объект может использоваться, например, для учета графика работы предпри­ятия, графика работы внешних организаций, графика учета рабочего времени тех или иных работников предприятия и пр.

Календарь представляет собой объект, который устанавливает для каждой календарной даты некоторое числовое значение, которое может интерпретиро­ваться при работе программы тем или иным образом. Например, в календаре, представляющем собой график работы организации или предприятия, каждому рабочему дню может соответствовать единица, а каждому выходному — ноль. В календаре учета рабочего времени сотрудников предприятия, каждой дате ка­лендаря может соответствовать число — продолжительность рабочего дня в часах и т. д.

В глобальном контексте программы 1С:Предприятие есть атрибут "Календари". Этот объект в качестве своих атрибутов имеет значения объек­тов конкретных видов календарей, заданных в конфигурации. Кроме того, этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту календаря конкретного вида по его имени. Т.е. допустимы следующие синтаксические конструкции:

Календари.Служащие.Дней(ТекДата, ТекДата + 5);

Календари.ПолучитьАтрибут("Служащие").Дней(ТекДата, ТекДата + 5);

Праздники в системе 1С:Предприятие представляет собой объект похожий на календарь, но он заполняется выборочно (не все даты подряд) и в нем могут вводиться и удаляться строки для определенных дат. Данный объект исполь­зуются как набор исключений при заполнении календарей (см. метод календа­ря УчитыватьПраздники).

6. vasilykushnir 63 05.12.06 16:46 Сейчас в теме
Глянь это
Прикрепленные файлы:
001.rar
MarkOff; sviata; +2 Ответить
7. ivnik 594 05.12.06 20:35 Сейчас в теме
Обычно я такие процедуры решаю стандартным способом, типа:

ЖурналРасчетовЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
КТП = ЖурналРасчетовЗарплата.КонецТекущегоПериода();
НТП = ЖурналРасчетовЗарплата.НачалоТекущегоПериода();

// если график работы не выбран используем основной график, установленный в константе
ГрафикРаботы = Сотрудник.ГрафикРаботы.Получить(КТП);
Если ПустоеЗначение(ГрафикРаботы)=1 Тогда
ГрафикРаботы = Константа.ОсновнойГрафик;
КонецЕсли;

Календарь = ГрафикРаботы.ОсновныеЧасы;
ДатаН = ?(ПустоеЗначение(ДатаНач)=1,НТП,ДатаНач);
ДатаК = ?(ПустоеЗначение(ДатаКон)=1,КТП,ДатаКон);
НормаДн = Календарь.Дней(НТП,КТП);
НормаЧасов = Календарь.Часов(НТП,КТП);
ДатаРеквизитов = ДатаК; //ДатаОкончания;
КоэффДн = Дни/НормаДн;
// а если нужно получить календарные дни, тогда
КалДней=ДатаК - ДатаН +1;
9. ROM 06.12.06 12:24 Сейчас в теме
Все получилось, рабочие дни считает, но вот с праздниками проблема. Как их назначать, неразберусь?

Все разобрался, работает:) !!!!! Всем спасибо за помощь!!!
10. ДмитрийF 13.12.06 04:40 Сейчас в теме
А кто подскажет как получить фактически отработанное время?
11. vladko 13.12.06 08:32 Сейчас в теме
наверное из табелей? ;-)
12. ДмитрийF 13.12.06 09:10 Сейчас в теме
Для сдельщиков нет табелей.
13. vladko 13.12.06 09:38 Сейчас в теме
У конфигурация-то какая у тебя?
14. ДмитрийF 13.12.06 11:05 Сейчас в теме
ЗиК 7.7.269.
Я имел ввиду документ ТабельОтработанногоВремени.
15. vladko 13.12.06 15:44 Сейчас в теме
А в журнале расчёта не считается сколько чел отработал?
16. ДмитрийF 14.12.06 05:04 Сейчас в теме
Я тут подумал, наверно ничего не получится. Отработанное время надо получить в программке которая из файла DBF берет данные по сдельщикам и создает бригадные наряды, а потом уже идет расчет всего остального так как в них база для остальных расчетов. Расчетчик хочет посмотреть сразу сколько человек часов отработал при загрузке сведений из DBF, там этого нет, и как я понял без Регламенты-Расчет з/п получить эту информацию проблематично.
17. vladko 14.12.06 07:31 Сейчас в теме
Скорее всего так и есть.
18. CheBurator 2696 15.12.06 00:51 Сейчас в теме
Я в ЗиКе тупой, но разве смысл сдельщины в отработанном времени? а не в сделал-получи?
19. ДмитрийF 15.12.06 04:35 Сейчас в теме
Сhe Burashka Написал:
-------------------------------------------------------
> Я в ЗиКе тупой, но разве смысл сдельщины в
> отработанном времени? а не в сделал-получи?
Скажи это нашим расчетчикам, у них видите ли компенсация за проезд идет суммой пропорционально отработанным часам (даже не дням!), хотя берется исходя из стоимости проездного на текущий месяц. Раз это проездной то и стоит он для человека все-равно не зависимо сколько в месяц раз ты съездиешь. Часы проставляют в моей программке вручную
(смотрят в табеле что с цеха приносят), а потом эти часы попадают в бригадные наряды. Вид расчета "Компенсация за проезд" находит часы сотрудника в наряде, учитывает разницу с графиком и соответственно уменьшает если надо сумму.

Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот