К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Вопрос по нюансам в СКД

Гость
0 - 13.04.2016 - 10:40
Хочу получить документы реализация без СФ
Написал запрос в СКД

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

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

Работает. Выдает необходимые данные. Но медленно (секунд 10). Подумал уменьшить период для СФ. Написал следующий запрос

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СчетФактураВыданныйДокументыОснования.Ссылка КАК СчетФактураВыданный,
СчетФактураВыданныйДокументыОснования.ДокументОсно вание КАК ДокументОснование
ПОМЕСТИТЬ Выборка1
ИЗ
Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования
ГДЕ
СчетФактураВыданныйДокументыОснования.Ссылка.Дата МЕЖДУ &НачалоПериодаСФ И &КонецПериодаСФ
{ГДЕ
СчетФактураВыданныйДокументыОснования.Ссылка.Орган изация.*,
СчетФактураВыданныйДокументыОснования.Ссылка.Контр агент.*,
СчетФактураВыданныйДокументыОснования.Ссылка.Догов орКонтрагента.***
;

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

Работает быстро, но выдает все документы реализация (и без СФ и с СФ)
Вставил этот запрос в консоль. Выдает то что надо. Что поправить в СКД, может какой-то нюанс не учел?



Гость
1 - 13.04.2016 - 17:12
Оптимизатор СКД подсовывает на выполнение совсем другой запрос, получая его из исходного текста запроса, настроек (выбранных полей, установленных отборов) и ещё ХЗ чего.
Хочешь гарантированное поведение - получай данные запросом и уже его результат скармливай СКД для вывода.
Гость
2 - 13.04.2016 - 17:24
Спасибо за совет.
Но все таки хочу разобраться с СКД. Может какую галку нужно поставить. Ведь лучше один раз выяснить нюанс, чем все жизнь делать через опу.
Гость
3 - 13.04.2016 - 17:36
(2) для начала посмотри какой запрос реально выполняется.

Как вариант - затребованные в результат поля содержатся в одном источнике, в связи с чем умный оптимизатор может сделать вывод о ненужности соединения.
Гость
4 - 14.04.2016 - 02:43
База файловая или SQL?
Гость
5 - 14.04.2016 - 09:46
База файловая
Гость
6 - 18.04.2016 - 13:28
вверх


К списку вопросов






Copyright ©, Все права защищены