Язык запросов DaJet переопределяет поведение оператора сравнения на равенство для составных ссылочных типов данных. Это необходимо для того, чтобы учесть особенность хранения значений составных типов данных на уровне СУБД.
Кроме этого, подобные трансформации кода необходимы для того, чтобы правильно "попадать" в индексы СУБД для построения оптимальных планов выполнения запросов.
Система типов данных языка запросов
Официальная документация 1С:Предприятие 8
Пример трансформации сравнения "ссылка = параметр":
-- Код на языке запросов DaJet
DECLARE @entity Документ.ЗаказКлиента = '8d40e09c-935c-8ecc-11ed-71076402f3b2';
SELECT Регистратор
FROM РегистрНакопления.ОстаткиПоЗаказам
WHERE Регистратор = @entity
-- Код запроса для MS SQL Server
SELECT _RecorderTRef AS Регистратор_TRef,
_RecorderRRef AS Регистратор_RRef
FROM _AccumRg1012
WHERE (_RecorderTRef = 0x00000354
AND _RecorderRRef = @entity)
Пример трансформации сравнения "ссылка = ссылка":
-- Код на языке запросов DaJet
SELECT Регистратор
FROM РегистрНакопления.ОстаткиПоЗаказам AS Остатки
INNER JOIN Документ.ЗаказКлиента AS Заказ
ON Остатки.Регистратор = Заказ.Ссылка
-- Код запроса для MS SQL Server
SELECT _RecorderTRef AS Регистратор_TRef,
_RecorderRRef AS Регистратор_RRef
FROM _AccumRg1012 AS Остатки
INNER JOIN _Document852 AS Заказ
ON (Остатки._RecorderTRef = 0x00000354
AND Остатки._RecorderRRef = Заказ._IDRRef)