Бухгалтерия / Говнокод #6157 Ссылка на оригинал

0

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

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

Запостил: drhihi drhihi, (Updated )

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

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

      Очень хуёвая раса. Не рикамендую.
      Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8