Имя: Пароль:
1C
1С v8
Банковская дата
0 Mikhail Volkov
 
17.04.18
11:29
Добрый день. Возникла задача определять является ли заданная дата банковским днем. Функцией ДеньНедели(<Дата>) можно исключить выходные: субботы и воскресенья. А праздничные дни (и возможные переносы) как учесть: в Альфа-Авто заполнить РС "График работ календарный", и вручную снять галочки "Банковский" с праздничных дней, или есть более простой способ без корректировок вручную?
1 Ненавижу 1С
 
гуру
17.04.18
11:31
обычно в типовых есть регламентированный производственный календарь. Но конечно что-то настроить надо вручную
2 Mikhail Volkov
 
17.04.18
14:05
(1) Он в типовых заполняется с учетом праздников? А то Альфа-Авто только субботы и воскресенья не "Банковский". Не учитываются праздники и переносы!?
3 1Сергей
 
17.04.18
14:11
(2) праздники надо рУками вбивать
4 Mikhail Volkov
 
17.04.18
14:14
(3) И в типовых?
5 Gantosha
 
17.04.18
14:15
а банковский не равен праздничному.
6 Gantosha
 
17.04.18
14:16
точнее не всегда совпадает если праздничные исключать.
7 Aleksey
 
17.04.18
14:17
посмотреть как сделано в ЗУПе не предлагать?
8 Mikhail Volkov
 
17.04.18
14:19
Тогда свою написал до 2020. Список праздников можно уменьшить, и года в год одни и те же... А вот Переносы по разному.

// Возвращает "вчерашнюю" банковскую дату с учетом праздников и переносов до 2020
//
Функция ВчерашняяБанковскаяДата(Дата = Неопределено) Экспорт
    Праздники = Новый СписокЗначений;
    Праздники.Добавить(Дата("20180501"));
    Праздники.Добавить(Дата("20180509"));
    Праздники.Добавить(Дата("20180611"));
    Праздники.Добавить(Дата("20180612"));
    Праздники.Добавить(Дата("20181105"));
    Праздники.Добавить(Дата("20181231"));
    Праздники.Добавить(Дата("20190101"));
    Праздники.Добавить(Дата("20190102"));
    Праздники.Добавить(Дата("20190103"));
    Праздники.Добавить(Дата("20190104"));
    Праздники.Добавить(Дата("20190107"));
    Праздники.Добавить(Дата("20190108"));
    Праздники.Добавить(Дата("20190225"));
    Праздники.Добавить(Дата("20190308"));
    Праздники.Добавить(Дата("20190501"));
    Праздники.Добавить(Дата("20190509"));
    Праздники.Добавить(Дата("20190612"));
    Праздники.Добавить(Дата("20191104"));
    
    Переносы  = Новый СписокЗначений;
    Переносы.Добавить(Дата("20180609"));
    Переносы.Добавить(Дата("20181229"));
    
    Дата = ?(Дата = Неопределено, ТекущаяДата(), Дата);
    ВчерашняяДата = НачалоДня(НачалоДня(Дата) - 1);
~Еще:    
    Если Переносы.НайтиПоЗначению(ВчерашняяДата) <> Неопределено Тогда
        Возврат ВчерашняяДата;
    КонецЕсли;
    
    Если ДеньНедели(ВчерашняяДата) = 6 Тогда        // Суббота
        ВчерашняяДата = ВчерашняяДата - 24*60*60;
    ИначеЕсли ДеньНедели(ВчерашняяДата) = 7 Тогда    // Воскресенье
        ВчерашняяДата = ВчерашняяДата - 24*60*60;
        Если Переносы.НайтиПоЗначению(ВчерашняяДата) <> Неопределено Тогда
            Возврат ВчерашняяДата;
        КонецЕсли;
        ВчерашняяДата = ВчерашняяДата - 24*60*60;
    КонецЕсли;
    Если Праздники.НайтиПоЗначению(ВчерашняяДата) <> Неопределено Тогда
        ВчерашняяДата = ВчерашняяДата - 24*60*60;
        Перейти ~Еще;
    КонецЕсли;
    Возврат ВчерашняяДата;
КонецФункции // ВчерашняяБанковскаяДата()
9 Gantosha
 
17.04.18
14:21
правильно ..наступит 2020 год, про тебя вспомнят когда работать перестанет и может даже денежку заплатят.
10 1Сергей
 
17.04.18
14:25
(9) они и раньше вспомнят, когда какой-нибудь праздник перенесут
11 Gantosha
 
17.04.18
14:27
вообще, это все обычно только в штрафах используется .. вряд ли кто поймет , что там в десятых долях произошло.
А вот при кредитовании конечно так писать точно нельзя.
12 Вафель
 
17.04.18
14:31
в типовых календарь заполняется сам, но типовую нужно постоянно обновлять
13 Mikhail Volkov
 
17.04.18
15:17
(12) В какой типовой, на сколько лет? А то по Альфа-Авто 1С-Рарус пишет: "только корректировка вручную" https://rarus.ru/forum/messages/forum7/topic10086/message76251/#message76251
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший