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

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    Функция ПолучитьКонтрольКонтрагентовВключен() Экспорт
    	мПривилегированныйРежим=ПривилегированныйРежим();
    	Если НЕ мПривилегированныйРежим Тогда
    		УстановитьПривилегированныйРежим(Истина);
    		мКонтрольКонтрагентовВключен=КОнстанты.КонтрольКонтрагентовВключен.Получить()=Истина;
    		УстановитьПривилегированныйРежим(мПривилегированныйРежим);
    	Иначе
    		мКонтрольКонтрагентовВключен=КОнстанты.КонтрольКонтрагентовВключен.Получить()=Истина;
    	КонецЕсли;	
    	
    	Возврат мКонтрольКонтрагентовВключен;
    КонецФункции

    Получение константы в в привилегированном режиме поражает. Антипаттерн Спагетти (можно обойтись двумя строками). Автор Хан Юрий Валентинович.

    Запостил: ilya2184, 27 Сентября 2012

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

    • 1с? я от одного вида уже ржу нимагу
      Ответить
      • Думаете на 1С нельзя говнокодить?
        Мне надоело уже - каждый раз как читаешь - так как будто в какашку наступил. Должно быть вот так:
        Функция ПолучитьКонтрольКонтрагентовВключен() Экспорт
        УстановитьПривилегированныйРежим(Истина) ;
        Возврат Константы.КонтрольКонтрагентовВключен.По лучить()=Истина;
        КонецФункции
        Ответить
        • мой разум в принципе не может воспринимать команды и переменные на русском языке. ещё и булевые значение. это мазохизм просто, так и до психушки недалеко
          Ответить
          • Много споров об этом. Я привык уже. И так и так могу. Правда по нормальному уже хуже могу :-).
            Ответить
          • Хороший повод задуматься, что ощущают англоязычные разрабы, когда пишут код на <put_your_favorite_language_name_here> .
            Вот я беру рандомную строчку из текущего проекта:
            [выходПоток расписаниеВИдущемЦикле:[НСИдущийЦикл текущийИдущийЦикл] дляРежима:НСПоУмолчаниюИдущийЦиклоРежим];
            И я уже намного меньше понимаю, нежели когда оно было на английском.
            Ответить
            • Им немного проще: у них падежей нет
              Ответить
            • английский язык сам по себе модульный и отличается от русского в этом плане
              Ответить
          • >> мой разум в принципе не может воспринимать
            Может, это проблемы вашего разума? :)
            Ответить
        • А зачем =Истина?
          Функция же не называется типа КонтролироватьКонтрагентов, а "Получить...".
          Даже если тип константы вдруг изменится - логика сохранится, а там где вылетят ошибки - и так нужны будут исправления логики
          Ответить
    • Ответить
    • Я видел полным-полно ублюдокода на одноэске и это меня просто вымораживает. КАК? Зачем? Какого дьявола эти сумасшедшие шибанутые бобры-извращенцы так делают? Хочется ходить по конторам и убивать через одного. Возможно, тогда там всё станет шелковистым.
      Ответить
    • Я когда вижу "контроль контрагентов включен" представляется это:
      www.youtube.com/watch?feature=player_detailpage&v=uBaeSq_R38Q#t=420s
      Ответить

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