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

    −124

    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
    Результат = Запрос.Выполнить();
    Если Результат.Выгрузить().Количество() <> 0 Тогда
    	Выборка = Результат.Выбрать();
    	Пока Выборка.Следующий() Цикл
    		... тут некий код... и внутри контрольный в голову...
    		Если ТЗ.Количество() <> 0 Тогда
    			Для Каждого Строка Из ТЗ Цикл
    				...
    			КонецЦикла;	
    		КонецЕсли;	
    		...
    	КонецЦикла;
    КонецЕсли;

    Видимо это такая "оптимизация", другого объяснения подобным проверкам (это не единичный случай) не нашел.

    Запостил: Twilight_Sun, 27 Октября 2014

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

    • Если человек вот так вот проверяет количество строк в результате запроса

      Результат.Выгрузить().Количество() <> 0

      то о какой оптимизации может идти речь. Однозначно новичек писал.
      Ответить
    • показать все, что скрыто-
      Ответить
    • Он просто сильно боится ошибок.
      Ответить
    • а смысл, если нет альтернативных веток?
      Ответить
    • -
      Ответить
    • -
      Ответить
    • "А что будет если проитерироваться по пустому массиву", -- подумал как-то программист 1C и осёкся: "мы же этого не проходили!"

      Три дня спрашивал по всем форумам программист, но ответа так и не нашел.

      И вот таким вот образом появлис я этот код.
      Ответить
    • Ребята, неплохие примеры оптимизации, нужно всем взять на заметку:

      Если Результат.Выгрузить().Количество() <> 0 Тогда - выгружаем стомильонов строк в ТЗ, чтобы тупо проверить их количество, выгрузку потом нигде не используем.

      И обязательно проверяйте количество элементов в коллекции оператором <> чем Нуралиев не шутит, вдруг там -1 окажется?
      Ответить

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