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

    −133

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    Процедура БазоваяПриИзменении(Элемент)
    		Если ЭтаФорма.ЕдОтчетов = Истина Тогда
    			ЭтаФорма.ВДаллах = Ложь; 
    			ЭтаФорма.ВРублях = Ложь; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    		Иначе
    			ЭтаФорма.ВДаллах = Ложь; 
    			ЭтаФорма.ВРублях = Истина; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    		КонецЕсли;	
    КонецПроцедуры
    	
    Процедура ВДаллахПриИзменении(Элемент)
    		Если ЭтаФорма.ВДаллах = Истина Тогда
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Ложь; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    		Иначе
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Истина; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    		КонецЕсли;	
    КонецПроцедуры
    	
    Процедура Ед_храненияОстПриИзменении(Элемент)
    		Если ЭтаФорма.Ед_храненияОст = Истина Тогда
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Ложь; 
    			ЭтаФорма.ВДаллах = Ложь; 
    		Иначе
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Истина; 
    			ЭтаФорма.ВДаллах = Ложь; 
    		КонецЕсли;	
    КонецПроцедуры
    	
    Процедура ВРубляхПриИзменении(Элемент)
    		Если ЭтаФорма.ВРублях = Истина Тогда
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.Ед_храненияОст = Ложь; 
    			ЭтаФорма.ВДаллах = Ложь; 
    		Иначе
    			ЭтаФорма.ЕдОтчетов = Ложь; 
    			ЭтаФорма.ВРублях = Истина; 
    			ЭтаФорма.ВДаллах = Ложь; 
    		КонецЕсли;
    КонецПроцедуры

    Замечательная реализация радиобаттонов через флажки

    Запостил: ingenuus, 16 Декабря 2010

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

    • > Если ЭтаФорма.ВРублях = Истина Тогда

      Головой об батарею!!!
      Почему в учебниках об этом не пишут сразу же при рассказе о лигоческом типе? Пора бы уже в компиляторы предупреждение ставить.
      Ответить
      • Да, сказал бы спасибо, если бы компиляторы прямо заявляли, что они думают об авторе таких конструкций.
        Ответить
        • в данном случае даже не компилятор
          и учебники под сабж рассчитаны на интеллект собаки
          так что здесь поможет только живительная эвтаназия
          Ответить
      • А достаточно написать
        Если ВРублях Тогда
        (это если брать только приведенную строчку безотносительно к остальному)
        это ппц, простите.
        Ответить
    • ХизбаллахПриИзменении?
      Ответить
      • до меня по утру дошло
        man, you got a dollah?
        i'll give you crowbar for dollah!
        код писал не индус, а ниггер
        Ответить
    • ЭтаФорма - это типа аналог this ?)
      Ответить
      • Аналог this - ЭтотОбъект.

        ЭтаФорма - ссылка на гуи форму объекта.
        Ответить
      • ЭтаФорма, ЭтотКомпьютер, ЭтотПрограммист, ЭтаФирма, ЭтотГород, и конечно, ЭтаСтрана..
        Ответить
    • Копец, прям какой то детектор лжи.
      Ответить
    • Если ЭтаФорма.ЕдОтчетов = Истина Тогда
        ЭтаФорма.ВДаллах = Ложь; 
      ...
      Иначе
        ЭтаФорма.ВДаллах = Ложь; 
      ...
      КонецЕсли;
      Гениально же.
      Ответить
      • Судя по коду, ЭтаФорма.ВДаллах — всегда ложь
        Ответить
        • Вот нихуя! ВДаллах привязан к элементу формы и изменяется системой еще до вызова процедуры. Присваивать то же значение повторно уже не нужно, так что тут всё верно.

          В целом, код волне рабочий.

          ...И это, кстати, самое страшное.
          Ответить
    • Если страна = ЭтаСтрана и поросенок = "Петр" и рубашка.цвет = Цвета.Белый тогда
       //в гугл -- поросенок петр
      КонецЕсли
      Ответить
    • Существует ли в 1с конструкция вида "ЕСЛИ БЫ ... ДА КАБЫ..."?
      Ответить
    • А бывает ли вообще не-говнокод на 1С?
      Ответить
      • Может и бывает. Например:
        Процедура ПриНажатии()    
        	ЗапуститьПриложение("ne-govnokod.exe");
        КонецПроцедуры
        Ответить
        • они там вроде среду active scripting могут создавать и там уже на vbscript каля-маля :-)
          Ответить
          • То-то и дело, что каля-маля... :)
            Ответить
            • а по-другому просто не могут, иначе бы давно уже перешли на VB-с-фигурными-скобками
              Ответить
      • Бывает неговнокод.
        Проблема данного примера, связана с тем, что работа с радиобатонами в 7.7. была реализована несколько иначе чем в существоваших на тот момент, других средствах разработки. Большинство предпочитало не разбираться, а забивать и использовать чекбоксы. Соответственно при переходе на 8.Х все потащили с собой эту и многие другие замечательные привычки.
        P.S. есть еще известный штамп, результат функции всегда возвращает значение примитивного типа(это правда скорее из TP пошло)
        Ответить
        • Возможно:
          "разработчики 1С предпочли не разбираться, что-такое радиобаттон, и в результате... работа с радиобатонами в 7.7. была реализована..." далее по тексту
          Ответить
    • http://s59.radikal.ru/i163/0812/8a/4ef94150b1c0.jpg
      Ответить
    • новый тред начинаем
      Ответить
    • А теперь давайте добавим на форму ещё один "радиобаттон"........
      Ответить

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