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 / Разработчикам / Реализация обработки данных
Другие материалы по теме:
Использование логического ИЛИ в условиях запросов
Использование транзакций при чтении данных
Как в списке установить нестандартную картинку строки
Нас находят: объединить все в запросе 1с, объединить в запросе 1с 8 2, объединение запросов 1с 8 2, подобно в запросах 1с 8 2, как использовать объединить все, имеет неограниченную длину и не может участвовать в сравнении, 1С 8 2 ОБЪЕДИНИТЬ ВСЕ, 1с Объединить 8 2 Запрос, 1с Объединить 8 2, условие в запросе 1с 8 2
Мы на Facebook