ВЫБРАТЬ
Справочник_1.Код + 1 КАК Поле2,
МИНИМУМ(Справочник_2.Код - 1) КАК Поле3
ИЗ
Справочник.Справочник1 КАК Справочник_1
ЛЕВОЕ СОЕДИНЕНИЕ
Справочник.Справочник1 КАК Справочник_2
ПО ИСТИНА
ГДЕ
(НЕ Справочник_1.Код + 1 В
(ВЫБРАТЬ
Справочник1.Код
ИЗ
Справочник.Справочник1 КАК Справочник1))
И
(НЕ Справочник_1.Код В
(ВЫБРАТЬ
МАКСИМУМ(Справочник1.Код)
ИЗ
Справочник.Справочник1 КАК Справочник1))
И
(НЕ Справочник_2.Код - 1 В
(ВЫБРАТЬ
Справочник1.Код
ИЗ
Справочник.Справочник1 КАК Справочник1))
И
(НЕ Справочник_2.Код В
(ВЫБРАТЬ
МИНИМУМ(Справочник1.Код)
ИЗ
Справочник.Справочник1 КАК Справочник1))
И
(Справочник_1.Код + 1 <= Справочник_2.Код - 1)
СГРУППИРОВАТЬ ПО
Справочник_1.Код
А вот оптимизированный в 1с:
ВЫБРАТЬ
Справочник_1.Код + 1 КАК Поле1,
МИНИМУМ(Справочник_2.Код - 1) КАК Поле2
ИЗ
Справочник.Справочник1 КАК Справочник_1,
Справочник.Справочник1 КАК Справочник_2
ГДЕ
Справочник_1.Код < Справочник_2.Код
СГРУППИРОВАТЬ ПО
Справочник_1.Код
ИМЕЮЩИЕ
МИНИМУМ(Справочник_2.Код)>Справочник_1.Код + 1