#0
by buhalter
Наткнулся в одной самописной конфигурации на конструкцию Для Каждого Стр из Запрос.Выполнить.Выгрузить Цикл ... Как по-Вашему будет работать данный фрагмент? ЗЫ. Сначала долго смеялся, потом проверил код на работоспособность. Был удивлен.
#11
by PiterPrg
Почему менее читабельно? Я сам так и пишу.... Так что-ли читабельно? Особенно если между Присвоением МояСуперТаблица и циклом 50 строк текста. Хотя... это дело вкуса ИМХО
#13
by MaxisUssr
Я сам так делаю часто. Что изменится? Еще делаю так: Для Каждого СтрокаНезакрытая из Запрос.Выполнить.Выгрузить.НайтиСтроки(новый Структура("НезакрытаяСумма", Истина)) Цикл ... КонецЦикла;
#17
by buhalter
Показалось бредом в этом случае: 1. Запрос.Выполнить.Выгрузить - в цикле!!! Т.е. с каждой итерацией выполняем запрос и выгружаем в ТЗ. 2. Итерация строк таблицы. Было подозрение, что если количество строк не нулевое, то всегда будем получать только первую строку. Если второй пункт не оправдал моих ожиданий, то замеры производительности по вариантам а) Для каждого Стр Из Запрос.Выполнить.Выгрузить Цикл... б) Таблица = Запрос.Выполнить.Выгрузить; Для каждого Стр Из Таблица Цикл... оказались разными. В пользу варианта б)
#20
by buhalter
Вопрос не в этом. С Выбрать работать в ряде случаев правильнее и оптимальнее. Я в курсе.
#21
by buhalter
Результаты запроса одинаковые. Результат замера производительности - в пользу варианта с Для каждого Стр из Таблица Цикл... С небольшим, правда, отрывом, на 5%. Тестировалось на простом запросе без соединений. Возможно,на более сложных запросах результат сравнения замеров производительности может отличаться
#22
by buhalter
Когда разбирал код, это показалось мне смешным, потому как . Вот и поместил в секцию Юмор...
#23
by hhhh
так ты в каком порядке их запускал? Ведь понятно, что первый запрос всегда медленнее чем вторй, потому что второй использует кеш.
#25
by Галахад
Чо-та у меня разница от одной тысячной до нескоьких десятитысячных секуды получилась. На справонике с 50К позиций. Функция СформироватьЗапрос
#28
by buhalter
не существенно. В том месте, где встретил этот кусок кода, протестить не могу(. Тестил на произвольном запросе типовой УНФ-ки. Что-то вроде Выбрать Банки.Ссылка Из Справочник.Банки как Банки 5% в этом случае - доли секунд. Прогонов теста делал 10. Суммировал общее время выполнения. Сравнивал с аналогичным вариантом . В сумме вышла дельта около десятой доли секунды, уже не помню. Если кому интересно, потестируйте на сложных запросах.
Тэги: Юмор
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- В консоли запросов нельзя выполнить простой запрос
- УПП. Будет-ли "оплачена" Ведомость (док.Зарплата к выдаче) общим РКО? или для каждого
- 8.2 ругается на Для Каждого стр из ТабличноеПоле1 цикл
- (Запрос) Как выгрузить данные из запроса в массив
- КД: Добавление префикса для каждого документа
- Выборка = Запрос.Выполнить().Выбрать(). Есть ли возможность выгрузить в ТЗ?
- Аналог Запрос.Выполнить().Выгрузить().ВыбратьСтроку(); на УФ
В этой группе 1С
- Коды номенклатуры не уникальны
- "Корректировка поступления" и движения по регистру "Учет затрат"
- УТ 11: как работает обособленный учёт по менеджерам и подразделениям?
- СКД: условное оформление в зависимости от значения вычисляемого поля
- Не удаётся программно измент владельца элемента справочника
- Веб-сервер на Win Server 2012 на IIS
- УТ11. Новые команды печати не попадают в список документов.
- Программно добавить параметр в динамический список
- Как дополнить таблицу запроса датами определенного периода?
- Найти первую неоплаченную накладную одним запросом УТ 10.3
- УНФ цены контрагента
- Одинаковая номенклатура в счет-фактуре
- Как запустить отладку внешней обработки в 1с 8.1 ?
- MS SQL: русские символы в именах столбцов
- v7: ЗиК - есть там сведения о заработке у предыдущих работодателей?
- форматирование строки XML
- Тихая установка 1с8.2
- Разные даты остатков в СКД
- Удаление группировки строк в табличном документе
- Работа с библиотекой NameDecl.dll