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

    −100

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    //ВИНМАНИЕ Деление на 0
    Если СтрокаЗаказа.КоличествоДнейНаличияНаСкладеЗаПериод = 0 Тогда
    	СтрокаЗаказа.КоличествоСделокВДень = 0;
    Иначе
    	СтрокаЗаказа.КоличествоСделокВДень = СтрокаЗаказа.КоличествоСделокЗаПериод
    		/ ?( СтрокаЗаказа.КоличествоДнейНаличияНаСкладеЗаПериод = 0, 1, СтрокаЗаказа.КоличествоДнейНаличияНаСкладеЗаПериод );
    КонецЕсли;

    по условию 1с не догнала, что там 0...

    Запостил: drhihi, 31 Марта 2011

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

    • это фича 1с, видимо в те стародавние времена разработки внутреннего языка, авторы думали что простое равно будет удобнее, чем расово верное == или ===, поэтому в условиях знак равенства это все же оператор сравнения, а не присвоения.
      так что код вполне себе нормальный на этом участке...
      Ответить
      • Истинные слова мудреца
        Ответить
      • Ты так и не понял что одно и то же условие проверяется дважды. Чтобы наверняка.
        Ответить
        • Я думаю, что это больше похоже на "годовые кольца". Т.е. первый кодер "обошёл" ситуацию деления на 0 с помощью ?(), но возвращал СтрокаЗаказа.КоличествоСделокЗаПериод в качестве СтрокаЗаказа.КоличествоСделокВДень. Что впоследствии было признано неверным и уже другой программист по своему решил эту задачу, вернув 0.
          Ответить
      • >расово верное == или ===

        Очень хуёвая раса. Не рикамендую.
        Ответить
    • ВИНМАНИЕ ГОЛАКТЕКО ОПАСНОСТЕ
      Ответить

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