Имя: Пароль:
1C
1С v8
Исключить записи одной таблицы из другой в запросе
0 Filkkore
 
01.07.23
22:49
1С БП 3
Платформа 8.3.20.2184

Задача такова:
Получить документы, которые НЕ интегрированы с 1С ДО. Соответственно мне нужно получить в запросе документы и исключить из их списка те, которые присутствуют в Регистре сведений "ОбъектыИнтегрированныеС1СДокументооборотом".

Я знаю два способа это сделать.



Первый:

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



Второй:

ВЫБРАТЬ
   ПоступлениеТоваровУслуг.Ссылка КАК Ссылка
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбъектыИнтегрированныеС1СДокументооборотом КАК ОбъектыИнтегрированныеС1СДокументооборотом
    ПО ПоступлениеТоваровУслуг.Ссылка = ОбъектыИнтегрированныеС1СДокументооборотом.Объект
ГДЕ
   ОбъектыИнтегрированныеС1СДокументооборотом.Объект ЕСТЬ NULL


Нет ли варианта, работающего быстрее, например Связью?
1 Garykom
 
01.07.23
23:22
(0) Левое соединение и ЕСТЬNULL
2 Filkkore
 
02.07.23
14:01
(1) То есть лучше этого ничего не предусмотрено? Я кстати тестил в консоли оба этих варианта на большом объеме данных, и вариант с левым соединением и ЕСТЬNULL отрабатывает в среднем чуть медленнее, так что из этих двух я бы скорее выбрал первый.
3 Filkkore
 
02.07.23
14:10
Хотя возможно с появлением большего количества записей в Регистре скорость работы первого упадет заметнее чем у второго...
4 Garykom
 
02.07.23
17:52
(3) С появлением большого кол-ва записей в РС ОбъектыИнтегрированныеС1СДокументооборотом есть риск что первый запрос начнет падать от нехватки памяти
Ну или тормозить от свопа
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший