Имя: Пароль:
1C
1С v8
как выбрать контрагентов у которых нет координат в РС.КонтактнаяИнформация
0 LivingStar
 
26.07.13
06:47
Ребят подскажите как выбрать контрагентов по которым нет координат в регистре сведений контактная информация. Вот запрос который выбирает всех контрагентов у которых есть координаты в регистре сведений контактная информация. Я поднимал уже тему, советовали наложить условия:

И ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100)) = ""

И ПОДСТРОКА(КонтактнаяИнформация.Представление, 1, 1) = ""

ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100)) = ВЫРАЗИТЬ("" КАК СТРОКА(100))

И ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(100)) = неопределено

Но ничего не помогало, при установке любого из условий запрос переставал отбирать. В этом случае нужно в соединении кажется устанавливать условие, подскажите как? Выбрать контрагентов у которых отсутствуют координаты в контактной информации так и не получилось.


ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление КАК ГеографическаяШирота,
    РеквизитыТТСрезПоследних.МенеджерТорговойТочки
ПОМЕСТИТЬ ВТ_ГеографическаяШирота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеквизитыТТ.СрезПоследних КАК РеквизитыТТСрезПоследних
        ПО Контрагенты.Ссылка = РеквизитыТТСрезПоследних.Контрагент
ГДЕ
    КонтактнаяИнформация.Вид.Код = "000000036"
    
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление,
    РеквизитыТТСрезПоследних.МенеджерТорговойТочки
ПОМЕСТИТЬ ВТ_ГеографическаяДолгота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РеквизитыТТ.СрезПоследних КАК РеквизитыТТСрезПоследних
        ПО Контрагенты.Ссылка = РеквизитыТТСрезПоследних.Контрагент
ГДЕ
    КонтактнаяИнформация.Вид.Код = "000000037"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ГеографическаяДолгота.Ссылка КАК ТорговаяТочка,
    ВТ_ГеографическаяДолгота.Представление КАК ГеографическаяДолгота,
    ВТ_ГеографическаяШирота.ГеографическаяШирота,
    ВТ_ГеографическаяДолгота.МенеджерТорговойТочки КАК ТА
ИЗ
    ВТ_ГеографическаяШирота КАК ВТ_ГеографическаяШирота
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ГеографическаяДолгота КАК ВТ_ГеографическаяДолгота
        ПО ВТ_ГеографическаяШирота.Ссылка = ВТ_ГеографическаяДолгота.Ссылка

УПОРЯДОЧИТЬ ПО
    //ТорговаяТочка,
    ТА
1 Галахад
 
гуру
26.07.13
06:55
Таблица контрагентов. К ней левое соединение таблица контактной информации. Где null-ы там и нету.
Хотя похоже это уже советовали.

В запросах жесть.
2 mih_io
 
26.07.13
06:56
Тут надо понимать, есть ли сама запись в РС с пустым значением нужного реквизита.

Смысл следующий. Контрагентов по левому соединению объединяешь с РС и делаешь отбор тех записей, где нужный тебе реквизит из РС null. Если сама запись в РС есть, но значение нужного реквизита пустое, то делаешь в итоге отбор тех записей где значение реквизита не null, а пустой тип нужного тебе реквизита.
3 andreymongol82
 
26.07.13
07:08
(2) Лучше будет не Если-если, а объединить оба запроса
4 Живой Ископаемый
 
26.07.13
08:01
Автор просто не может догнать этой идеи, ему уже говорили несколько раз
5 Starhan
 
26.07.13
08:30
Автора пора ужо книгу рекордов Мисты.
6 Поросенок Петр
 
26.07.13
08:41
(5) +100500
Конечно трудно научиться думать своей головой, если каждый встречный вопрос задавать на мисте (и дают ответ).
Реально, каждый день по несколько веток:

http://www.forum.mista.ru/index.php?user_id=6293
7 cw014
 
26.07.13
08:53
Судя по всему ТС не хочет ничего решать... Он хочет iPhone белый
8 alextom81
 
26.07.13
09:36
(7) Да. 7 лет на Мисте не проходят даром.
(0) Делай как говорит (1)
Контрагенты-ЗаписиРегистра (две таблицы) - потом соединяешь, просто (где не КонтрегентСсылка = ЗаписиРегистра.Контрагент)
9 viktor_vv
 
26.07.13
09:48
Вот это, жесть конечно ,

КонтактнаяИнформация.Вид.Код = "000000037"


перенеси в условие соединения

а в где

Где
   КонтактнаяИнформация.Объект IS NULL
10 capitanjack1
 
26.07.13
10:00
можно так


    ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Объект
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
        ПО КонтактнаяИнформация.Объект = Контрагенты.Ссылка
ГДЕ
    НЕ Контрагенты.Ссылка В
                (ВЫБРАТЬ
                    КонтактнаяИнформация.Объект КАК ссылка
                ИЗ
                    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация)
11 capitanjack1
 
26.07.13
10:01
опечатался, вот:

ВЫБРАТЬ
    Контрагенты.Ссылка
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    НЕ Контрагенты.Ссылка В
                (ВЫБРАТЬ
                    КонтактнаяИнформация.Объект КАК ссылка
                ИЗ
                    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация)
12 alextom81
 
26.07.13
11:12
(11) Надо также условие по виду контактной информации накладывать - не забудь !
13 LivingStar
 
26.07.13
11:59
Спасибо большое, дойдет очередь, переберу все варианты!
Просто в голове крутилось что я так и не выбрал то что нужно, вот и задал вопрос, так как нужно его решить в любом случае.
14 LivingStar
 
29.07.13
11:36
так ничего не выбирает, что я не так делаю?

ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление КАК ГеографическаяШирота
ПОМЕСТИТЬ ВТ_ГеографическаяШирота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
ГДЕ
    КонтактнаяИнформация.Вид.Код = "000000036"
    И ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК Строка(100)) = ""
    И Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление
ПОМЕСТИТЬ ВТ_ГеографическаяДолгота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
ГДЕ
    КонтактнаяИнформация.Вид.Код = "000000037"
    И ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК Строка(100)) = ""    
    И Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ГеографическаяДолгота.Ссылка,
    ВТ_ГеографическаяДолгота.Представление КАК ГеографическаяДолгота,
    ВТ_ГеографическаяШирота.ГеографическаяШирота,
    ВТ_ГеографическаяДолгота.Ссылка.ОсновнойМенеджерПокупателя
ИЗ
    ВТ_ГеографическаяШирота КАК ВТ_ГеографическаяШирота
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ГеографическаяДолгота КАК ВТ_ГеографическаяДолгота
        ПО ВТ_ГеографическаяШирота.Ссылка = ВТ_ГеографическаяДолгота.Ссылка
15 LivingStar
 
29.07.13
11:39
и так тоже не выбирает
ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление КАК ГеографическаяШирота
ПОМЕСТИТЬ ВТ_ГеографическаяШирота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
        И ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК Строка(100)) = null        
ГДЕ
    КонтактнаяИнформация.Вид.Код = "000000036"
    И Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление
ПОМЕСТИТЬ ВТ_ГеографическаяДолгота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
        И ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК Строка(100)) = Null            
ГДЕ
    КонтактнаяИнформация.Вид.Код = "000000037"
    И Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ГеографическаяДолгота.Ссылка,
    ВТ_ГеографическаяДолгота.Представление КАК ГеографическаяДолгота,
    ВТ_ГеографическаяШирота.ГеографическаяШирота,
    ВТ_ГеографическаяДолгота.Ссылка.ОсновнойМенеджерПокупателя
ИЗ
    ВТ_ГеографическаяШирота КАК ВТ_ГеографическаяШирота
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ГеографическаяДолгота КАК ВТ_ГеографическаяДолгота
        ПО ВТ_ГеографическаяШирота.Ссылка = ВТ_ГеографическаяДолгота.Ссылка
16 LivingStar
 
29.07.13
11:45
во, понял, вот так кажется будет отбирать!!!

ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление КАК ГеографическаяШирота
ПОМЕСТИТЬ ВТ_ГеографическаяШирота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
        И КонтактнаяИнформация.Вид.Код = "000000036"
ГДЕ
    Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление
ПОМЕСТИТЬ ВТ_ГеографическаяДолгота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
        И КонтактнаяИнформация.Вид.Код = "000000037"
ГДЕ
    Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ГеографическаяДолгота.Ссылка,
    ВТ_ГеографическаяДолгота.Представление КАК ГеографическаяДолгота,
    ВТ_ГеографическаяШирота.ГеографическаяШирота,
    ВТ_ГеографическаяДолгота.Ссылка.ОсновнойМенеджерПокупателя
ИЗ
    ВТ_ГеографическаяШирота КАК ВТ_ГеографическаяШирота
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ГеографическаяДолгота КАК ВТ_ГеографическаяДолгота
        ПО ВТ_ГеографическаяШирота.Ссылка = ВТ_ГеографическаяДолгота.Ссылка
17 viktor_vv
 
29.07.13
11:47
ГДЕ
    Контрагенты.ОсновнойМенеджерПокупателя = &ТА
И КонтактнаяИнформация.Объект IS NULL
18 LivingStar
 
29.07.13
12:05
(17) да, тоже вариант, аналог же (16) ?
19 viktor_vv
 
29.07.13
12:09
(18) Ткни пальцем где там условие "КонтактнаяИнформация.Объект IS NULL" ?
20 hhhh
 
29.07.13
12:13
(5) имхо у них там целый отдел под этим ником. Когда приходит новый чел, он по-новой задает те же самые вопросы. Получается эффект, что автор ничего не помнит сегодня из того, что делал вчера.
21 viktor_vv
 
29.07.13
12:14
И в твоем варианте можно и так делать

ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформацияШирота.Представление КАК ГеографическаяШирота,
КонтактнаяИнформацияДолгота.Представление КАК ГеографическаяДолгота


ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияШирота
        ПО Контрагенты.Ссылка = КонтактнаяИнформацияШирота.Объект
        И КонтактнаяИнформацияШирота.Вид.Код = "000000036"
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияДолгота
        ПО Контрагенты.Ссылка = КонтактнаяИнформацияДолгота.Объект
        И КонтактнаяИнформацияДолгота.Вид.Код = "000000037"

ГДЕ
    Контрагенты.ОсновнойМенеджерПокупателя = &ТА
// Для условия
   И (КонтактнаяИнформацияДолгота.Объект IS NULL ИЛИ КонтактнаяИнформацияШирота.Объект IS NULL)
;
22 hhhh
 
29.07.13
12:14
день хомячка
23 viktor_vv
 
29.07.13
12:16
(21)+ И убрал бы ты нафиг эти сравнения с кодом в запросе.
24 LivingStar
 
29.07.13
12:19
(21) а ну да, это условие задает уже фильтрацию только на тех у кого нет координат в контактной информации

(23) это коды географической широты и географической долготы, у контрагнета может быть контактная информация но другая, как если не по кодам отслеживать координаты7
25 LivingStar
 
29.07.13
12:24
(21) у которых пусто объект не равен null
26 viktor_vv
 
29.07.13
12:36
(24) Я имел ввиду в запросе убери

ВидДолгота = Справочники.ВидыКонтактнойИнформации.НайтиПоКоду("000000037") ;

Запрос.УстановитьПараметр("ВидДолгота",ВидДолгота);
27 viktor_vv
 
29.07.13
12:37
(25) Это тогда еще надо проверять на заполненность представления для существующих записей.
Сейчас отбираются те у кого вообще записи в регистре нет.
28 viktor_vv
 
29.07.13
12:42
ПО Контрагенты.Ссылка = КонтактнаяИнформацияШирота.Объект
        И КонтактнаяИнформацияШирота.Вид.Код = "000000036"
        И Выразить(КонтактнаяИнформацияШирота.Представление КАК Строка(10)) <> ""
29 viktor_vv
 
29.07.13
12:42
То есть

        И Выразить(КонтактнаяИнформацияШирота.Представление КАК Строка(10)) <> """"
30 LivingStar
 
29.07.13
12:47
(27) вот по этому запросу отбираются те у которых есть координаты и те у которых нет координат, есть и те и те. Но не вижу тех для которых задается проверка с постфиксом ТТ. И не пойму в чем дело.

не все там так просто с этими условиями

ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление КАК ГеографическаяШирота,
    КонтактнаяИнформация.Объект
ПОМЕСТИТЬ ВТ_ГеографическаяШирота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
            И (КонтактнаяИнформация.Вид.Код = "000000036")
ГДЕ
    Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка,
    КонтактнаяИнформация.Представление КАК ГеографическаяДолгота,
    КонтактнаяИнформация.Объект
ПОМЕСТИТЬ ВТ_ГеографическаяДолгота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
            И (КонтактнаяИнформация.Вид.Код = "000000037")
ГДЕ
    Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ГеографическаяДолгота.Ссылка,
    ВТ_ГеографическаяШирота.ГеографическаяШирота,
    ВТ_ГеографическаяДолгота.ГеографическаяДолгота,
    ВТ_ГеографическаяДолгота.Ссылка.ОсновнойМенеджерПокупателя
ИЗ
    ВТ_ГеографическаяШирота КАК ВТ_ГеографическаяШирота
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ГеографическаяДолгота КАК ВТ_ГеографическаяДолгота
        ПО ВТ_ГеографическаяШирота.Ссылка = ВТ_ГеографическаяДолгота.Ссылка
31 viktor_vv
 
29.07.13
12:59
Ну так где в этом запросе эти твои ТТ. И в первоначальном у тебя условий на них нет, только вывод менеджера.
32 LivingStar
 
30.07.13
05:08
(31) как только на менеджера, Контрагенты.Ссылка - ТТ являются контрагентами с постфиксом ТТ, че их вообще ни одной небыло в списке не пойму, буду далее разбираться.
33 LivingStar
 
30.07.13
06:41
ВЫБРАТЬ
    Контрагенты.Ссылка,
    ЕСТЬNULL(КонтактнаяИнформация.Представление, "") КАК ГеографическаяШирота,
    КонтактнаяИнформация.Объект
ПОМЕСТИТЬ ВТ_ГеографическаяШирота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
            И (КонтактнаяИнформация.Вид.Код = "000000036")
ГДЕ
    Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Контрагенты.Ссылка,
    ЕСТЬNULL(КонтактнаяИнформация.Представление, "") КАК ГеографическаяДолгота,
    КонтактнаяИнформация.Объект
ПОМЕСТИТЬ ВТ_ГеографическаяДолгота
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
            И (КонтактнаяИнформация.Вид.Код = "000000037")
ГДЕ
    Контрагенты.ОсновнойМенеджерПокупателя = &ТА
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ГеографическаяДолгота.Ссылка,
    ВТ_ГеографическаяШирота.ГеографическаяШирота,
    ВТ_ГеографическаяДолгота.ГеографическаяДолгота,
    ВТ_ГеографическаяДолгота.Ссылка.ОсновнойМенеджерПокупателя
ИЗ
    ВТ_ГеографическаяШирота КАК ВТ_ГеографическаяШирота
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ГеографическаяДолгота КАК ВТ_ГеографическаяДолгота
        ПО ВТ_ГеографическаяШирота.Ссылка = ВТ_ГеографическаяДолгота.Ссылка
ГДЕ
    (ВЫРАЗИТЬ(ВТ_ГеографическаяДолгота.ГеографическаяДолгота КАК СТРОКА(20))) = ""
    ИЛИ (ВЫРАЗИТЬ(ВТ_ГеографическаяШирота.ГеографическаяШирота КАК СТРОКА(20))) = ""
34 LivingStar
 
01.08.13
05:14
(33) Даже этот запрос выбирал не понятно что. А конечный результат получился такой, - последний в связи участвовал регистр сведений, из которого и выбирались данные, левым соединением с контрагентом и условием на менеджера, так как он заполнен был только в регистре сведений.