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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Попытка
    
       Если Найти( ОформлениеСтроки.ДанныеСтроки.Загружен, Истина ) Тогда
          // раскраска строки
       КонецЕсли;
    
    Исключение
    КонецПопытки

    На первый взгляд возникает вопрос: WTF???7семь
    На десятый взгляд меня посетили сомненья, ведь код а) рабочий, и 2) гениален!
    Смотрите сами.

    Вместо "Если ОформлениеСтроки.ДанныеСтроки.Загружен Тогда"

    гений с большой буквы "Г" делает финт ушами с наподвыподвертом:
    Так как функция "Найти" работает со строками и 1С автоматически преобразует, где возможно, типы, булево значение ОформлениеСтроки.ДанныеСтроки.Загружен приводится к строке, равной "Истина" или "Ложь". Второй аргумент также приводится к строке, равной "Истина". Далее функция "Найти" выполняет поиск подстроки (аргумент №2) в строке (аргумент №1) и возвращает позицию найденной подстроки, в результате имеем 1 если ОформлениеСтроки.ДанныеСтроки.Загружен = Истина, или 0 в противном случае.
    Получается

    Если 1 Тогда....
    или
    Если 0 Тогда....

    где 1 или 0 автоматически приводится 1Ской к типу булево, где Булево(1) = Истина, и Булево(0) = Ложь.

    ИГОГО:
    Условие выполняется, а гений с большой буквы "Г"... пугает меня, если честно, одним своим существованием о_О

    Запостил: whiledoman, 17 Июля 2018

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

    • Слабая типизация -- зло:)

      А зачем он так делает? Он не знает про булевы значения?

      зы: а не может быть так в теории что 1С локализуют на какой-то другой язык и Истина при преобразовании в строку превратится в "True"?
      Ответить
      • Зачем он так делает? Я не знаю. Возможно это слишком хитрая атака на мое психическое здоровье, чтобы я смог постичь все её ньюансы. А может быть автор забавляется. А может это дело рук новичка.
        Ответить
        • Вероятнее всего новичка, который не очень понимает что делает, и нашел код который "вроде работает" и так его и оставил.
          Ответить

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