После добавления курсов валют в отчет он начал долго выполняться.

1. Lllypuk 28.04.22 12:10 Сейчас в теме
Всем привет! Подскажите, есть отчет, добавил в него курсы валют, и он стал очень тугим, долго формируется. Можно как то это исправить? За ранее спасибо!
Прикрепленные файлы:
КП-ЗК-ЗП.erf
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. collider 28.04.22 13:48 Сейчас в теме
(1)
А сам запрос КурсыИКоммерч быстро выполняется?
Если нет, попробуйте проиндексировать курсы валют по полям соединений
ИНДЕКСИРОВАТЬ ПО
	Период,
	Валюта
3. Lllypuk 28.04.22 13:53 Сейчас в теме
(2) КурсыИКоммерч выполняется быстро, но дальше в наборах "ЗаказКлиента" и "ЗаказПоставщика" я использую
ПО (КурсыВалют.Период В
				(ВЫБРАТЬ ПЕРВЫЕ 1
					КурсыВалют.Период
				ИЗ
					РегистрСведений.КурсыВалют КАК КурсыВалют
				ГДЕ
					КурсыВалют.Валюта = ЗаказПоставщикуТовары.Ссылка.Валюта
					И КурсыВалют.Период <= ЗаказПоставщикуТовары.Ссылка.Дата
				УПОРЯДОЧИТЬ ПО
					КурсыВалют.Период УБЫВ))
			И ЗаказПоставщикуТовары.Ссылка.Валюта = КурсыВалют.Валюта
Показать

И от этого начинает тупить. А в КурсыИКоммерч используется этот код что ниже. Но он не корректно отрабатывает в заказе клиента и поставщика, по этому там сделал как в коде выше и все стало корректно.(не верно считал сумму по курсу)
ВЫБРАТЬ
	КурсыВалют.Период КАК Период,
	КурсыВалют.Валюта КАК Валюта,
	КурсыВалют.Курс КАК Курс,
	КурсыВалют.Кратность КАК Кратность
ПОМЕСТИТЬ КурсыВалют
ИЗ
	РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
	КурсыВалют.Период МЕЖДУ &ДатаНачала И &ДатаОкончания


ПО КоммерческоеПредложениеКлиентуТовары.Ссылка.Валюта = КурсыВалют.Валюта
			И (НАЧАЛОПЕРИОДА(КоммерческоеПредложениеКлиентуТовары.Ссылка.Дата, ДЕНЬ) = КурсыВалют.Период)
Показать
4. collider 28.04.22 13:59 Сейчас в теме
(3) А что некорректного получается в заказе? Почему бы не выбрать в ВТ и так же не присоединить?
(НАЧАЛОПЕРИОДА(ЗаказПоставщикуТовары.Ссылка.Дата, ДЕНЬ) = КурсыВалют.Период)
5. Lllypuk 28.04.22 15:20 Сейчас в теме
(4) Вспомнил. Сделал я как раньше так на заказе клиента:
ВЫБРАТЬ
	КурсыВалют.Период КАК Период,
	КурсыВалют.Валюта КАК Валюта,
	КурсыВалют.Курс КАК Курс,
	КурсыВалют.Кратность КАК Кратность
ПОМЕСТИТЬ КурсыВалют
ИЗ
	РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
	КурсыВалют.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЗаказКлиентаТовары.Ссылка КАК ЗаказКлиента,
	ЗаказКлиентаТовары.Ссылка.СуммаДокумента КАК СуммаДокументаЗК,
	ЗаказКлиентаТовары.Номенклатура КАК НоменклатураЗК,
	ЗаказКлиентаТовары.Ссылка.Валюта КАК ВалютаЗК,
	ЗаказКлиентаТовары.Сумма КАК Сумма,
	ЗаказКлиентаТовары.СуммаСНДС КАК СуммаТовараСндсЗК,
	ЗаказКлиентаТовары.Ссылка.ДокументОснование КАК ДокументОснованиеЗК,
	ВЫБОР
		КОГДА ЗаказКлиентаТовары.Ссылка.Валюта.Код = "643"
			ТОГДА ЗаказКлиентаТовары.СуммаСНДС
		КОГДА ЗаказКлиентаТовары.Ссылка.Валюта.Код = "392"
			ТОГДА КурсыВалют.Курс / КурсыВалют.Кратность * ЗаказКлиентаТовары.СуммаСНДС
		ИНАЧЕ ЗаказКлиентаТовары.СуммаСНДС * КурсыВалют.Курс
	КОНЕЦ КАК СуммаРубСНдсЗК
ИЗ
	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
		ЛЕВОЕ СОЕДИНЕНИЕ КурсыВалют КАК КурсыВалют
		ПО ЗаказКлиентаТовары.Ссылка.Валюта = КурсыВалют.Валюта
			И (НАЧАЛОПЕРИОДА(ЗаказКлиентаТовары.Ссылка.Дата, ДЕНЬ) = КурсыВалют.Период)
ГДЕ
	ЗаказКлиентаТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
	И ЗаказКлиентаТовары.Отменено = ЛОЖЬ
Показать

и он не по всем заказам заполняет рассчитанный курс. В некоторых заполняет, в большинстве пустые поля. Он так даже не цепляет какой заказ клиента идет из коммерческого предложения, все поля пустые. Хотя толком ничего не изменилось, просто добавил курсы.
Прикрепленные файлы:
КП-ЗК-ЗП.erf
Оставьте свое сообщение

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