Динамический список в обработке Подбор товаров в документ продажи

1. un2qum 6 12.01.22 08:33 Сейчас в теме
Здравствуйте, у меня проблема с поиском номенклатуры. товарных позиций порядка 13к, характеристик нет, есть виды.
УТ 11.4.6.207 платформа 8.3.15.177.
При отключенной опции (искать только по склады) иногда как будто случается сбой и последующие поиски идут с очень долгой задержкой.
Запрос получается огромный
Запрос

выполняется безумно долго (более 5 минут).
При такой настройке журнала почему то в лог не попадает
журнал

Прошу помощи, подскажите как действовать дальше, может кто может за деньги помочь
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. comptr 35 12.01.22 10:22 Сейчас в теме
А почему в журнал с настройкой "только исключения" должен попадать долгий запрос?
Для долгих запросов нужна другая настройка, например такая:
<event>
    <eq property="Name" value="DBMSSQL"/>
    <ge property="Duration" value="1000000"/>
</event>

В 8.3 Duration считается в "одна миллионная секунды", так что выше указана 1 секунда.
5. un2qum 6 12.01.22 13:49 Сейчас в теме
<log location="C:\log\query1с" history="8">
<event>
<eq property="Name" value="SDBL"/>
<ge property="Durationus" value="60000000"/>
</event>
<event>
<eq property="Name" value="DBMSSQL"/>
<ge property="Durationus" value="60000000"/>
</event>
под хайдом есть
3. user1203706 14 12.01.22 10:42 Сейчас в теме
А какой говоришь справочник у вас в расширение запихнут ?
6. un2qum 6 12.01.22 13:49 Сейчас в теме
4. user1203706 14 12.01.22 10:45 Сейчас в теме
Ну и неявный cross join в тексте запроса, ясен пень будут тормоза.
1с-ный то запрос покажите этого чуда из (0) ?
7. un2qum 6 12.01.22 13:51 Сейчас в теме
(4) стандартная форма подбора товаров в документ продажи типовая ут, я пока не могу сообразить где запрос динамического списка меняется, но изначально он такой
ВЫБРАТЬ
	СправочникНоменклатура.Ссылка КАК Ссылка,
	СправочникНоменклатура.Артикул КАК Артикул,
	СправочникНоменклатура.Код КАК Код,
	СправочникНоменклатура.Наименование КАК Наименование,
	СправочникНоменклатура.Ссылка КАК Номенклатура,
	СправочникНоменклатура.Ссылка КАК ЭлементСписка,
	СправочникНоменклатура.ИспользованиеХарактеристик КАК ИспользованиеХарактеристик,
	СправочникНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
	СправочникНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа,
	СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
	ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены,
	НЕОПРЕДЕЛЕНО КАК ВладелецХарактеристик,
	0 КАК Цена,
	0 КАК ИндексКартинки,
	0 КАК ВНаличииОстаток,
	//\\
	0 КАК ВНаличииОстатокПолучателя,
	//\\
	0 КАК ВНаличииВБазовыхЕдиницах,
	0 КАК Доступно,
	СправочникНоменклатура.Родитель КАК Родитель,
	ЛОЖЬ КАК ХарактеристикиИспользуются,
	ЛОЖЬ КАК ЭтоТовар,
	ЛОЖЬ КАК ЭтоУслуга,
	ЛОЖЬ КАК ПометкаУдаления,
	СправочникНоменклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
	СправочникНоменклатура.Качество КАК Качество,
	ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка) КАК ВариантРасчетаЦеныНабора,
	ЛОЖЬ КАК СодержитТовары,
	ЛОЖЬ КАК СодержитУслуги
ИЗ
	Справочник.Номенклатура КАК СправочникНоменклатура
Показать
8. user1203706 14 12.01.22 13:55 Сейчас в теме
(7) в (0) явно не этот запрос выполняется
9. un2qum 6 12.01.22 13:56 Сейчас в теме
(8) да я понимаю, но точку останова на стандартное поле поиска не поставить, ща глобальным поиском ищю
10. un2qum 6 12.01.22 14:09 Сейчас в теме
ВЫБРАТЬ
	
	СправочникНоменклатура.Ссылка КАК Ссылка,
	СправочникНоменклатура.Артикул КАК Артикул,
	СправочникНоменклатура.Код КАК Код,
	СправочникНоменклатура.Наименование КАК Наименование,
	СправочникНоменклатура.ПометкаУдаления КАК ПометкаУдаления,
	СправочникНоменклатура.Родитель КАК Родитель,
	СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа,
	СправочникНоменклатура.Ссылка КАК Номенклатура,
	СправочникНоменклатура.Ссылка КАК ЭлементСписка,
	СправочникНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
	СправочникНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	
	ВЫБОР КОГДА СправочникНоменклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор) ТОГДА
		ЕСТЬNULL(ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка))
	ИНАЧЕ
		ЗНАЧЕНИЕ(Перечисление.ВариантыРасчетаЦенНаборов.ПустаяСсылка)
	КОНЕЦ КАК ВариантРасчетаЦеныНабора,
	Ложь КАК СодержитТовары,
	Ложь КАК СодержитУслуги,
	
	СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	СправочникНоменклатура.ЦеноваяГруппа КАК ЦеноваяГруппа,
	СправочникНоменклатура.Качество КАК Качество,
	СправочникНоменклатура.ИспользованиеХарактеристик КАК ИспользованиеХарактеристик,
	ВЫБОР
		КОГДА СправочникНоменклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
			ТОГДА ИСТИНА
		КОГДА СправочникНоменклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор)) И ЕСТЬNULL(Ложь, ЛОЖЬ) И Не ЕСТЬNULL(Ложь, ЛОЖЬ)
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК ЭтоТовар,
	ВЫБОР
		КОГДА СправочникНоменклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
			ТОГДА ИСТИНА
		КОГДА СправочникНоменклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Набор)) И ЕСТЬNULL(Ложь, ЛОЖЬ) И НЕ ЕСТЬNULL(Ложь, ЛОЖЬ)
			ТОГДА ИСТИНА
		ИНАЧЕ ЛОЖЬ
	КОНЕЦ КАК ЭтоУслуга,
	ВЫБОР
		КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры)
			ТОГДА СправочникНоменклатура.ВидНоменклатуры
		КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры)
			ТОГДА СправочникНоменклатура.Ссылка
		КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры)
			ТОГДА СправочникНоменклатура.ВладелецХарактеристик
		ИНАЧЕ Неопределено
	КОНЕЦ КАК ВладелецХарактеристик,
	ВЫБОР
		КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
			ТОГДА ЛОЖЬ
		ИНАЧЕ ИСТИНА
	КОНЕЦ КАК ХарактеристикиИспользуются,
	ВЫБОР
		КОГДА СправочникНоменклатура.ЭтоГруппа
			ТОГДА ВЫБОР
					КОГДА СправочникНоменклатура.ПометкаУдаления
						ТОГДА 13
					ИНАЧЕ 12
				КОНЕЦ
		ИНАЧЕ ВЫБОР
				КОГДА СправочникНоменклатура.ЕстьТоварыДругогоКачества
					ТОГДА 4 + ВЫБОР
							КОГДА СправочникНоменклатура.ПометкаУдаления
								ТОГДА 1
							ИНАЧЕ 0
						КОНЕЦ + ВЫБОР
							КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
								ТОГДА 0
							ИНАЧЕ 2
						КОНЕЦ
				ИНАЧЕ -1 + ВЫБОР
						КОГДА СправочникНоменклатура.ПометкаУдаления
							ТОГДА 1
						ИНАЧЕ 0
					КОНЕЦ + ВЫБОР
						КОГДА СправочникНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
							ТОГДА 1
						ИНАЧЕ 3
					КОНЕЦ
			КОНЕЦ
	КОНЕЦ КАК ИндексКартинки,

	ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
	0 КАК Цена,
	ЗНАЧЕНИЕ(Справочник.ВидыЦен.ПустаяСсылка) КАК ВидЦены,
	ВЫРАЗИТЬ(ЕСТЬNULL(СвободныеОстатки.ВНаличииОстаток, 0) КАК ЧИСЛО(15, 3)) КАК ВНаличииОстаток,
	ЕСТЬNULL(СвободныеОстатки.ВНаличииОстаток, 0) КАК ВНаличииВБазовыхЕдиницах,
	ВЫРАЗИТЬ((ЕСТЬNULL(СвободныеОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстатки.ВРезервеПодЗаказОстаток, 0) -
ЕСТЬNULL(СвободныеОстатки.ВРезервеСоСкладаОстаток, 0) + ЕСТЬNULL(ОстаткиИзЗаказов.Количество, 0)) КАК ЧИСЛО(15, 3)) КАК Доступно
ИЗ
	
	Справочник.Номенклатура КАК СправочникНоменклатура
	
	ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(
			, 
			Склад = &Склад
				И Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
			{(Номенклатура).* КАК Номенклатура}
		) КАК СвободныеОстатки
	ПО (СвободныеОстатки.Склад = &Склад)
		И (СвободныеОстатки.Номенклатура = СправочникНоменклатура.Ссылка)
		И (СвободныеОстатки.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))

	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДоступныеОстаткиПланируемыхПоступлений КАК ОстаткиИзЗаказов
		ПО (ОстаткиИзЗаказов.Склад = &Склад)
		И (ОстаткиИзЗаказов.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
		И (ОстаткиИзЗаказов.ДатаДоступности = ДАТАВРЕМЯ(1, 1, 1))
		И (ОстаткиИзЗаказов.Номенклатура = СправочникНоменклатура.Ссылка)
		И (ОстаткиИзЗаказов.Количество < 0)

ГДЕ
	
	НЕ СправочникНоменклатура.ЭтоГруппа

	
{ГДЕ
	(1 В
		(ВЫБРАТЬ ПЕРВЫЕ 1
			1
		ИЗ
			РегистрСведений.НоменклатураСегмента КАК Сегменты
		ГДЕ
			Сегменты.Номенклатура = СправочникНоменклатура.Ссылка
			И Сегменты.Сегмент = &СегментНоменклатуры))}

Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот