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

    −122

    1. 1
    2. 2
    3. 3
    4. 4
    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() > 0 Цикл
           // что-то делаем
    КонецЦикла;

    Запостил: Argonavt, 29 Ноября 2012

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

    • На правах очевидного комментария.
      Насколько я понимаю, это восьмёрка. В двух топорах не было нативного булевого типа и (большинство) методы возвращали 1 или 0. По непонятной мне причине, вместо написания логичного сравнения, некоторые предпочитали погорячее неравенство. В духе,
      Если ЧтоТо() <> 0 Тогда
      // Вместо логичного
      Если ЧтоТо() = 1 Тогда

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


        И да, я зарегестрировался только ради этого.
        Ответить
        • 1С в таких случаях неявно приводит все, что не 0 в истину.
          Ответить

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