1с функции языка запросов. Тормозит запрос.Решение.

Ниже приведен пример использования функций (ТИПЗНАЧЕНИЯ() и ТИП()) в предикате "ГДЕ" в запросе 1С.

// 1. Функции в предикате ГДЕ
// Так делать не надо (время выполнения запроса 19 секунд):
// Для всех записей таблицы вычисляются функции 
// И ТИПЗНАЧЕНИЯ(Значение) = ТИП(Документ.РеализацияТоваровУслуг)
ВЫБРАТЬ
	ХозрасчетныйСубконто.Период,
	ХозрасчетныйСубконто.Регистратор,
	ХозрасчетныйСубконто.МоментВремени,
	ХозрасчетныйСубконто.НомерСтроки,
	ХозрасчетныйСубконто.ВидДвижения,
	ХозрасчетныйСубконто.Вид,
	ХозрасчетныйСубконто.Значение	
ПОМЕСТИТЬ ТТДокументыРеализацияТоваровУслуг
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто
ГДЕ
	ХозрасчетныйСубконто.Регистратор = &Регистратор и
	ХозрасчетныйСубконто.ВидДвижения = &ВидДвижения и
	ХозрасчетныйСубконто.Вид = &Вид
	И 
        ТИПЗНАЧЕНИЯ(Значение) = ТИП(Документ.РеализацияТоваровУслуг)   // <-- Здесь ТОРМОЗ
	
;////////////////////////////////////////////////////////
ВЫБРАТЬ *
из ТТДокументыРеализацияТоваровУслуг	
;

////////////////////////////////////////////////////////
Перенесем отбор с функциями 

ТИПЗНАЧЕНИЯ(Значение) = ТИП(Документ.РеализацияТоваровУслуг)   // <-- Здесь ТОРМОЗ

во временную таблицу  
////////////////////////////////////////////////////////

// 2.
// Уже лучше: время выполнения 0,08 сек
ВЫБРАТЬ
	ХозрасчетныйСубконто.Период,
	ХозрасчетныйСубконто.Регистратор,
	ХозрасчетныйСубконто.МоментВремени,
	ХозрасчетныйСубконто.НомерСтроки,
	ХозрасчетныйСубконто.ВидДвижения,
	ХозрасчетныйСубконто.Вид,
	ХозрасчетныйСубконто.Значение	
ПОМЕСТИТЬ ТТДокументыРеализацияТоваровУслуг
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто
ГДЕ
	ХозрасчетныйСубконто.Регистратор = &Регистратор и
	ХозрасчетныйСубконто.ВидДвижения = &ВидДвижения и
	ХозрасчетныйСубконто.Вид = &Вид
	
;////////////////////////////////////////////////////////
ВЫБРАТЬ *
из ТТДокументыРеализацияТоваровУслуг	
где ТИПЗНАЧЕНИЯ(ТТДокументыРеализацияТоваровУслуг.Значение) = ТИП(Документ.РеализацияТоваровУслуг)


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

1с функции языка запросов. Тормозит запрос.Тормозит.

Во втором случае, сначала выполняется отбор и используются индексы таблиц. Далее, выборка помещается во временную таблицу. Функции вычисляются на второй фазе - во временной таблице.

1с функции языка запросов. Тормозит запрос.Решение.




Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга