СрезПоследних ИЛИ ПолучитьПоследнее ? #743953


#0 by Kain_wrath
Что лучше использовать?
#1 by Heckfy
А не монописуально?
#2 by Shurjk2
Смотря для чего.
#3 by LordCMEPTb
голосовалки не хватает..
#4 by D_E_S_131
Согласен с .
#5 by anatoly
первое возвращает ТЗ - второе структуру.
#6 by Kain_wrath
я знаю что срез последних вернет мне одну строку стоит ли в этом случае использовать получить последнее? Или лучше шаманить с таблицей значений?
#7 by pavig
Только явные запросы. Объектная модель - от лукавого.
#8 by DS
Только прямые запросы. Запросы 1с - от лукавого.
#9 by Ненавижу 1С
добавьте дополнительное поле, заполняйте его через триггер, остально от лукавого:
#10 by vicof
Только Excel, остальное от лукавого
#11 by palpetrovich
курто, чё
#12 by Ненавижу 1С
только счеты, остальное от лукавого
#13 by Heckfy
Да чё там, только вычисления в столбик.
#14 by fisher
Не, ну вот реально. Вообще не вижу смысла в объектной модели для получения данных, если только это не динамическая выборка.
#15 by fisher
Завтра понадобится какие-нить сопутствующие данные выбрать, и что? Придется плодить обращения к БД или переписывать на тот же запрос. Лучше уж сразу, чтобы два раза не вставать.
#16 by pavig
Динамическая выборка - это как?
#17 by DS
А если завтра не понадобится? Зачем два раза вставать? А если сразу писать тот же запрос, а завтра понадобится, это как-то облегчит работу?
#18 by fisher
Объектная выборка справочников и документов получает данные из БД по принципу динамического списка - порционно. Может быть удобно для обработки очень больших объемов. А если не понадобится, то как минимум не надо запоминать лишние методы. Если понадобится - конечно облегчит. Получить доп.реквизит через точку или соединение воткнуть всяко быстрее, чем с нуля этот же запрос рисовать. Да и вообще объектная модель очень редко когда сейчас оптимальна даже на старте. Во всех алгоритмах пытаешься за один-два запроса все нужные данные вытащить, чтобы минимизировать обращения к БД. Объекты тут в пролете.
#19 by DS
Есть ситуации, когда целесообразно одно, есть - когда целесообразно другое. Поэтому, не вижу смысла фантазировать.
#20 by fisher
Какая в опу фантазия? Суровая практика жизни. Придумай мне хоть один случай когда объектный доступ будет целесообразнее. Если крупно повезет в эксплуатационном цикле - то он будет просто не хуже запроса. Поэтому не надо ля-ля.
#21 by Demetres
еретики, только береста!
#22 by Demetres
СрезПоследних победил!!!
#23 by H A D G E H O G s
Спасибо. Иногда и от тебя можно услышать что-то полезное.
#24 by fisher
Сомнительная польза. 10-15%, хотя время выполнение тестов подозрительно мало (для тестов). Фиг его знает, чего на более крупных выборках покажет.
#25 by H A D G E H O G s
А мы проверим. Есть у меня такой РС, идеально подходящий для этого.
#26 by vicof
Каменные таблички, остальное от лукавого
#27 by fisher
Отлично. Пост по итогам будет?
#28 by H A D G E H O G s
угу
#29 by pavig
"Объектная выборка справочников и документов получает данные из БД по принципу динамического списка - порционно. Может быть удобно для обработки очень больших объемов." А выборка из результата запроса разве не так работает? Она тоже не вся получается, а порционально. Вот только результат, скорее всего, хранится на сервере приложений. С объектной моделью, скорее всего, тоже именно так и происходит. И ничем выборка по объектной модели не отличается.
#30 by H A D G E H O G s
Отличается.
#31 by pavig
Чет не верю я тебе.
#32 by H A D G E H O G s
Я - вру?
#33 by pavig
Откуда мне знать? А может и не врешь, а ошибаешься?
#34 by H A D G E H O G s
Я почти не ошибаюсь. Счет идет на единицы за 7 лет.
#35 by fisher
Только того этого. С блокировками возможны вопросы. Надеюсь, у тебя туда конкурентно не фигачат в больших объемах. Зря не веришь.
#36 by pavig
Тем не менее, вероятность есть.
#37 by H A D G E H O G s
РС пишется раз в полгода, читается при каждом проведении.
#38 by H A D G E H O G s
Афтор статьи ниасилил ее до конца. Все не так однозначно :-)
#39 by H A D G E H O G s
Дополнительный индекс там не нужен, он никак не исползоваться не будет. ииии, не факт, что будет быстрее...
#40 by H A D G E H O G s
Вся проблема в строчке И &Дата МЕЖДУ ЦеныНоменклатуры.Период И ЦеныНоменклатуры.ПериодОкончания которая мутируется в строчку именно оператор <= вызывает то, что сначало будет индексный поиск по полю Период и остаточный скан по ПериодОкончания.
#41 by H A D G E H O G s
Если вы делаете именно Срез, без отборов по измерениям - то выгода будет, если у вас немного отбором по измерениям - то выгода сомнительна, она будет из за отсутствия Сортировки, которая возникает там неявно. Если у вас отборы почти по всем измерениям - будет проигрыш, так как эти отборы попадут в остаточный индексный скан.
#42 by H A D G E H O G s
Я, кстати, делаю именно Срез, поэтому мне - годно!
#43 by H A D G E H O G s
Прошу прощения. В типовом Срезе отбор по измерениям (даже без пропусков) также попадает в остаточный индексный скан. Да, метод Ненавижу выигрывает всегда. Просто ему не надо добавлять индекс на ресурс.
#44 by rozer76
итс: Особенности методов менеджера регистра сведений У объекта РегистрСведенийМенеджер имеется набор методов для доступа к данным регистра сведений. Методы СрезПервых и СрезПоследних позволяют найти наиболее ранние и наиболее поздние записи по всем комбинациям измерений. При этом может быть установлен отбор записей. Методы возвращают таблицу значений, содержащую строки соответствующие найденным записям. По своему действию эти методы аналогичны виртуальным таблицам СрезПервых и СрезПоследних. Их единственное преимущество перед использованием запроса - краткость записи. Методы Получить, ПолучитьПервое и ПолучитьПоследнее отличаются тем, что предназначены для получения только значений ресурсов. Методы возвращают структуру, содержащую элементы, соответствующие ресурсам регистра. Основным отличием описанных методов является то, что методы Получить, ПолучитьПервое и ПолучитьПоследнее выдают значения одной записи, а методы СрезПервых и СрезПоследних позволяют получить несколько записей. В методах Получить, ПолучитьПервое и ПолучитьПоследнее структура возвращается в любом случае. То есть если в регистре нет записей с указанными значениями отбора, то будет возвращена структура, содержащая значения ресурсов по умолчанию. Таким образом, методы Получить, ПолучитьПервое и ПолучитьПоследнее целесообразно использовать в тех случаях, когда, с точки зрения прикладной задачи, нужны данные одной записи, и значение по умолчанию вполне может быть использовано как не установленное значение для этой комбинации измерений, то есть соответствовать отсутствию записи. Например, если хранятся цены товаров, то получение цены 0 (ноль) вполне может отвечать логике использования не установленной цены. В этом случае удобно использовать эти методы и не анализировать в модуле имеется ли запись в регистре или нет. Однако если наличие или отсутствие записей с указанной комбинацией измерений существенно, то нужно использовать запрос или методы СрезПервых и СрезПоследних для периодических регистров сведений. С точки зрения производительности, методы СрезПервых и СрезПоследних оптимизированы именно для получения данных одной записи. Разумеется, в конкретных ситуациях (в зависимости от структуры измерений, варианта хранения базы данных и т.д.) соотношение может быть различным.
#45 by Serginio1
А ты план запроса смотрел? Помоему и в том и в другом случае будет поиск по Периоду на меньше или равно
#46 by GROOVY
+100
#47 by H A D G E H O G s
Да, именно я его и смотрел
#48 by H A D G E H O G s
И как фраза в противоречит предыдущим моим фразам?
#49 by GANR
Прямой SQL-запрос - не потратится время на преобразование 1С-запроса к запросу MS SQL ))).
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С