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

    −130

    1. 1
    2. 2
    3. 3
    Если Конт.Сумма <> КонтСумма Тогда
        Конт.Сумма = КонтСумма;
    КонецЕсли;

    Встретил в типовой конфигурации одной из небольших фирм-франчайзи. Много думал ...

    Запостил: SSNick, 04 Августа 2010

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

    • Воткнули для отладки, потом убрать забыли.
      Ответить
      • показать все, что скрытоА почему было просто не написать одной строкой: Конт.Сумма = КонтСумма; ?
        Какой тайный смысл несёт в себе проверка условия?
        Ответить
        • скорее всего планировалось, что на месте этого присвоения, будет какая-то операция:
          - сообщить пользователю, что он мудак
          - сообщить начальству, что у кого-то руки из жопы
          - отравить этот отчёт в налоговую

          а сейчас стоит: "у нас чот не сходится?: Тссс... оно всё сходится, то вам показалось..."
          Ответить
          • думаю просто в 1С никогда не слышали о ассертах
            или скорее всего ничего не планировалось
            ведь это 1С, детка.
            Ответить
            • Что такое ассерт, отец?
              Ответить
              • Извиняй, опечтался.
                Имел в виду Ассрет. Ass - это жопа. Короче assret - "жопа срет".
                Ответить
        • Блин, для отладки. Чтобы пославить точку прерывания, которая сработает только по условию.
          Ответить
          • Лично я предпочёл бы не знать из чего там сделан отладчик...
            Ответить
    • Оптимизация :)
      Ответить
    • Это обход бага 1С. Такая конструкция используется для того, чтобы признак модифицированности формы устанавливался только в том случае, когда значение в контексте действительно изменяется (в отличие от случая, когда присваивается то же значение, которое было).

      Это отнюдь не говнокод, это тест на профпригодность :)
      Ответить
      • +1
        Рад что среди 1С програмистов остались люди с головой.
        Ответить
      • Ээээ, а позвольте узнать, что такое "Конт". Предполагаю что контрагент, но какое тогда отношение сумма контрагента имеет к модифицированность формы?
        Ответить
      • С чего вдруг это баг? Присвоение было? Было. Форма модифицирована? А то ж!
        Ответить
      • +1 Абсолютно здоровый код
        Ответить
      • перевожу с 1С на русский: чтобы сеттер с побочным эффектом зря не дергать
        Ответить
        • >перевожу с 1С на русский
          Сурово.

          Ну а сахарок в виде неявных сеттеров чудесным образом превращается в такое.
          Короче говно в языке.
          Ответить
    • Если так не делать, то при каждом закрытии диалога документа пользователю придется подтверждать запись в базу. Нормальный код.
      Ответить

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