Привет,всем,есть такая задача вывести 2 документа,заказ покупателя и маршрутный лист,вывести необходимо только те заказы,которые включены в 2 и более документа маршрутные листы.

Мой код:

```1c
    Запрос=Новый Запрос;
    Запрос.Текст= "ВЫБРАТЬ
    | МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка,
    | МаршрутныйЛистЗаказы.Ссылка
    |АВТОУПОРЯДОЧИВАНИЕ";
```
---
Ясно, временные таблицы появились в 8.1. Тогда так:

```1c
    "ВЫБРАТЬ
    | МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник,
    | ВложенныйЗапрос.Заказ
    |ИЗ
    | (ВЫБРАТЬ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    | ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    | СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |
    | ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2) КАК ВложенныйЗапрос
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВложенныйЗапрос.Заказ = МаршрутныйЛистЗаказы.Заказ"
```
---
```1c
    ВЫБРАТЬ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МаршрутныйЛистЗаказы.Ссылка) >= 2
```

Так получишь список заказов, потом к ним цепляешь маршрутные листы и выводишь.
---
Как это понимать цепляешь?
---
Да ваш запрос вывел 2 в отчете и слева заказ покупателя,по подчиненности я вижу что задвоено,какполучить поле самого маршрутного листа вместо двойки?
---
Левым соединением)
---
с этим плохо знаком,буду пробовать,спасибо.
---
примерно так:

```1c
    |ВЫБРАТЬ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ КАК Заказ
    |ПОМЕСТИТЬ ВТ_ЗАКАЗЫ
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МаршрутныйЛистЗаказы.Ссылка) >= 2;
    |ВЫБРАТЬ
    |ВТ_ЗАКАЗЫ.Заказ КАК Заказ,
    |МаршрутныйЛистЗаказы.Ссылка КАК МаршрутныйЛист
    |ИЗ
    |ВТ_Заказы КАК ВТ_Заказы
    |ЛЕВОЕ СОЕДИНЕНИЕ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВТ_Заказы.Заказ = МаршрутныйЛистЗаказы.Заказ
```

И вот так:

```1c
    ВЫБРАТЬ МаршрутныйЛистЗаказы.Заказ.Ссылка
```

больше не делай, достаточно

```1c
    ВЫБРАТЬ МаршрутныйЛистЗаказы.Заказ
```
---
а не могли вы бв подсказать как это сделать левым соединением))
---
Пишет ошибку.
---
```1c
    "ВЫБРАТЬ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    |ПОМЕСТИТЬ ВТ_ЗАКАЗЫ
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2
    |ВЫБРАТЬ
    |ВТ_ЗАКАЗЫ.Заказ КАК Заказ,
    |МаршрутныйЛистЗаказы.Ссылка КАК МаршрутныйЛист
    |ИЗ
    |ВТ_Заказы КАК ВТ_Заказы
    |ЛЕВОЕ СОЕДИНЕНИЕ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВТ_Заказы.Заказ = МаршрутныйЛистЗаказы.Заказ";
```
---
Маршрутник и заказ это поля в макете,параметры.
---
туда передаю эти данные из запроса.
---
ну и исправь

```1c
    |ВЫБРАТЬ
    |ВТ_ЗАКАЗЫ.Заказ КАК Заказ,
    |МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник
```
---
{Форма.Форма(38)}: Ошибка при вызове метода контекста (Выполнить): {(4, 1)}: Синтаксическая ошибка "ПОМЕСТИТЬ"
<<?>>ПОМЕСТИТЬ ВТ_ЗАКАЗЫ
    Результат=Запрос.Выполнить().Выбрать();
---
Вот такую ошибку выдает.
---
|ИМЕЮЩИЕ
| КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2;

Точку с запятой не пропустил?
---
Этот запрос выдаст те заказы, количество которых 2 и более.

```1c
    ВЫБРАТЬ
    МаршрутныйЛистЗаказы.Заказ КАК Заказ,
    КОЛИЧЕСТВО(*) КАК КоличествоЗаказов
    ПОМЕСТИТЬ ВТ_КолВоЗаказов
    ИЗ
    Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    ГДЕ
    МаршрутныйЛистЗаказы.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И
    СГРУППИРОВАТЬ ПО
    МаршрутныйЛистЗаказы.Заказ
    ;
    ВЫБРАТЬ
    ВТ_КолВоЗаказов.КоличествоЗаказов,
    ВТ_КолВоЗаказов.Заказ КАК ЗАКАЗ
    ИЗ
    ВТ_КолВоЗаказов КАК ВТ_КолВоЗаказов
    ГДЕ
    ВТ_КолВоЗаказов.КоличествоЗаказов>1
```
---
Это конечно круто но что если их будет больше 5000?
---
У вас КАКАЯ задача? При чем здесь 5000 да хоть миллион - запрос сосчитает просто как у вас в задании написано - Показать Заказы , которые более 1 раза включены в маршрутники.

Что не так?
Понял - нужна ссылки на Маршрутники....
---
Пропусти,поставил,но ошибка не ушла.
---
```1c
    "ВЫБРАТЬ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    |ПОМЕСТИТЬ ВТ_ЗАКАЗЫ
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2;
    |ВЫБРАТЬ
    |ВТ_ЗАКАЗЫ.Заказ КАК Заказ,
    |МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник
    |ИЗ
    |ВТ_Заказы КАК ВТ_Заказы
    |ЛЕВОЕ СОЕДИНЕНИЕ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВТ_Заказы.Заказ = МаршрутныйЛистЗаказы.Заказ";
```

Исправленный код,все равно ругается на ошибку

{Форма.Форма(38)}: Ошибка при вызове метода контекста (Выполнить): {(4, 1)}: Синтаксическая ошибка "ПОМЕСТИТЬ"
<<?>>ПОМЕСТИТЬ ВТ_ЗАКАЗЫ
Результат=Запрос.Выполнить().Выбрать();
---
Это у тебя обработка? Скинь посмотреть. Вот прямо копирнул запрос в консоль - у меня отработал.
---
Код всей обработки ниже.
---
ВЫБРАТЬ
| КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
| МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ, <- запятую нужно убрать
| ПОМЕСТИТЬ ВТ_ЗАКАЗЫ
---
```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)

    ТабДок=Новый ТабличныйДокумент;
    Макет=ПолучитьМакет("Макет");
    ОбластьМакета=Макет.ПолучитьОбласть("Заголовок");
    ТабДок.Вывести(ОбластьМакета);
    ОбластьМакета=Макет.ПолучитьОбласть("Данные");
    ТабДок.Вывести(ОбластьМакета);

    Запрос=Новый Запрос;
    Запрос.Текст= "ВЫБРАТЬ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ,
    | ПОМЕСТИТЬ ВТ_ЗАКАЗЫ
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2;
    |ВЫБРАТЬ
    |ВТ_ЗАКАЗЫ.Заказ КАК Заказ,
    |МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник
    |ИЗ
    |ВТ_Заказы КАК ВТ_Заказы
    |ЛЕВОЕ СОЕДИНЕНИЕ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВТ_Заказы.Заказ = МаршрутныйЛистЗаказы.Заказ";

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

    Пока Результат.Следующий() Цикл
    ОбластьМакета.Параметры.Заказ=Результат.Заказ;
    ОбластьМакета.Параметры.Маршрутник=Результат.Маршрутник;
    ТабДок.Вывести(ОбластьМакета);
    КонецЦикла;
    ТабДок.ОтображатьСетку=Ложь;
    ТабДок.Показать("Отчет");
    ТабДок.ТолькоПросмотр=Истина;
    КонецПроцедуры
```
---
и еще раз повторяю:

```1c
    МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
```
 - обращение к ссылке через точку НЕ НУЖНО,
```1c
    МаршрутныйЛистЗаказы.Заказ
```
- это УЖЕ ссылка.
---
Тогда вот так выдаст и ссылку на маршрутник

```1c
    ВЫБРАТЬ
    МаршрутныйЛистЗаказы.Заказ КАК Заказ,
    КОЛИЧЕСТВО(*) КАК КоличествоЗаказов
    ПОМЕСТИТЬ ВТ_КолВоЗаказов
    ИЗ
    Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    ГДЕ
    МаршрутныйЛистЗаказы.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И
    СГРУППИРОВАТЬ ПО
    МаршрутныйЛистЗаказы.Заказ
    ;
    ВЫБРАТЬ
    ВТ_КолВоЗаказов.КоличествоЗаказов,
    ВТ_КолВоЗаказов.Заказ КАК ЗАКАЗ,
    Маршрутник.Ссылка Как Маршрутник
    ИЗ
    ВТ_КолВоЗаказов КАК ВТ_КолВоЗаказов
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛист.Заказы КАК Маршрутник
    ПО Документ.МаршрутныйЛист.Заказ=КолВоЗаказов.Заказ
    ГДЕ
    ВТ_КолВоЗаказов.КоличествоЗаказов>1
```
---
По любому проверку делай не в обработке а в консоли запросов, так быстрее получится редактировать и смотреть результат в разы
---
```1c
    "ВЫБРАТЬ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    | ПОМЕСТИТЬ ВТ_Заказы
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2;
    |ВЫБРАТЬ
    |ВТ_Заказы.Заказ КАК Заказ,
    |МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник
    |ИЗ
    |ВТ_Заказы КАК ВТ_Заказы
    |ЛЕВОЕ СОЕДИНЕНИЕ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВТ_Заказы.Заказ = МаршрутныйЛистЗаказы.Заказ";
```

Ошибка все равно выдается,я видимо не выспался)))
---
что, та же самая? Не верю ©
---
Та же самая))
---
Вот обработка.
---
Это какая-то не та обработка.
---
Может что то совсем не так делаю.
---
Простите,мой косяк .
---
Вот
---
Строки закоменчены только.
---
ну и

```1c
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    |ПОМЕСТИТЬ ВТ_Заказы
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_Заказы.Заказ КАК Заказ,
    | МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник
    |ИЗ
    | ВТ_Заказы КАК ВТ_Заказы
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВТ_Заказы.Заказ = МаршрутныйЛистЗаказы.Заказ";
```
---
```1c
    "ВЫБРАТЬ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    |ПОМЕСТИТЬ ВТ_Заказы
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2
    |;
    |////////////////////////////////////////////////
    |ВЫБРАТЬ
    |ВТ_Заказы.Заказ КАК Заказ,
    |МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник
    |ИЗ
    |ВТ_Заказы КАК ВТ_Заказы
    |ЛЕВОЕ СОЕДИНЕНИЕ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВТ_Заказы.Заказ = МаршрутныйЛистЗаказы.Заказ";
```

ЭТо наверно похоже на бред
---
Все ведь идентично почти.
---
Я уже даже вставляю ваш код,он кричит на Поместить.
---
версия платформы какая?
---
1С:Предприятие 8.0 (8.0.16.2)
---
Ясно, временные таблицы появились в 8.1. Тогда так:

```1c
    "ВЫБРАТЬ
    | МаршрутныйЛистЗаказы.Ссылка КАК Маршрутник,
    | ВложенныйЗапрос.Заказ
    |ИЗ
    | (ВЫБРАТЬ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    | ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    | СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |
    | ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(МаршрутныйЛистЗаказы.Ссылка) >= 2) КАК ВложенныйЗапрос
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    | ПО ВложенныйЗапрос.Заказ = МаршрутныйЛистЗаказы.Заказ"
```
---
Вот так
---
Вы не поверите))
---
Ошибка опять та же,только ошибку в запросе он не выдавал,он выдал ошибку уже при отладке обработки.
---
не понял)
---
все нормально,спасибо за помощь,все работает,я просто вообще то на 8.3 работаю,8.0 попросили поподдерживать,ужасно все как то))
---
я просто не обновил обработку
---
Сделай просто по-порядку ! Вначале запрос:

```1c
    ВЫБРАТЬ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МаршрутныйЛистЗаказы.Ссылка) КАК Маршрутник,
    | МаршрутныйЛистЗаказы.Заказ.Ссылка КАК Заказ
    |ИЗ
    | Документ.МаршрутныйЛист.Заказы КАК МаршрутныйЛистЗаказы
    |ГДЕ
    | МаршрутныйЛистЗаказы.Заказ.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    |
    |СГРУППИРОВАТЬ ПО
    | МаршрутныйЛистЗаказы.Заказ.Ссылка
    |ИМЕЮЩИЕ
    | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ МаршрутныйЛистЗаказы.Ссылка) >= 2
```

Затем в цикле выполни второй запрос

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