Как обычно проверяют запрос пустой или нет?
Конечно через (Выборка.Количество()<>0), но это не совсем правильно.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Ссылка |ИЗ Справочник.Контрагенты КАК Контрагенты"; Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Возврат Ложь; Иначе Возврат Истина; КонецЕсли;
Проверка на пустоту в самом Запросе
Основноя фишка задач что нужно проверить есть данные или нет в ТЧ справочника .
В запросе мы делаем вложенный запрос и группируем его. В итоговом делаем проверку на НУЛЛ
Совместное решение 2 задач
Практикум №2.4
При отображении списка справочника «_ДемоПартнеры» создайте колонку «ЕстьКонтактнаяИнформация», в колонке должна отображаться флажок, если для данного партнера в базе хранится хоть что-то из контактной информации (телефон, адрес и т.п.)
Практикум №2.5
Усложенение предыдущего задания: в колонке «ЕстьКонтактнаяИнформация» надо отдельными пиктограммами отображать ситуации: полная контактная информация (есть и Телефон и Адрес и Email партнера), частичная контактная информация (есть хоть что-то из вышепривенного списка, но не все), нет контактной информации.
ВЫБРАТЬ
Справочник_ДемоПартнеры.Ссылка,
Справочник_ДемоПартнеры.ПометкаУдаления,
Справочник_ДемоПартнеры.Предопределенный,
Справочник_ДемоПартнеры.Родитель,
Справочник_ДемоПартнеры.ЭтоГруппа,
Справочник_ДемоПартнеры.Код,
Справочник_ДемоПартнеры.Наименование,
Справочник_ДемоПартнеры.Клиент,
Справочник_ДемоПартнеры.Поставщик,
Справочник_ДемоПартнеры.Конкурент,
Справочник_ДемоПартнеры.ПрочиеОтношения,
ВЫБОР
КОГДА ВложенныйЗапрос.Телефон есть Null
И ВложенныйЗапрос2.Email есть Null
И ВложенныйЗапрос3.Адрес есть Null
ТОГДА 3
КОГДА НЕ ВложенныйЗапрос.Телефон есть Null
И НЕ ВложенныйЗапрос2.Email есть Null
И НЕ ВложенныйЗапрос3.Адрес есть Null
ТОГДА 2
ИНАЧЕ 1
КОНЕЦ КАК ЕстьКИ
ИЗ
Справочник._ДемоПартнеры КАК Справочник_ДемоПартнеры
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
_ДемоПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка,
МАКСИМУМ(_ДемоПартнерыКонтактнаяИнформация.Представление) КАК Телефон
ИЗ
Справочник._ДемоПартнеры.КонтактнаяИнформация КАК _ДемоПартнерыКонтактнаяИнформация
ГДЕ
_ДемоПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
СГРУППИРОВАТЬ ПО
_ДемоПартнерыКонтактнаяИнформация.Ссылка) КАК ВложенныйЗапрос
ПО Справочник_ДемоПартнеры.Ссылка = ВложенныйЗапрос.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
_ДемоПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка,
МАКСИМУМ(_ДемоПартнерыКонтактнаяИнформация.Представление) КАК Email
ИЗ
Справочник._ДемоПартнеры.КонтактнаяИнформация КАК _ДемоПартнерыКонтактнаяИнформация
ГДЕ
_ДемоПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
СГРУППИРОВАТЬ ПО
_ДемоПартнерыКонтактнаяИнформация.Ссылка) КАК ВложенныйЗапрос2
ПО Справочник_ДемоПартнеры.Ссылка = ВложенныйЗапрос2.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
_ДемоПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка,
МАКСИМУМ(_ДемоПартнерыКонтактнаяИнформация.Представление) КАК Адрес
ИЗ
Справочник._ДемоПартнеры.КонтактнаяИнформация КАК _ДемоПартнерыКонтактнаяИнформация
ГДЕ
_ДемоПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
СГРУППИРОВАТЬ ПО
_ДемоПартнерыКонтактнаяИнформация.Ссылка) КАК ВложенныйЗапрос3
ПО Справочник_ДемоПартнеры.Ссылка = ВложенныйЗапрос3.Ссылка
Комментариев нет:
Отправить комментарий