Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Функция возвращающая выходные и праздничные дни

Функция возвращающая выходные и праздничные дни
Я
   Dmitry_333
 
24.05.18 - 12:19
Добрый день.
Хотел было написать такую функцию для своей текущей потребности (принимает дату и, если она официальный нерабочий день, возвращает истину).
Но подумал, что это достаточно очевидная вещь и наверняка уже таковая есть.
Если так и есть, дайте пожалуйста ссылочку.
 
 
   Волшебник
 
1 - 24.05.18 - 12:20
вот лентяй
   Малыш Джон
 
2 - 24.05.18 - 12:21
(0) В конфигурациях как правило присутствует Производственный календарь или его аналоги. Обычно используют его.
   Dmitry_333
 
3 - 24.05.18 - 12:24
(1) ну дык зачем лишний раз велосипед изобретать-))

(2) Спасибо!
   Cool_Profi
 
4 - 24.05.18 - 12:24
Регламентированный производственный календарь - не. никогда не слышал
   SleepyHead
 
5 - 24.05.18 - 12:45
(0) Смотри в общих модулях, наверняка есть подсистемя работы с календарями, и в ней все нужные функции для этого. В ЗУП точно есть.
   Dmitry_333
 
6 - 24.05.18 - 12:56
Все оказалось не так просто. Работаю со специализированной конфой (мониторинг транспорта), и там нет производственного календаря.
Скорее всего в самом деле придется писать функцию.
Не подадите идею, откуда можно этот справочник заполнять?
Ну типа как загружаются курсы валют с сайта рбк.
   Dmitry_333
 
7 - 24.05.18 - 12:57
*этот справочник имел ввиду календарь
   Малыш Джон
 
8 - 24.05.18 - 13:00
(6) Обычно используют регистр сведений, так как, хотя набор праздничных дней стандартен(Новый год, 23 февраля, 8 марта и т.д.), но из года в год происходят переносы праздничных дней, в субботу работаем за понедельник - вот это вот всё.
Делай автозаполнение в начале года стандартными выходными и праздниками, а потом ручками вноси все переносы и изменения в соответствии с законодательством.
   singlych
 
9 - 24.05.18 - 13:04
   Temai
 
10 - 24.05.18 - 13:07
Держи, я сегодня добрый

Функция ДобавитьКДатеРабочиеДни(ПередаваемаяДата = Неопределено, КоличествоРабочихДней) Экспорт
    
    Если ПередаваемаяДата = Неопределено или ПередаваемаяДата = Дата(1,1,1) Тогда
        ПередаваемаяДата = ТекущаяДата();
    КонецЕсли;

    СледующийДень = НачалоДня(ПередаваемаяДата);
    //СледующийДень = ПередаваемаяДата+60*60*24;

    Пропущено = 0;
    
    СЦ=0;
    Для СЦ = 1 По КоличествоРабочихДней Цикл 
        СледующийДень = СледующийДень+60*60*24;
        Если НЕ ЭтоРабочийДень(СледующийДень) Тогда
            Пропущено = Пропущено+1;
        КонецЕсли;
    КонецЦикла;
    
    Если Пропущено<>0 Тогда
        СледующийДень = ДобавитьКДатеРабочиеДни(СледующийДень,Пропущено);
    КонецЕсли;
    
    Возврат СледующийДень;
    
КонецФункции

Функция ЭтоРабочийДень(ПроверяемаяДата = Неопределено) Экспорт
    Если ПроверяемаяДата = Неопределено или ПроверяемаяДата = Дата(1,1,1) Тогда
        ПроверяемаяДата = ТекущаяДата();
    КонецЕсли;
    НаборЗаписей = РегистрыСведений.РегламентированныйПроизводственныйКалендарь.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.ДатаКалендаря.Установить(ПроверяемаяДата);
    НаборЗаписей.Прочитать();
    Если НаборЗаписей.Количество() > 0 Тогда
        ВидДня = НаборЗаписей[0].ВидДня;
        Если ВидДня  = Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий или ВидДня  = Перечисления.ВидыДнейПроизводственногоКалендаря.Предпраздничный Тогда
            Возврат Истина;
        Иначе
            Возврат Ложь;
        КонецЕсли;
    Иначе
        Возврат Истина;
    КонецЕсли;
    
КонецФункции
 
 Рекламное место пустует
   Dmitry_333
 
11 - 24.05.18 - 13:54
Всем бооольшое спасибо!

(10)Temai отдельное гран мерси!-)
   Temai
 
12 - 24.05.18 - 14:20
Пользуйся на здоровье бро
   Волшебник
 
13 - 24.05.18 - 14:22
(10) Неправильная функция. В сабже нужно ровно наоборот.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует