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С:Предприятие 8.2 / Разработчикам / Реализация обработки данных
Другие материалы по теме:
Использование логического ИЛИ в условиях запросов
Как в списке установить нестандартную картинку строки
Использование транзакций при чтении данных

Мы на Facebook