Имя: Пароль:
1C
1С v8
Пустой результат запроса
0 Gossar1C
 
10.11.14
13:48
Добрый день! Подскажите пожалуйста, где в моем запросе ошибка? Возникла необходимость создать доп. реквизиты у контрагента, теперь пытаюсь получить их значение, результат запроса пустой...

УТ 11.1.6

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


Заранее благодарю!
1 vicof
 
10.11.14
13:49
Во внутреннем соединении
2 Cube
 
10.11.14
13:49
(0) Вот эти условия

    |    И КонтактныеЛицаПартнеров.РолиКонтактногоЛица.РольКонтактногоЛица.Наименование = &Роль
    |    И ДанныеПООГРН.Свойство.Наименование = &НаименованиеОГРН
    |    И ДанныеПООКВЭД.Свойство.Наименование = &НаименованиеОКВЭД

перенеси на вкладку "Связи".
3 Gossar1C
 
10.11.14
13:50
(1) да нет, тут в другом... только сейчас допер что ДополнительныеСведения регистр пустой. Тогда напрашивается вопрос, где УТ хранит значение доп. реквизитов?
4 Gossar1C
 
10.11.14
13:51
(2) Ну связь то вроде бы правильно устанавливается по ссылочному типу, зачем мне там свойства?
5 vicof
 
10.11.14
13:52
(4) потому что тогда наступает (1)
6 vicof
 
10.11.14
13:52
(4) можешь профайлер глянуть
7 Cube
 
10.11.14
13:54
(4) Сначала объединяются таблицы по условиям, что ты указал, потом накладываются условия из конструкции ГДЕ.
Соответственно, если у тебя любое из условий не выполняется - результат запроса пуст.
8 Cube
 
10.11.14
13:55
+(7) "если у тебя любое из условий" = "если у тебя любое из условий конструкции ГДЕ"
9 Gossar1C
 
10.11.14
13:58
(7) условия выполнялись до того как я добавил доп. реквизиты, даже если перенесу, суть не меняется) Регистр то пустой
10 Cube
 
10.11.14
13:59
(9) А ты сделай и удивись.
11 vicof
 
10.11.14
13:59
(9) Читай еще раз всю ветку до полного просветления, особенно (7)
12 Gossar1C
 
10.11.14
14:00
|ИЗ
    |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
    |        ПО ДоговорыКонтрагентов.Партнер = КонтактныеЛицаПартнеров.Владелец
    |            И (КонтактныеЛицаПартнеров.РолиКонтактногоЛица.РольКонтактногоЛица.Наименование = &Роль)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДанныеПООГРН
    |        ПО ДоговорыКонтрагентов.Контрагент = ДанныеПООГРН.Объект
    |            И (ДанныеПООГРН.Свойство.Наименование = &НаименованиеОГРН)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДанныеПООКВЭД
    |        ПО ДоговорыКонтрагентов.Контрагент = ДанныеПООКВЭД.Объект
    |            И (ДанныеПООКВЭД.Свойство.Наименование = &НаименованиеОКВЭД)
13 Gossar1C
 
10.11.14
14:00
щас попробую
14 vicof
 
10.11.14
14:02
ну и по наименованию сравнивать как-то тухловато
15 Gossar1C
 
10.11.14
14:04
(14) ты имеешь ввиду свойство? или РольКонтактногоЛица?

Запрос невозможно исполнить
В условиях соединения запроса не допускается обращение к табличным частям. (1)

Вот что выдало... я так понимаю Условие связи у контактного лица лишнее?
16 vicof
 
10.11.14
14:06
(15) и свойства, и роль.
показывай свою писанину
17 Gossar1C
 
10.11.14
14:07
ВАХ, запрос не пустой... вот только ОГРН и ОКВЭД как не было так и нету)

"ВЫБРАТЬ
    |    ДоговорыКонтрагентов.Ссылка,
    |    ДоговорыКонтрагентов.Код,
    |    ДоговорыКонтрагентов.Дата,
    |    ДоговорыКонтрагентов.Партнер КАК Партнер,
    |    ДоговорыКонтрагентов.Соглашение КАК Соглашение,
    |    КонтактныеЛицаПартнеров.Наименование КАК КонтактноеЛицоПартнера,
    |    ДоговорыКонтрагентов.Контрагент КАК КонтрагентДляПоиска,
    |    ДоговорыКонтрагентов.БанковскийСчетКонтрагента.НомерСчета КАК РСПокупателя,
    |    ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.Наименование КАК ВПокупателя,
    |    ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.Код КАК БИКПокупателя,
    |    ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.КоррСчет КАК КСПокупателя,
    |    ДоговорыКонтрагентов.Контрагент.ОГРН КАК ОГРНКонтрагента,
    |    ДоговорыКонтрагентов.Контрагент.ОКВЭД КАК ОКВЭДКонтрагента,
    |    ДоговорыКонтрагентов.Организация КАК Организация,
    |    ДанныеПООГРН.Значение КАК ОГРН,
    |    ДанныеПООКВЭД.Значение КАК ОКВЭД
    |ИЗ
    |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
    |        ПО ДоговорыКонтрагентов.Партнер = КонтактныеЛицаПартнеров.Владелец
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДанныеПООГРН
    |        ПО ДоговорыКонтрагентов.Контрагент = ДанныеПООГРН.Объект
    |            И (ДанныеПООГРН.Свойство.Наименование = &НаименованиеОГРН)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДанныеПООКВЭД
    |        ПО ДоговорыКонтрагентов.Контрагент = ДанныеПООКВЭД.Объект
    |            И (ДанныеПООКВЭД.Свойство.Наименование = &НаименованиеОКВЭД)
    |ГДЕ
    |    ДоговорыКонтрагентов.Ссылка В(&Ссылка)
    |    И КонтактныеЛицаПартнеров.РолиКонтактногоЛица.РольКонтактногоЛица.Наименование = &Роль";
18 Gossar1C
 
10.11.14
14:08
а может быть действительно потому что ДополнительныеСведения не содержит никаких записей?)
19 vicof
 
10.11.14
14:09
"И КонтактныеЛицаПартнеров.РолиКонтактногоЛица.РольКонтактногоЛица.Наименование = &Роль"
мама мия...советую роли в отдельную временную таблицу прочитать.
20 0xFFFFFF
 
10.11.14
14:10
(14) Да ты чо... Соединение двух таблиц по наименованию через три точки - выбор бесстрашных одинэсников. Для нормальных пацанов.
21 Gossar1C
 
10.11.14
14:50
ВСем спасибо решил...

"ВЫБРАТЬ
    |    ДоговорыКонтрагентов.Ссылка,
    |    ДоговорыКонтрагентов.Код,
    |    ДоговорыКонтрагентов.Дата,
    |    ДоговорыКонтрагентов.Партнер КАК Партнер,
    |    ДоговорыКонтрагентов.Соглашение КАК Соглашение,
    |    КонтактныеЛицаПартнеров.Наименование КАК КонтактноеЛицоПартнера,
    |    ДоговорыКонтрагентов.Контрагент КАК КонтрагентДляПоиска,
    |    ДоговорыКонтрагентов.БанковскийСчетКонтрагента.НомерСчета КАК РСПокупателя,
    |    ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.Наименование КАК ВПокупателя,
    |    ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.Код КАК БИКПокупателя,
    |    ДоговорыКонтрагентов.БанковскийСчетКонтрагента.Банк.КоррСчет КАК КСПокупателя,
    |    ДоговорыКонтрагентов.Организация КАК Организация,
    |    ДопДанныеПоОГРН.Значение КАК ОГРН,
    |    ДопДанныеПоОКВЭД.Значение КАК ОКВЭД
    |ИЗ
    |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
    |        ПО ДоговорыКонтрагентов.Партнер = КонтактныеЛицаПартнеров.Владелец
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.ДополнительныеРеквизиты КАК ДопДанныеПоОГРН
    |        ПО ДоговорыКонтрагентов.Контрагент = ДопДанныеПоОГРН.Ссылка
    |           И (ДопДанныеПоОГРН.Свойство = &НаименованиеОГРН)
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.ДополнительныеРеквизиты КАК ДопДанныеПоОКВЭД
    |        ПО ДоговорыКонтрагентов.Контрагент = ДопДанныеПоОКВЭД.Ссылка
    |           И (ДопДанныеПоОКВЭД.Свойство = &НаименованиеОКВЭД)
    |ГДЕ
    |    ДоговорыКонтрагентов.Ссылка В(&Ссылка)
    |    И КонтактныеЛицаПартнеров.РолиКонтактногоЛица.РольКонтактногоЛица.Наименование = &Роль";
    
    
    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    Запрос.УстановитьПараметр("Роль","Генеральный директор");
    Запрос.УстановитьПараметр("НаименованиеОГРН",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ОГРН"));
    Запрос.УстановитьПараметр("НаименованиеОКВЭД",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ОКВЭД"));
22 Gossar1C
 
10.11.14
14:51
vicof, спасибо в особенности) действительно надо было по ссылочному типу искать
23 vicof
 
10.11.14
15:17
(22) мда...а три точки из запроса убирать собираешься?
24 Enders
 
10.11.14
15:26
(23) "Засем ругаешьси, насяльника? Через 5 точек писаль - не работает, через 4 точки писаль - не работает, через 3 точки написаль - работает" (с)
25 yukon
 
10.11.14
15:36
(21)
> ВСем спасибо решил...
..
> Запрос.УстановитьПараметр("НаименованиеОГРН",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ОГРН"));
> Запрос.УстановитьПараметр("НаименованиеОКВЭД",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ОКВЭД"));

https://www.google.ru/search?q=дорогая+я+все+починил
26 Cube
 
11.11.14
04:47
(21) "ВСем спасибо решил
...
И КонтактныеЛицаПартнеров.РолиКонтактногоЛица.РольКонтактногоЛица.Наименование = &Роль
...
Запрос.УстановитьПараметр("Роль","Генеральный директор");
Запрос.УстановитьПараметр("НаименованиеОГРН",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("ОГРН"));"

Расстрелять!