Меню


Курсы СтимулСправочникПолезные материалы1С:Предприятие 8.2РазработчикамРеализация обработки данных

1С:Предприятие 8.2 /
Разработчикам /
Реализация обработки данных

Оглавление

Ограничение на использование конструкции "ОБЪЕДИНИТЬ ВСЕ" в запросах

См. также

 

В запросах не следует выполнять соединений с помощью конструкции ОБЪЕДИНИТЬ ВСЕ строковых полей ограниченной длины с полями неограниченной длины, если результат объединяющего запроса упорядочивается с помощью конструкции УПОРЯДОЧИТЬ ПО.

Данное требование продиктовано особенностью выполнения подобных запросов на СУБД Microsoft SQL Server 2000 SP4 и необходимостью переносимости прикладных решений на эту СУБД.

Например, неправильно:

ВЫБРАТЬ
Т1.Код КАК Поле1,
Т1.Наименование КАК Поле2
ИЗ
Справочник.Справочник1 КАК Т1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Т2.Код,
Т2.РеквизитНеограниченнойДлины
ИЗ
Справочник.Справочник2 КАК Т2
УПОРЯДОЧИТЬ ПО
Поле1

Примечание: упорядочивание по Поле2 невозможно, т.к. это поле неограниченной длины, и оно не может участвовать в сравнениях. Однако, достаточно наличия упорядочивания по любому другому полю.

Правильно:

1) отказаться от УПОРЯДОЧИТЬ ПО сортировку выполнить затем средствами встроенного языка - ТаблицаЗначений.Сортировать)

ВЫБРАТЬ
Т1.Код КАК Поле1,
Т1.Наименование КАК Поле2
ИЗ
Справочник.Справочник1 КАК Т1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Т2.Код,
Т2.РеквизитНеограниченнойДлины
ИЗ
Справочник.Справочник2 КАК Т2

2) использовать функцию ПОДСТРОКА (в случае вывода в список УПОРЯДОЧИТЬ ПО добавляется платформой автоматически к запросу)

 

ВЫБРАТЬ
Т1.Код КАК Поле1,
Т1.Наименование КАК Поле2
ИЗ
Справочник.Справочник1 КАК Т1
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Т2.Код,
ПОДСТРОКА(Т2.РеквизитНеограниченнойДлины, 1, 1000)
ИЗ
Справочник.Справочник2 КАК Т2
УПОРЯДОЧИТЬ ПО
Поле1

См. также


Нас находят: объединить все в запросе 1с, объединить в запросе 1с 8 2, объединение запросов 1с 8 2, подобно в запросах 1с 8 2, как использовать объединить все, имеет неограниченную длину и не может участвовать в сравнении, 1С 8 2 ОБЪЕДИНИТЬ ВСЕ, 1с Объединить 8 2 Запрос, 1с Объединить 8 2, условие в запросе 1с 8 2


Подписка на новости RSS

Мы на Facebook