1. 1C / Говнокод #26467

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    ОбластьТело.Параметры.Нерабочий = ?(
    	(Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 1 И (День(СсылкаНаОбъект.ДатаНачалаСобытия) = 1 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 2 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 3 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 4 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 6 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 7 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 8))
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 2 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 23
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 3 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 8
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 1
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 9
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 6 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 12
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 11 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 4
    	,"праздничный", "выходной");

    Проверочка на соответствие даты действия документа праздничному дню.. не ну а чо бы нет то

    Запостил: Stipa, 06 Марта 2020

    Комментарии (20) RSS

    • Какая Сишка , Именно поэтому я за JAVA SCRIPT
      Ответить
    • Уменьшил количество сравнений на единицу:
      ОбластьТело.Параметры.Нерабочий = ?(
      	(Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 1 И (День(СсылкаНаОбъект.ДатаНачалаСобытия) = 1 
      		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 2 
      		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 3 
      		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 4 
      		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 
      		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 6 
      		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 7 
      		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 8))
      	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 2 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 23
      	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 3 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 8
      	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 И (День(СсылкаНаОбъект.ДатаНачалаСобытия) = 1 ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 9)
      	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 6 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 12
      	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 11 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 4
      	,"праздничный", "выходной");
      Ответить
      • СПАСИБА!!! КРАСАВАА
        Ответить
        • Наверное приятно копаться в таком коде, когда список праздничных дней изменяется.
          Ответить
          • там просто снаружи еще иф на год. или на последние две цифры года. какая проблема 2100)))
            Ответить
            • А зачем снаружи иф на год?
              А! Я ПОНЯЛ!

              В разные года могут быть разные праздники (пасха, например(, хотя чаще всего он повторядются

              основные года (с 1970 по 2021) захаодкожены
              Ответить
              • Да почему, Пасха то вообще не красный день календаря, да и выпадает на воскресенье, а тут именно работа в праздничные-выходные дни (в ЗУП)
                Ответить
                • ЗУП 3 такое говно. Самая лютая и отбитая конфигурация. Надо блядь делать все по инструкции - если сделаешь не по инструкции потом будет сутками пердолиться искать в чем ошибка, притом что все клиенты утверждают все делали по инструкции. А по инструкции было написано что надо было включит скрытую галочку которые обычные пользователи и не увидели бы никогда и сам сидишь пердолишься в ебучих модулях которые друг друга вызывают. ЗарплатаКадры > ЗарплатакадрыРасширеный> ЗарплатакадрыИдинахуй. А в конце оказывается что там запрос из состоящий из 20 временых таблиц которые собираются еще из десятка хуючи функций. В конце ты обнаруживаешь что ебучая галачка стоит и ты уже не зная что сделать - тупо перепроводишь документ и о чудо это помогло!
                  Ответить
                  • >ЗУП
                    Постой, это код из фирменной конфигурации 1С? Это не студент на коленке наговнял?
                    Ответить
                    • Да
                      Ответить
                      • А у вас там нету каких-то удобных структур для представления даты?
                        Пишу псевдокод, чтобы показать идею
                        Если Событие.ДатаНачала в [Дата(Февраль,23), Дата(Март,8)]
                        Ответить
                        • Нехуя не понятно. Переведи на lua
                          Ответить
                          • local events = {
                              --Сюда пхать события
                                {startDate = os.time{year=1991, month=12, day=1}, name = 'Просто какое-то событие'},
                                {startDate = os.time{year=1990, month=2, day=23}, name = 'День мужика'},
                                {startDate = os.time{year=1990, month=5, day=1}, name = 'Тоже событие'}
                              }
                              
                            local holydays = {
                              --Сюда праздники
                                {month = 2, day = 23},
                                {month = 3, day = 8},
                              }
                              
                            function isHolyday(event) 
                              local startDate = os.date("*t", event.startDate)
                               for _, prazdnik in pairs(holydays) do
                                  if (startDate.month == prazdnik.month and startDate.day == prazdnik.day) then return true end
                               end
                              return false
                            end
                            
                            for _, event in pairs(events) do
                              if isHolyday(event) then
                                print('Праздник '..event.name)
                              end
                            end
                            Ответить
                            • обрати внимание кстати, что этот тупой пример насковозь императивный, словно его писал школьник в 1999-м году.

                              Отсюда вопрос: что ты думаешь про luafun, например?
                              Ответить
    • Праздник к нам приходит
      Ответить

    Добавить комментарий