![]() |
|
1с. Что быстрее отработает? Выбрать КОЛИЧЕСТВО, Выборка.Количество Ø (Волшебник 19.05.2016 09:52) |
☑ | ||
---|---|---|---|---|
0
exiter1
19.05.16
✎
01:15
|
Доброго время суток, уважаемые.
Только начинаю разбираться в конфигурировании. Вот возник вопрос: Стоит задача посчитать количество элементов справочника. Что быстрее отработает в данном случае? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Квартиры.Ссылка |ИЗ | Справочник.Квартиры КАК Квартиры |ГДЕ | Квартиры.Дом = &Дом"; Запрос.Параметры.Вставить("Дом", Дом); Выборка = Запрос.Выполнить().Выгрузить(); Возврат Выборка.Количество(); Или же так? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КОЛИЧЕСТВО (Квартиры.Ссылка) КАК Количество |ИЗ | Справочник.Квартиры КАК Квартиры |ГДЕ | Квартиры.Дом = &Дом"; Запрос.Параметры.Вставить("Дом", Дом); Выборка = Запрос.Выполнить().Выгрузить(); Пока Выборка.Следующий() Цикл Количество = Выборка.Количество; КонецЦикла; Возврат Количество; |
|||
1
exiter1
19.05.16
✎
01:49
|
Сам спросил - сам отвечаю)) Выбрать количество работает слегка быстрее вроде, чем выбирать в запросе все элементы, а потом выгружать выборку и считать в ней количество. Разобрался:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КОЛИЧЕСТВО(Квартиры.Ссылка) КАК КоличествоКвартир |ИЗ | Справочник.Квартиры КАК Квартиры |ГДЕ | Квартиры.Дом = &Дом"; Запрос.УстановитьПараметр("Дом", Дом); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Возврат Выборка.КоличествоКвартир; Убираем цикл, так как в поле выборки только одно значение всегда будет. Нет смысла цикл крутить. |
|||
2
Jonny_Khomich
19.05.16
✎
05:25
|
Гениально!
Тянет на научную работу. |
|||
3
AneJIbcuH
19.05.16
✎
05:32
|
Мастер просто!
|
|||
4
CMblCL
19.05.16
✎
06:53
|
Попробуй еще так
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Квартиры.Ссылка |ИЗ | Справочник.Квартиры КАК Квартиры |ГДЕ | Квартиры.Дом = &Дом"; Запрос.Параметры.Вставить("Дом", Дом); Выборка = Запрос.Выполнить().Выбрать; Возврат Выборка.Количество(); |
|||
5
Pistol
19.05.16
✎
06:58
|
(4) Уже было год назад на http://govnokod.ru/18040
|
|||
6
Эрик_Шмид
19.05.16
✎
07:09
|
А в 1с есть же замер производительности
|
|||
7
1CIlya
19.05.16
✎
09:31
|
(6)
обMSScriptControl = Новый COMОбъект("MSScriptControl.ScriptControl"); обMSScriptControl.language = "javascript"; ВТМсекНачала = обMSScriptControl.eval("new Date().getTime()"); мРезЗапроса = обТекущийЗапрос.Выполнить(); ВТМсекКонца = обMSScriptControl.eval("new Date().getTime()"); ВремяВыполненияВТ = (ВТМсекКонца - ВТМсекНачала)/1000; |
|||
8
IlyaSR
19.05.16
✎
09:48
|
(5) +
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |