Добрый день, не могу понять почему результат запроса выдаётся с дублями. Данные в РС попадают из таблицы по нескольку строк мне их нужно получить обратно, но результат дублируется у РС одно измерение.

```1c
    ВЫБРАТЬ
    | ДополнительныеСоглашения.ДополнительныеСоглашенияНомерКонтракта,
    |СУММА(
    |ВЫБОР КОГДА ДополнительныеСоглашения.ДополнительныеСоглашенияНаименование = "Да"
    |ТОГДА ДополнительныеСоглашения.ДополнительныеСоглашенияКоличество
    |ИНАЧЕ - ДополнительныеСоглашения.ДополнительныеСоглашенияКоличество
    |КОНЕЦ) КАК ДопСоглКоличество
    |ПОМЕСТИТЬ ВремТабКоличествоСучётомДопСог
    |ИЗ
    | РегистрСведений.ДополнительныеСоглашения КАК ДополнительныеСоглашения
    |СГРУППИРОВАТЬ ПО
    | ДополнительныеСоглашения.ДополнительныеСоглашенияНомерКонтракта
    |;
    |ВЫБРАТЬ
    | ВыбраныйНомерКонтракта.ВыбраныйНомерКонтрактаДляФорм,
    | Поставка.ПоставкаНомерКонтракта,
    | Поставка.ПоставкаНомерПоставки,
    | Поставка.ПоставкаНаименованиеПозиции,
    | СпецификацияКонтракта.СпецификацияКонтрактаКоличество,
    | СпецификацияКонтракта.СпецификацияКонтрактаКоличество + ВремТабКоличествоСучётомДопСог.ДопСоглКоличество КАК ДопСоглКоличество,
    | Поставка.ПоставкаОсталось,
    | Поставка.ПоставкаЦенаЗаЕд,
    | Поставка.ПоставкаСумма,
    | ВремТабКоличествоСучётомДопСог.ДополнительныеСоглашенияНомерКонтракта
    |ИЗ
    | РегистрСведений.Поставка КАК Поставка,
    | РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта,
    |ЛЕВОЕ СОЕДИНЕНИЕ
    | ВремТабКоличествоСучётомДопСог КАК ВремТабКоличествоСучётомДопСог
    |ПО
    | (СпецификацияКонтракта.СпецификацияКонтрактаНомерКонтракта = ВремТабКоличествоСучётомДопСог.ДополнительныеСоглашенияНомерКонтракта),
    | РегистрСведений.ВыбраныйНомерКонтракта КАК ВыбраныйНомерКонтракта,
    | РегистрСведений.ВыбраныйНомерПоставки КАК ВыбраныйНомерПоставки
    |ГДЕ
    | Поставка.ПоставкаНомерКонтракта = ВыбраныйНомерКонтракта.ВыбраныйНомерКонтрактаДляФорм
    |И
    | Поставка.ПоставкаНомерПоставки = ВыбраныйНомерПоставки.ВыбраныйНомерПоставкиДляФормы
```
---
Потому что в конструкторе запроса на закладке Связи надо соединить таблицы.
---
Пользуйтесь конструктором запроса, не будет вопросов.
---
чуть выше в (9) посоветовали верно, воспользуйтесь конструктором
убираете соединение, запускаете конструктор, в нем добавляете соединение, все будет без ошибок
---
Если в запросе выбираются данные из 2 и более таблиц, то надо их между собой соединить.
У вас 4 таблицы.
То есть должно быть минимум 3 соединения.
Например, 1 со 2, 1 с 3, 2 с 4.
Или 1 со 2, 2 с 3, 3 с 4.
---
то закоментив их всё так же.
Да, все также, потому что останется 2 не соединенных таблицы.
---
Вполне возможно.
Вы соединяете таблицы по номеру контракта.
В регистре сведений Поставки это ресурс, то есть в регистре может быть несколько записей с одним номером контракта.
Т.к. по одному номеру контракта может быть несколько позиций в поставке.

Это означает только то, что соединять надо по нескольким полям, а не по одному, чтобы корректно сопоставить записи одной таблицы - записям другой таблицы.
Возможно, стоит соединять еще и по измерению - Номер строки таблицы, но тут вам лучше знать, как точно идентифицировать записи одного регистра - записям другого.
---
структура РегистрСведений.СпецификацияКонтракта -?
---
| РегистрСведений.Поставка КАК Поставка,
        | РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта, - такого лучше не делать
---
А как можно без этого ?
---
```1c
    "|ИЗ
    | РегистрСведений.Поставка КАК Поставка,
    | РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта,
    .....
    | РегистрСведений.ВыбраныйНомерКонтракта КАК ВыбраныйНомерКонтракта,
    | РегистрСведений.ВыбраныйНомерПоставки КАК ВыбраныйНомерПоставки"
```

а что так можно?
вот не уверен конечно, что прямо нельзя, но вроде 8-ку клинит на таком
лучше через объединение и подзапрсы к разным регистрам по отдельности

ЗЫ пока писал, в (3) про тоже самое ответили
---
Хорошо опробую.
---
а что так можно?
Можно, в результате будет все записи со всеми.
---
Не подскажете может я чего не вижу поменял

```1c
    ВЫБРАТЬ
    ВыбраныйНомерКонтракта.ВыбраныйНомерКонтрактаДляФорм,
    Поставка.ПоставкаНомерКонтракта,
    Поставка.ПоставкаНомерПоставки,
    Поставка.ПоставкаНаименованиеПозиции,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество + ВремТабКоличествоСучётомДопСог.ДопСоглКоличество КАК ДопСоглКоличество,
    Поставка.ПоставкаОсталось,
    Поставка.ПоставкаЦенаЗаЕд,
    Поставка.ПоставкаСумма,
    ВремТабКоличествоСучётомДопСог.ДополнительныеСоглашенияНомерКонтракта
    ИЗ
    РегистрСведений.Поставка КАК Поставка,
    РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта,
    РегистрСведений.ВыбраныйНомерКонтракта КАК ВыбраныйНомерКонтракта,
    РегистрСведений.ВыбраныйНомерПоставки КАК ВыбраныйНомерПоставки,
    ЛЕВОЕ СОЕДИНЕНИЕ
    ВремТабКоличествоСучётомДопСог КАК ВремТабКоличествоСучётомДопСог
    ПО
    (СпецификацияКонтракта.СпецификацияКонтрактаНомерКонтракта = ВремТабКоличествоСучётомДопСог.ДополнительныеСоглашенияНомерКонтракта)
```

но почему при данном запросе выдаёт Поле не найдено (<<?>>СпецификацияКонтракта.СпецификацияКонтрактаНомерКонтракта = ВремТабКоличествоСучётомДопСог.ДополнительныеСоглашенияНомерКонтракта)
---
Пользуйтесь конструктором запроса, не будет вопросов.
---
вероятно потому что поля такого нет
или синтаксис неверный
---
Поле есть однозначно, синтаксис вроде нормальный.
---
чуть выше в (9) посоветовали верно, воспользуйтесь конструктором
убираете соединение, запускаете конструктор, в нем добавляете соединение, все будет без ошибок
---
Хорошо сделал я простой запрос

```1c
    ВЫБРАТЬ
    ВыбраныйНомерКонтракта.ВыбраныйНомерКонтрактаДляФорм,
    ВыбраныйНомерПоставки.ВыбраныйНомерПоставкиДляФормы,
    Поставка.ПоставкаНомерПоставки,
    Поставка.ПоставкаНомерКонтракта,
    Поставка.ПоставкаНаименованиеПозиции,
    Поставка.ПоставкаОсталось,
    Поставка.ПоставкаЦенаЗаЕд,
    Поставка.ПоставкаСумма
    ИЗ
    РегистрСведений.Поставка КАК Поставка,
    РегистрСведений.ВыбраныйНомерКонтракта КАК ВыбраныйНомерКонтракта,
    РегистрСведений.ВыбраныйНомерПоставки КАК ВыбраныйНомерПоставки,
    РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта
```

 с помощью конструктора думаю что постепенно буду в него добавлять. Но опять же да же при нём всё дублирует у меня в РС одно измерение это может быть причиной и в РС из ТЗ строки заносятся всем скопом там в одном проведении по 5 - 10 строк.
---
Потому что в конструкторе запроса на закладке Связи надо соединить таблицы.
---
Какие таблицы нужно соединить при данном запросе ?? Если вы про эти

```1c
    ВыбраныйНомерКонтракта.ВыбраныйНомерКонтрактаДляФорм,
    ВыбраныйНомерПоставки.ВыбраныйНомерПоставкиДляФормы,
```
 то закоментив их всё так же.
---
Если в запросе выбираются данные из 2 и более таблиц, то надо их между собой соединить.
У вас 4 таблицы.
То есть должно быть минимум 3 соединения.
Например, 1 со 2, 1 с 3, 2 с 4.
Или 1 со 2, 2 с 3, 3 с 4.
---
то закоментив их всё так же.
Да, все также, потому что останется 2 не соединенных таблицы.
---
С помощью конструктора создал такой запрос

```1c
    ВЫБРАТЬ
    Поставка.ПоставкаНомерПоставки,
    Поставка.ПоставкаНомерКонтракта,
    Поставка.ПоставкаНаименованиеПозиции,
    Поставка.ПоставкаОсталось,
    Поставка.ПоставкаЦенаЗаЕд,
    Поставка.ПоставкаСумма,
    СпецификацияКонтракта.СпецификацияКонтрактаНомерКонтракта,
    СпецификацияКонтракта.СпецификацияКонтрактаКоличество,
    ВыбраныйНомерПоставки.ВыбраныйНомерПоставкиДляФормы,
    ВыбраныйНомерКонтракта.ВыбраныйНомерКонтрактаДляФорм
    ИЗ
    РегистрСведений.Поставка КАК Поставка
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ВыбраныйНомерКонтракта КАК ВыбраныйНомерКонтракта
    ПО Поставка.ПоставкаНомерКонтракта = ВыбраныйНомерКонтракта.ВыбраныйНомерКонтрактаДляФорм
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ВыбраныйНомерПоставки КАК ВыбраныйНомерПоставки
    ПО Поставка.ПоставкаНомерПоставки = ВыбраныйНомерПоставки.ВыбраныйНомерПоставкиДляФормы
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СпецификацияКонтракта КАК СпецификацияКонтракта
    ПО Поставка.ПоставкаНомерКонтракта = СпецификацияКонтракта.СпецификацияКонтрактаНомерКонтракта
```

Всё ровно данные дублируются.
---
Вполне возможно.
Вы соединяете таблицы по номеру контракта.
В регистре сведений Поставки это ресурс, то есть в регистре может быть несколько записей с одним номером контракта.
Т.к. по одному номеру контракта может быть несколько позиций в поставке.

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