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

    −99

    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
    Функция ПолучитьПолныйСписокКонтрагентовОтбора(текКонтрагентыОтбора) // релиз 3.0
    	    Запрос = Новый Запрос;
    	    Запрос.Текст = 
    	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
    	|	Контрагент.Ссылка КАК Ссылка1
    	|ИЗ
    	|	Справочник.Контрагенты КАК Контрагент
    	|ГДЕ
    	|	Контрагент.ЭтоГруппа = ЛОЖЬ И (";                                                                               ы=0;
    	Для каждого ЭлСпОтбКг из текКонтрагентыОтбора Цикл текКг=ЭлСпОтбКг.Значение;
    		Если ТипЗнч(текКг)=Тип("СправочникСсылка.Контрагенты") И НЕ текКг=Справочники.Контрагенты.ПустаяСсылка() Тогда  ы=ы+1;
    			Если текКг.ЭтоГруппа Тогда Запрос.Текст = Запрос.Текст +" 
    	|	"+?(ы=1,"","ИЛИ ")+"Контрагент.Ссылка В ИЕРАРХИИ(&тКг"+Строка(ы)+")";
                Иначе                      Запрос.Текст = Запрос.Текст +"
    	|	"+?(ы=1,"","ИЛИ ")+"Контрагент.Ссылка = &тКг"+Строка(ы);
    	        КонецЕсли;	               
    	    Запрос.УстановитьПараметр("тКг"+Строка(ы),текКг);
    	    КонецЕсли;	
    	КонецЦикла;	Запрос.Текст = Запрос.Текст +"
        |)";
     	        РезСп=Новый СписокЗначений;
    	                                текТЗрег=Запрос.Выполнить().Выгрузить();
    	        РезСп.ЗагрузитьЗначения(текТЗрег.ВыгрузитьКолонку("Ссылка1"));
    	Возврат РезСп;		 
    КонецФункции

    Запостил: HomoAlbus, 11 Ноября 2015

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

    • Да... ы-количество параметров запроса - это сильно. Давно такого не видел. Не говоря уже про Строка(ы).
      Ответить
      • А у меня такого добра навалом) Глаза и мозг реально болят после целого дня чтения и понимания этого...
        Ответить
    • Если не студент писал, то руки за такое отрубать надо, однозначно.
      Ответить
      • Да даже если не студент, ну пишешь ты какую-то странную, неведомую хрень, оставь комментарий почему именно так, назови переменные и параметры по-человечески. Нет же: "тКг", "ы", "ЭлСпОтбКг", "РезСп". Такое ощущение, что у него буквы на клавиатуре заканчивались.
        Ответить
        • Такое пишут люди, у которых мало опыта в разгребании чужого кода - т.е., либо студенты, либо те, кто по каким-то причинам вынужден делать дописки. Будущее этого кода их мало интересует - лишь бы сейчас заработало, и от него отстали. Вот это "ы" выражает позицию примерно такую: "хрень какая-то эта ваша адинэс, работает через ж, сделаю так, всё равно никто читать не будет".
          Ответить

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