Вывод контрагента без Email

1. Nastya-chajkovskaya 17.04.19 07:55 Сейчас в теме
Здравствуйте! Подскажите пожалуйста, у меня имеется запрос согласно которого заполняются контрагенты в табличную часть со своими email адресами, можно ли добавить условие, чтобы если в документе договор например Услуга, но у контрагента не указан email , чтобы он тоже попадал данный документ?

Вроде как условие добавила, но всё равно контрагенты без email не попадают

Функция ПоискКонтрагента(ВидДокумента)
	
	Запрос = Новый Запрос;
	
	Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(Объект.ДатаНач));
	Запрос.УстановитьПараметр("КонецПериода",КонецДня(Объект.ДатаКон));

	Запрос.Текст = 
	"ВЫБРАТЬ
	|	РассылкаПоЭлектроннойПочтеТЧСчета.Контрагент КАК Контрагент,
	|	РассылкаПоЭлектроннойПочтеТЧСчета.ДокументСчет КАК ДокументСчет,
	|	РассылкаПоЭлектроннойПочтеТЧСчета.ДокументАкт КАК ДокументАкт,
	|	РассылкаПоЭлектроннойПочтеТЧСчета.ДокументСчетФактура КАК ДокументСчетФактура
	|ПОМЕСТИТЬ ВТ_Контрагенты
	|ИЗ
	|	Документ.РассылкаПоЭлектроннойПочте.ТЧСчета КАК РассылкаПоЭлектроннойПочтеТЧСчета
	|ГДЕ
	|	РассылкаПоЭлектроннойПочтеТЧСчета.Отправлять = ИСТИНА
	|	И НЕ РассылкаПоЭлектроннойПочтеТЧСчета.Ссылка.ПометкаУдаления
	|	И РассылкаПоЭлектроннойПочтеТЧСчета.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВыбДокумент.Ссылка КАК Ссылка,
	|	ВЫБОР
	|		КОГДА ВыбДокумент.ДоговорКонтрагента.ВидВзаиморасчетов = &Договор и КонтрагентыКонтактнаяИнформация.АдресЭП = ""
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ КонтрагентыКонтактнаяИнформация.АдресЭП
	|	КОНЕЦ КАК АдресЭП
	|ИЗ
	|	Документ."+ВидДокумента+" КАК ВыбДокумент
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
	|		ПО ВыбДокумент.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
	|ГДЕ
	|	ВыбДокумент.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	|	И НЕ ВыбДокумент.ПометкаУдаления
	|	И НЕ ВыбДокумент.Контрагент В
	|				(ВЫБРАТЬ
	|					ВТ_Контрагенты.Контрагент КАК Контрагент
	|				ИЗ
	|					ВТ_Контрагенты КАК ВТ_Контрагенты)
	|	И НЕ КонтрагентыКонтактнаяИнформация.Вид.Представление ЕСТЬ NULL
	|	И НЕ КонтрагентыКонтактнаяИнформация.АдресЭП = """"";
    
     Возврат Запрос.Выполнить().Выбрать();
КонецФункции 	
Показать


Добавила условие
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ksen 17.04.19 08:22 Сейчас в теме
ВЫБОР
| КОГДА ВыбДокумент.ДоговорКонтрагента.ВидВзаиморасчетов = &Договор и КонтрагентыКонтактнаяИнформация.АдресЭП = ""
| ТОГДА ИСТИНА

/////////////////////////////
////////////////////////////
| И НЕ КонтрагентыКонтактнаяИнформация.АдресЭП = """"";


что-то тут не так.
3. Nastya-chajkovskaya 17.04.19 08:26 Сейчас в теме
(2) я понимаю что мой косяк какой-то, но не пойму в чем, если прописать вместо этого
| И НЕ КонтрагентыКонтактнаяИнформация.АдресЭП = """""; 

и КонтрагентыКонтактнаяИнформация.Вид.Наименование = "Email"
то контрагенты без email не попадает, а мне надо чтобы если договор "услуга", все равно попал
4. SedovSU@mail.ru 298 17.04.19 08:28 Сейчас в теме
Вам в условие (оператор ГДЕ) запроса нужно добавить что то вроде этого:

Вместо этого И НЕ КонтрагентыКонтактнаяИнформация.АдресЭП = """"" попробуйте следующее

ВЫБОР
    КОГДА ВыбДокумент.ДоговорКонтрагента.ВидВзаиморасчетов = &Договор и КонтрагентыКонтактнаяИнформация.АдресЭП = ""
           ТОГДА ИСТИНА
    ИНАЧЕ НЕ КонтрагентыКонтактнаяИнформация.АдресЭП = """""
КОНЕЦ 
5. Nastya-chajkovskaya 17.04.19 09:11 Сейчас в теме
(4)
ВЫБОР
КОГДА ВыбДокумент.ДоговорКонтрагента.ВидВзаиморасчетов = &Договор и КонтрагентыКонтактнаяИнформация.АдресЭП = ""
ТОГДА ИСТИНА
ИНАЧЕ НЕ КонтрагентыКонтактнаяИнформация.АдресЭП = """""
КОНЕЦ


Да, только сейчас у меня уже не выводятся, у кого были заполнены)
6. SedovSU@mail.ru 298 17.04.19 09:18 Сейчас в теме
(5) смотрите вот так. ТО есть если договор равен услуги то мы выводим иначе выводим в том случае когда АдресЭП не равен пусто ("")

ВЫБОР 
КОГДА ВыбДокумент.ДоговорКонтрагента.ВидВзаиморасчетов = &Договор ТОГДА
          ИСТИНА
ИНАЧЕ
        ЕСТЬNULL(КонтрагентыКонтактнаяИнформация.АдресЭП, "") <> ""  
КОНЕЦ
7. Nastya-chajkovskaya 17.04.19 12:45 Сейчас в теме
(6) у меня выходит, что он выводит и фактический адрес и юридический адрес и телефон. Можно как-то сделать,чтобы попали только те у кого есть email и если договор нужный,но нет email
8. SedovSU@mail.ru 298 17.04.19 12:53 Сейчас в теме
(7) все теперь понятно, вы когда делаете соединение с контактной информацией вам нужно добавить условие на вид контактной информации, в противном случае у вас все будет выгружается и факт. адрес и юр. адрес и т.д.

.........
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    |        ПО ВыбДокумент.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
    |               И КонтрагентыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
......
9. Nastya-chajkovskaya 17.04.19 13:41 Сейчас в теме
(8) так, а разве опять я не вернусь к тому, что у меня выведиться контрагенты у кого заполненый email?
10. SedovSU@mail.ru 298 17.04.19 13:59 Сейчас в теме
(9) ну почему же, у вас ведь главная таблица ведь ВыбДокумент а не контактная информация, это всего лишь условие на связь в контактной информации

Запрос.Текст = 
    "ВЫБРАТЬ
    |    РассылкаПоЭлектроннойПочтеТЧСчета.Контрагент КАК Контрагент,
    |    РассылкаПоЭлектроннойПочтеТЧСчета.ДокументСчет КАК ДокументСчет,
    |    РассылкаПоЭлектроннойПочтеТЧСчета.ДокументАкт КАК ДокументАкт,
    |    РассылкаПоЭлектроннойПочтеТЧСчета.ДокументСчетФактура КАК ДокументСчетФактура
    |ПОМЕСТИТЬ ВТ_Контрагенты
    |ИЗ
    |    Документ.РассылкаПоЭлектроннойПочте.ТЧСчета КАК РассылкаПоЭлектроннойПочтеТЧСчета
    |ГДЕ
    |    РассылкаПоЭлектроннойПочтеТЧСчета.Отправлять = ИСТИНА
    |    И НЕ РассылкаПоЭлектроннойПочтеТЧСчета.Ссылка.ПометкаУдаления
    |    И РассылкаПоЭлектроннойПочтеТЧСчета.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    |    ВыбДокумент.Ссылка КАК Ссылка,
    |    ВЫБОР
    |        КОГДА ВыбДокумент.ДоговорКонтрагента.ВидВзаиморасчетов = &Договор и КонтрагентыКонтактнаяИнформация.АдресЭП = ""
    |            ТОГДА ИСТИНА
    |        ИНАЧЕ КонтрагентыКонтактнаяИнформация.АдресЭП
    |    КОНЕЦ КАК АдресЭП
    |ИЗ
    |    Документ."+ВидДокумента+" КАК ВыбДокумент
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    |        ПО ВыбДокумент.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
    |               И И КонтрагентыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты)
    |ГДЕ
    |    ВыбДокумент.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |    И НЕ ВыбДокумент.ПометкаУдаления
    |    И НЕ ВыбДокумент.Контрагент В
    |                (ВЫБРАТЬ
    |                    ВТ_Контрагенты.Контрагент КАК Контрагент
    |                ИЗ
    |                    ВТ_Контрагенты КАК ВТ_Контрагенты)
    |    И НЕ КонтрагентыКонтактнаяИнформация.Вид.Представление ЕСТЬ NULL
    |    И ВЫБОР КОГДА ВыбДокумент.ДоговорКонтрагента.ВидВзаиморасчетов = &Договор ТОГДА ИСТИНА Иначе НЕ КонтрагентыКонтактнаяИнформация.АдресЭП = """"" КОНЕЦ"
Показать
12. Nastya-chajkovskaya 17.04.19 14:04 Сейчас в теме
(10)или походу надо условие убрать
| И НЕ КонтрагентыКонтактнаяИнформация.Вид.Представление ЕСТЬ NULL
11. Nastya-chajkovskaya 17.04.19 14:02 Сейчас в теме
(8) или походу надо условие убрать
|	И НЕ КонтрагентыКонтактнаяИнформация.Вид.Представление ЕСТЬ NULL
13. SedovSU@mail.ru 298 17.04.19 14:08 Сейчас в теме
(11) оно в принципе лишнее
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот