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

    −35

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

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

    Запостил: UncleFedor, 06 Декабря 2016

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

    • Предопределил судьбу твоего ануса, проверь.
      Ответить
    • > ИмяПредопределенного
      Который должен будет спасти мир?
      Ответить
      • ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ, БЛЯ!
        Ответить
    • Когда ИБ на компе клиента, это точно ГОВНОКОД, но когда во ФРЕШЕ (то бишь в 1СОВСКИХ ОБЛАКАХ), то код более чем уместен
      Ответить

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