Задача такова:
Получить документы, которые НЕ интегрированы с 1С ДО. Соответственно мне нужно получить в запросе документы и исключить из их списка те, которые присутствуют в Регистре сведений "ОбъектыИнтегрированныеС1СДокументооборотом".
Я знаю два способа это сделать.
Первый:
ВЫБРАТЬ
ПоступлениеТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
НЕ ПоступлениеТоваровУслуг.Ссылка В
(ВЫБРАТЬ
ОбъектыИнтегрированныеС1СДокументооборотом.Объект
ИЗ
РегистрСведений.ОбъектыИнтегрированныеС1СДокументооборотом КАК ОбъектыИнтегрированныеС1СДокументооборотом)
Второй:
ВЫБРАТЬ
ПоступлениеТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбъектыИнтегрированныеС1СДокументооборотом КАК ОбъектыИнтегрированныеС1СДокументооборотом
ПО ПоступлениеТоваровУслуг.Ссылка = ОбъектыИнтегрированныеС1СДокументооборотом.Объект
ГДЕ
ОбъектыИнтегрированныеС1СДокументооборотом.Объект ЕСТЬ NULL
Нет ли варианта, работающего быстрее, например Связью?
(1) То есть лучше этого ничего не предусмотрено? Я кстати тестил в консоли оба этих варианта на большом объеме данных, и вариант с левым соединением и ЕСТЬNULL отрабатывает в среднем чуть медленнее, так что из этих двух я бы скорее выбрал первый.
(3) С появлением большого кол-ва записей в РС ОбъектыИнтегрированныеС1СДокументооборотом есть риск что первый запрос начнет падать от нехватки памяти
Ну или тормозить от свопа