Помогите оптимизировать запрос

1. Airat116 30.04.21 11:30 Сейчас в теме
Здравствуйте, помогите оптимизировать запрос)
Я пытаюсь получить две табличной части, подскажите пожалуйста что ещё нужно чтоб было оптимально?
Возможно мне шапку документа отдельно нужно получать? а строки табл части отдельно

ВЫБРАТЬ
	РеализацияТоваровУслугТовары.Ссылка,
	"Товар" КАК ВидНоменклатуры,
	РеализацияТоваровУслугТовары.Ссылка.Проведен,
	РеализацияТоваровУслугТовары.Ссылка.Контрагент,
	РеализацияТоваровУслугТовары.Номенклатура,
	РеализацияТоваровУслугТовары.Субконто,
	РеализацияТоваровУслугТовары.Сумма,
	РеализацияТоваровУслугТовары.СуммаНДС,
	РеализацияТоваровУслугТовары.Цена,
	РеализацияТоваровУслугТовары.Количество,
	РеализацияТоваровУслугТовары.ЛицензионныйУчасток,
	РеализацияТоваровУслугТовары.Ссылка.Комментарий,
	РеализацияТоваровУслугТовары.Ссылка.СведенияОТранспортировкеИГрузе
ИЗ
	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
	РеализацияТоваровУслугТовары.Ссылка = &Ссылка
	И НЕ РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	РеализацияТоваровУслугУслуги.Ссылка,
	"Услуга",
	РеализацияТоваровУслугУслуги.Ссылка.Проведен,
	РеализацияТоваровУслугУслуги.Ссылка.Контрагент,
	РеализацияТоваровУслугУслуги.Номенклатура,
	РеализацияТоваровУслугУслуги.Субконто,
	РеализацияТоваровУслугУслуги.Сумма,
	РеализацияТоваровУслугУслуги.СуммаНДС,
	РеализацияТоваровУслугУслуги.Цена,
	РеализацияТоваровУслугУслуги.Количество,
	РеализацияТоваровУслугУслуги.ЛицензионныйУчасток,
	РеализацияТоваровУслугУслуги.Ссылка.Комментарий,
	РеализацияТоваровУслугУслуги.Ссылка.СведенияОТранспортировкеИГрузе
ИЗ
	Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
ГДЕ
	РеализацияТоваровУслугУслуги.Ссылка = &Ссылка
	И НЕ РеализацияТоваровУслугУслуги.Ссылка.ПометкаУдаления
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 72 30.04.21 11:33 Сейчас в теме
(1)
помогите оптимизировать запрос

Что именно вы хотите оптимизировать в данном запросе? Запрос вполне себе оптимальный.
5. Airat116 30.04.21 11:41 Сейчас в теме
(2) Я хотел попробовать, одним пакетом получить Шапку документа (Ссылка, Контрагент, Комментарии)
А другим пакетом две табл части(суммы, количество, номенклатуру), и как то соединить их. Это реально?
Или не правильно так?
8. nomad_irk 72 30.04.21 11:43 Сейчас в теме
(5)Правильно или нет - зависит от того, какой конечный результат вы хотите получить с помощью запроса.
Если вам нужно отдельно данные шапки, отдельно данные одной ТЧ, отдельно данные другой ТЧ, то делайте пакетным запросом.
Если нужно, чтобы все данные были в виде одной таблицы, то вы это уже сделали.
13. Airat116 30.04.21 11:54 Сейчас в теме
(8) Вот я хотел попробовать получить шапку отдельно, и далее получить табл часть
Но там связь нужно сделать, я не пойму по каким полям сделать связь(
И мне сгруппировать похоже нужно
14. nomad_irk 72 30.04.21 11:57 Сейчас в теме
(13)Поле Ссылка есть и у самого документа и у табличной части.
Ничего группировать не нужно, если вы не решаете какую-то определенную задачу именно группировкой.
3. FilippovRI 71 30.04.21 11:34 Сейчас в теме
(1) Тянуть все из регистра. Все равно в зависимости от конфигурации есть движения документа
4. Airat116 30.04.21 11:39 Сейчас в теме
(3) Из регистра не стал тянуть, так как комментарии нужны и другая информация которой нет в регистрах
6. FilippovRI 71 30.04.21 11:41 Сейчас в теме
(4) а регистратор вам на что?
9. Airat116 30.04.21 11:44 Сейчас в теме
(6) С какого регистра тогда лучше брать информацию?
10. FilippovRI 71 30.04.21 11:45 Сейчас в теме
(9) откройте движения посмотрите откуда можно взять.
15. Sashares 34 30.04.21 11:59 Сейчас в теме
(1)
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка,
"Товар" КАК ВидНоменклатуры,
РеализацияТоваровУслуг.Проведен,
РеализацияТоваровУслуг.Контрагент,
РеализацияТоваровУслугТовары.Номенклатура,
РеализацияТоваровУслугТовары.Субконто,
РеализацияТоваровУслугТовары.Сумма,
РеализацияТоваровУслугТовары.СуммаНДС,
РеализацияТоваровУслугТовары.Цена,
РеализацияТоваровУслугТовары.Количество,
РеализацияТоваровУслугТовары.ЛицензионныйУчасток,
РеализацияТоваровУслуг.Комментарий,
РеализацияТоваровУслуг.СведенияОТранспортировкеИГрузе
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
ГДЕ
РеализацияТоваровУслуг.Ссылка = &Ссылка
И НЕ РеализацияТоваровУслуг.ПометкаУдаления

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка,
"Услуга",
РеализацияТоваровУслуг.Проведен,
РеализацияТоваровУслуг.Контрагент,
РеализацияТоваровУслугУслуги.Номенклатура,
РеализацияТоваровУслугУслуги.Субконто,
РеализацияТоваровУслугУслуги.Сумма,
РеализацияТоваровУслугУслуги.СуммаНДС,
РеализацияТоваровУслугУслуги.Цена,
РеализацияТоваровУслугУслуги.Количество,
РеализацияТоваровУслугУслуги.ЛицензионныйУчасток,
РеализацияТоваровУслуг.Комментарий,
РеализацияТоваровУслуг.СведенияОТранспортировкеИГрузе
ИЗ
Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО РеализацияТоваровУслугУслуги.Ссылка = РеализацияТоваровУслуг.Ссылка
ГДЕ
РеализацияТоваровУслуг.Ссылка = &Ссылка
И НЕ РеализацияТоваровУслуг.ПометкаУдаления 
Показать


Так должно работать быстрее
16. dandykry 10 30.04.21 12:13 Сейчас в теме
(15) Что то мне подсказывает, что нет такой конструкции))

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
17. Sashares 34 30.04.21 12:16 Сейчас в теме
(16)Что именно не так в конструкции?
Соединение забыл, точно.
Спасибо, поправил.
19. dhurricane 30.04.21 13:03 Сейчас в теме
(15) А не могли бы Вы раскрыть мысль, почему так должно быть быстрее? Для общего образования интересно. Ведь по сути Ваш запрос с запросом автора будут идентичными, с одной лишь разницей: у автора левое, а у Вас внутреннее соединение. Разве вид соединения даст прирост в скорости?
20. Sashares 34 30.04.21 13:12 Сейчас в теме
(19)В платформе есть/была ошибка, она воспроизводится в файловой базе.
Отбор по полям основной таблицы (реквизитам поля Ссылка, и по самой Ссылке) для табличной части выполняется значительно медленнее. Чем могло бы быть.
И внутреннее соединение и отбор по полям основной таблицы эту проблему решают.

Ее возможно уже исправили на актуальной версии платформы, но например, в 8.3.14 это воспроизводится.

https://partners.v8.1c.ru/forum/t/1880900/m/1880902

https://bugboard.v8.1c.ru/error/000063612
dhurricane; +1 Ответить
21. dhurricane 30.04.21 13:29 Сейчас в теме
23. SlavaKron 30.04.21 15:47 Сейчас в теме
(20) У вас по второй ссылке указано
В файловом варианте информационной базы запрос, содержащий внутреннее соединение таблицы объекта и его табличной части, может выполняться медленно.
С чем я согласен. Но ведь ваш вариант как раз использует внутреннее соединение.
24. Sashares 34 30.04.21 18:01 Сейчас в теме
(23)В приложении скрины с примером данной проблемы.
Описание ошибки на багборде относится к этой проблеме.
Формулировка описания ошибки, имхо, не очень понятная.
Прикрепленные файлы:
7. Airat116 30.04.21 11:42 Сейчас в теме
Если в каждой табличной части будет по одной номенклатуре, тогда у меня будет две записи получается?
11. FilippovRI 71 30.04.21 11:46 Сейчас в теме
(7) Если у вас и там и там одинаково, то да потому что есть Товары и Услуга.
А для чего вы это делаете?
12. Airat116 30.04.21 11:49 Сейчас в теме
(11) Просто попросили такой отчет, по этим полям
Пока на время пользователям настроил "Универсальный отчет" где они получают такие же данные
Вот теперь надо сделать внешний отчет
18. unknow_user 30.04.21 12:32 Сейчас в теме
(0) А чё так?


ВЫБРАТЬ
РеализацияТоваровУслугТовары.Ссылка,
"Товар" КАК ВидНоменклатуры,
РеализацияТоваровУслугТовары.Ссылка.Проведен,
РеализацияТоваровУслугТовары.Ссылка.Контрагент,
РеализацияТоваровУслугТовары.Номенклатура,
РеализацияТоваровУслугТовары.Субконто,
РеализацияТоваровУслугТовары.Сумма,
РеализацияТоваровУслугТовары.СуммаНДС,
РеализацияТоваровУслугТовары.Цена,
РеализацияТоваровУслугТовары.Количество,
РеализацияТоваровУслугТовары.ЛицензионныйУчасток,
РеализацияТоваровУслугТовары.Ссылка.Комментарий,
РеализацияТоваровУслугТовары.Ссылка.СведенияОТранспортировкеИГрузе
ПОМЕСТИТЬ ВТ_Товары
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
РеализацияТоваровУслугТовары.Ссылка = &Ссылка
И НЕ РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления
;
//////////////////////////////////////////////
ВЫБРАТЬ
РеализацияТоваровУслугУслуги.Ссылка,
"Услуга" КАК ВидНоменклатуры,
РеализацияТоваровУслугУслуги.Ссылка.Проведен,
РеализацияТоваровУслугУслуги.Ссылка.Контрагент,
РеализацияТоваровУслугУслуги.Номенклатура,
РеализацияТоваровУслугУслуги.Субконто,
РеализацияТоваровУслугУслуги.Сумма,
РеализацияТоваровУслугУслуги.СуммаНДС,
РеализацияТоваровУслугУслуги.Цена,
РеализацияТоваровУслугУслуги.Количество,
РеализацияТоваровУслугУслуги.ЛицензионныйУчасток,
РеализацияТоваровУслугУслуги.Ссылка.Комментарий,
РеализацияТоваровУслугУслуги.Ссылка.СведенияОТранспортировкеИГрузе
ПОМЕСТИТЬ ВТ_Услуги
ИЗ
Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
ГДЕ
РеализацияТоваровУслугУслуги.Ссылка = &Ссылка
И НЕ РеализацияТоваровУслугУслуги.Ссылка.ПометкаУдаления 
;
////////////////////////////////////////
Выбрать
ВТ_Товары.Ссылка,
ВТ_Услуги.ВидНоменклатуры,
ВТ_Товары.ВидНоменклатуры,
ВТ_Товары.Ссылка.Проведен,
ВТ_Товары.Ссылка.Контрагент,
ВТ_Товары.Номенклатура,
ВТ_Товары.Субконто,
ВТ_Товары.Сумма,
ВТ_Товары.СуммаНДС,
ВТ_Товары.Цена,
ВТ_Товары.Количество,
ВТ_Товары.ЛицензионныйУчасток,
ВТ_Товары.Ссылка.Комментарий,
ВТ_Товары.Ссылка.СведенияОТранспортировкеИГрузе
ИЗ
ВТ_Товары КАК ВТ_Товары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Услуги КАК ВТ_Услуги
ПО ВТ_Услуги.Ссылка = ВТ_Товары.Ссылка

Показать
22. Airat116 30.04.21 14:18 Сейчас в теме
25. viplelik 34 01.05.21 22:17 Сейчас в теме
Я бы так сделал. Только добавь поле "ЛицензионныйУчасток"

ВЫБРАТЬ
	РеализацияТоваровУслуг.Ссылка КАК Ссылка,
	РеализацияТоваровУслуг.Проведен КАК Проведен,
	РеализацияТоваровУслуг.Контрагент КАК Контрагент,
	РеализацияТоваровУслуг.Комментарий КАК Комментарий,
	РеализацияТоваровУслуг.СведенияОТранспортировкеИГрузе КАК СведенияОТранспортировкеИГрузе
ПОМЕСТИТЬ втРТУ
ИЗ
	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
	РеализацияТоваровУслуг.Ссылка = &Ссылка
	И НЕ РеализацияТоваровУслуг.ПометкаУдаления
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	втРТУ.Ссылка КАК Ссылка,
	втРТУ.Проведен КАК Проведен,
	втРТУ.Контрагент КАК Контрагент,
	"Товар" КАК ВидНоменклатуры,
	РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
	РеализацияТоваровУслугТовары.Субконто КАК Субконто,
	РеализацияТоваровУслугТовары.Сумма КАК Сумма,
	РеализацияТоваровУслугТовары.СуммаНДС КАК СуммаНДС,
	РеализацияТоваровУслугТовары.Цена КАК Цена,
	РеализацияТоваровУслугТовары.Количество КАК Количество,
	втРТУ.Комментарий КАК Комментарий,
	втРТУ.СведенияОТранспортировкеИГрузе КАК СведенияОТранспортировкеИГрузе
ИЗ
	втРТУ КАК втРТУ
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
		ПО втРТУ.Ссылка = РеализацияТоваровУслугТовары.Ссылка

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	втРТУ.Ссылка,
	втРТУ.Проведен,
	втРТУ.Контрагент,
	"Услуга",
	РеализацияТоваровУслугУслуги.Номенклатура,
	РеализацияТоваровУслугУслуги.Субконто,
	РеализацияТоваровУслугУслуги.Сумма,
	РеализацияТоваровУслугУслуги.СуммаНДС,
	РеализацияТоваровУслугУслуги.Цена,
	РеализацияТоваровУслугУслуги.Количество,
	втРТУ.Комментарий,
	втРТУ.СведенияОТранспортировкеИГрузе
ИЗ
	втРТУ КАК втРТУ
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
		ПО втРТУ.Ссылка = РеализацияТоваровУслугУслуги.Ссылка
Показать
Оставьте свое сообщение

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