Имя: Пароль:
1C
 
Схема запроса. Противоречивая связь
0 Fuas4
 
20.01.19
06:12
Добрый день!
Пытаюсь через схему запроса добавить еще одно левое соединение. Падает с ошибкой "Противоречивая связь". Помогите разобраться
Вот так добавляю соединение:
    НовыйИсточникРезервов = ОператорВыбрать.Источники.Добавить("РегистрНакопления.ТоварыКОтгрузке.Остатки","ТоварыКОтгрузкеОстатки");
            ОсновнойИсточник.Соединения.Добавить(НовыйИсточникРезервов," ТоварыКОтгрузкеОстатки.Склад = &Склад");

Условие соединения специально упростил, чтобы уж наверняка ничего не противоречило.
Когда я такое же соединение через конструктор запросов делаю, никакой ошибки нет. ОсновнойИсточник - это справочник "Номенклатура", он внутри запроса со всеми таблицами левым соединеинем соединяется.
В конструкторе моя связь выглядит вот так и ничему не противоречит:
http://prntscr.com/m9iva4
1 Fuas4
 
20.01.19
06:46
В общем, я починил вот так:
    НовыйИсточникРезервов = ОператорВыбрать.Источники.Добавить("РегистрНакопления.ТоварыКОтгрузке.Остатки","ТоварыКОтгрузкеОстатки");
            НовыйИсточникРезервов.Соединения.Добавить(ОсновнойИсточник,"ТоварыКОтгрузкеОстатки.Склад = &Склад и СправочникНоменклатура.Ссылка=ТоварыКОтгрузкеОстатки.Номенклатура");
            Для каждого стрСоед из НовыйИсточникРезервов.Соединения Цикл
                стрСоед.ТипСоединения = ТипСоединенияСхемыЗапроса.ПравоеВнешнее;    
            КонецЦикла;

Т.е. я вместо левого соединения справочника с регистром сделал левое соединение регистра со справочником, схема такое соединение приняла, а после этого я поменял левое соединение на правое и все замечательно отработало.
ХЗ как так
2 Fuas4
 
20.01.19
08:55
И еще дополню, вдруг кто загуглит ошибку: судя по всему, в некоторых случаях при добавлении источника связь создается автоматически. И потом, когда свою связь добавляешь, она противоречит той, которую 1С сама придумала твоему источнику. Так бывает не всегда, но когда случается - надо эту связь находить и удалять перед добавлением своей связи
3 Лефмихалыч
 
20.01.19
09:43
"противоречивая связь" на русский переводится "задай уникальные псевдонимы таблицам"
4 Fuas4
 
20.01.19
10:52
(3) не, с этим все ок, я проверял же через конструктор запроса
5 Лефмихалыч
 
20.01.19
12:06
(4) ты на скрине показываешь не тот запрос, на который у тебя 1С ругается. В запросе на скрине всё однозначно
6 Конструктор1С
 
20.01.19
12:08
Запрос-то злостный. Нужно переписать на временные таблицы
7 Fuas4
 
20.01.19
13:56
(6) Так то типовой, из обработки "ПодборТоваровВДокументПродажи" из УТ 11.4 :) Я только одну таблицу добавляю через расширение. Переписывать этот запрос на ВТ - дело не благодарное
8 Fuas4
 
20.01.19
13:57
(5) один в один запросы
9 Конструктор1С
 
21.01.19
08:36
(7) ладно. Напиши им, пускай следуют своим же стандартам