Здравствуйте! УТ 11.5.
Нужна помощь. Есть список заказов клиентов, формируется произвольным запросом. Есть необходимость при наличии связанного документа Заказа поставщику выводить определенное состояние. Проблема в том что при подключении связи заказов поставщику список открывается по 10 минут. Какую хитрость можно применить чтобы обойтись малой кровью? Делаю в расширении.
Сам запрос:
Динамический список заказы клиентовВЫБРАТЬ РАЗЛИЧНЫЕ
 ЗаказКлиента.Ссылка КАК Заказ
ПОМЕСТИТЬ ВТ_ЗП
ИЗ
 Документ.ЗаказКлиента КАК ЗаказКлиента
  ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
  ПО (ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ЗаказПоставщику.ДокументОснование) = ТИП(Документ.ЗаказКлиента)
     ТОГДА ЗаказПоставщику.ДокументОснование = ЗаказКлиента.Ссылка
   КОНЕЦ)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
 ДокументЗаказКлиента.Ссылка КАК Ссылка,
 ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
 ДокументЗаказКлиента.Номер КАК Номер,
 ДокументЗаказКлиента.Дата КАК Дата,
 ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
 ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
 ДокументЗаказКлиента.Проведен КАК Проведен,
 ДокументЗаказКлиента.Приоритет КАК Приоритет,
 ДокументЗаказКлиента.Партнер КАК Партнер,
 ДокументЗаказКлиента.Контрагент КАК Контрагент,
 ДокументЗаказКлиента.Организация КАК Организация,
 ДокументЗаказКлиента.Соглашение КАК Соглашение,
 ДокументЗаказКлиента.Договор КАК Договор,
 ДокументЗаказКлиента.Сделка КАК Сделка,
 ДокументЗаказКлиента.Валюта КАК Валюта,
 ДокументЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
 ДокументЗаказКлиента.СуммаВозвратнойТары КАК СуммаВозвратнойТары,
 ДокументЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
 ДокументЗаказКлиента.Склад КАК Склад,
 ДокументЗаказКлиента.Статус КАК Статус,
 ДокументЗаказКлиента.Менеджер КАК Менеджер,
 ДокументЗаказКлиента.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
 ДокументЗаказКлиента.СуммаАвансаДоОбеспечения КАК СуммаАвансаДоОбеспечения,
 ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки КАК СуммаПредоплатыДоОтгрузки,
 ДокументЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
 ДокументЗаказКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
 ДокументЗаказКлиента.ПорядокРасчетов КАК ПорядокРасчетов,
 ДокументЗаказКлиента.Комментарий КАК Комментарий,
 ВЫБОР
  КОГДА НЕ ДокументЗаказКлиента.Проведен
   ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка)
  КОГДА ДокументЗаказКлиента.Ссылка В
    (ВЫБРАТЬ
     ВТ_ЗП.Заказ
    ИЗ
     ВТ_ЗП)
   ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Заказан)
  ИНАЧЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт))
 КОНЕЦ КАК Состояние,
 ВЫБОР
  КОГДА НЕ ДокументЗаказКлиента.Проведен
   ТОГДА ЛОЖЬ
  КОГДА СостоянияЗаказовКлиентов.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
    И &ДатаАктуальности > СостоянияЗаказовКлиентов.ДатаСобытия
   ТОГДА ИСТИНА
  ИНАЧЕ ЛОЖЬ
 КОНЕЦ КАК Просрочен,
 ВЫБОР
  КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
     Приоритеты.Ссылка КАК Приоритет
    ИЗ
     Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
     Приоритеты.РеквизитДопУпорядочивания)
   ТОГДА 0
  КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
     Приоритеты.Ссылка КАК Приоритет
    ИЗ
     Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
     Приоритеты.РеквизитДопУпорядочивания УБЫВ)
   ТОГДА 2
  ИНАЧЕ 1
 КОНЕЦ КАК КартинкаПриоритета,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
 ВЫБОР
  КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) < 0
   ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
  ИНАЧЕ 0
 КОНЕЦ КАК НашДолг,
 ВЫБОР
  КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) > 0
   ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
  ИНАЧЕ 0
 КОНЕЦ КАК ДолгКлиента,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
 СостоянияЭД.СостояниеЭДО КАК СостояниеЭДО,
 СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
 ДокументЗаказКлиента.Автор КАК Автор,
 &ДополнительныеПоляСостояниеEDI КАК ДополнительныеПоляСостояниеEDI
ИЗ
 Документ.ЗаказКлиента КАК ДокументЗаказКлиента
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
  ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
  {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
  ПО (СостоянияЭД.СсылкаНаОбъект = ДокументЗаказКлиента.Ссылка)}
  ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ЗП КАК ВТ_ЗП
  ПО (ВТ_ЗП.Заказ = ДокументЗаказКлиента.Ссылка)
---
Нужно отдельное внимание оказывать на связи. Вот твой запрос...

```1c
    ВЫБРАТЬ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
    ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
    ДокументЗаказКлиента.Проведен КАК Проведен,
    ДокументЗаказКлиента.Приоритет КАК Приоритет,
    ДокументЗаказКлиента.Партнер КАК Партнер,
    ДокументЗаказКлиента.Контрагент КАК Контрагент,
    ДокументЗаказКлиента.Организация КАК Организация,
    ДокументЗаказКлиента.Соглашение КАК Соглашение,
    ДокументЗаказКлиента.Договор КАК Договор,
    ДокументЗаказКлиента.Сделка КАК Сделка,
    ДокументЗаказКлиента.Валюта КАК Валюта,
    ДокументЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
    ДокументЗаказКлиента.СуммаВозвратнойТары КАК СуммаВозвратнойТары,
    ДокументЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
    ДокументЗаказКлиента.Склад КАК Склад,
    ДокументЗаказКлиента.Статус КАК Статус,
    ДокументЗаказКлиента.Менеджер КАК Менеджер,
    ДокументЗаказКлиента.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
    ДокументЗаказКлиента.СуммаАвансаДоОбеспечения КАК СуммаАвансаДоОбеспечения,
    ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки КАК СуммаПредоплатыДоОтгрузки,
    ДокументЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
    ДокументЗаказКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
    ДокументЗаказКлиента.ПорядокРасчетов КАК ПорядокРасчетов,
    ДокументЗаказКлиента.Комментарий КАК Комментарий,
    ВЫБОР
    КОГДА НЕ ДокументЗаказКлиента.Проведен
    ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка)
    КОГДА Таб_ЗКЗП.ЕстьЗаказПоставщику
    ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Заказан)
    ИНАЧЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт))
    КОНЕЦ КАК Состояние,
    ВЫБОР
    КОГДА НЕ ДокументЗаказКлиента.Проведен
    ТОГДА ЛОЖЬ
    КОГДА СостоянияЗаказовКлиентов.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
    И &ДатаАктуальности > СостоянияЗаказовКлиентов.ДатаСобытия
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Просрочен,
    ВЫБОР
    КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
    Приоритеты.Ссылка КАК Приоритет
    ИЗ
    Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
    Приоритеты.РеквизитДопУпорядочивания)
    ТОГДА 0
    КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
    Приоритеты.Ссылка КАК Приоритет
    ИЗ
    Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
    Приоритеты.РеквизитДопУпорядочивания УБЫВ)
    ТОГДА 2
    ИНАЧЕ 1
    КОНЕЦ КАК КартинкаПриоритета,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
    ВЫБОР
    КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) < 0
    ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
    ИНАЧЕ 0
    КОНЕЦ КАК НашДолг,
    ВЫБОР
    КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) > 0
    ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
    ИНАЧЕ 0
    КОНЕЦ КАК ДолгКлиента,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
    СостоянияЭД.СостояниеЭДО КАК СостояниеЭДО,
    СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
    ДокументЗаказКлиента.Автор КАК Автор,
    &ДополнительныеПоляСостояниеEDI КАК ДополнительныеПоляСостояниеEDI
    ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
    ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
    ПО (СостоянияЭД.СсылкаНаОбъект = ДокументЗаказКлиента.Ссылка)}
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЗаказыКлиентов.Ссылка КАК Ссылка,
    НЕ ЗаказыПоставщикам.Ссылка ЕСТЬ NULL КАК ЕстьЗаказПоставщику
    ИЗ
    Документ.ЗаказКлиента КАК ЗаказыКлиентов
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказыПоставщикам
    ПО ЗаказыКлиентов.Ссылка = ЗаказыПоставщикам.ДокументОснование) КАК Таб_ЗКЗП
    ПО ДокументЗаказКлиента.Ссылка = Таб_ЗКЗП.Ссылка
```
---
Святая корова.....
Если на каждый заказ клиента может быть не больше одного заказа поставщику:

```1c
    Выбрать
    Т1.Ссылка,
    НЕ Т2.Ссылка ЕСТЬ NULL КАК ЕстьЗаказПоставщику
    ИЗ
    Документ.ЗаказКлиента КАК Т1
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК Т2
    ПО Т1.Ссылка = Т2.ДокументОснование
```

Если будет несколько заказов поставщику, то необходимо определять один из них и выводить в конечном результате
---
То есть основную таблицу тоже виртуальной сделать далее уже сделать отдельную основную чтобы 2 виртуальные соединить?
---
не нужно ничего делать. Основную таблицу заказов клиентов соединить левым соединение с таблицей заказов поставщику
---
Сделал вот так, но теперь на ссылку ругается, нужно вложенный запрос делать по ссылке на заказ клиента, но думаю работать будет не быстрее...
ЗапросВЫБРАТЬ
 ДокументЗаказКлиента.Ссылка КАК Ссылка,
 ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
 ДокументЗаказКлиента.Номер КАК Номер,
 ДокументЗаказКлиента.Дата КАК Дата,
 ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
 ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
 ДокументЗаказКлиента.Проведен КАК Проведен,
 ДокументЗаказКлиента.Приоритет КАК Приоритет,
 ДокументЗаказКлиента.Партнер КАК Партнер,
 ДокументЗаказКлиента.Контрагент КАК Контрагент,
 ДокументЗаказКлиента.Организация КАК Организация,
 ДокументЗаказКлиента.Соглашение КАК Соглашение,
 ДокументЗаказКлиента.Договор КАК Договор,
 ДокументЗаказКлиента.Сделка КАК Сделка,
 ДокументЗаказКлиента.Валюта КАК Валюта,
 ДокументЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
 ДокументЗаказКлиента.СуммаВозвратнойТары КАК СуммаВозвратнойТары,
 ДокументЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
 ДокументЗаказКлиента.Склад КАК Склад,
 ДокументЗаказКлиента.Статус КАК Статус,
 ДокументЗаказКлиента.Менеджер КАК Менеджер,
 ДокументЗаказКлиента.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
 ДокументЗаказКлиента.СуммаАвансаДоОбеспечения КАК СуммаАвансаДоОбеспечения,
 ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки КАК СуммаПредоплатыДоОтгрузки,
 ДокументЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
 ДокументЗаказКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
 ДокументЗаказКлиента.ПорядокРасчетов КАК ПорядокРасчетов,
 ДокументЗаказКлиента.Комментарий КАК Комментарий,
 ВЫБОР
  КОГДА НЕ ДокументЗаказКлиента.Проведен
   ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка)
  КОГДА НЕ ДокументЗаказКлиента.Ссылка ЕСТЬ NULL //Определяю наличие ссылки
   ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Заказан)
  ИНАЧЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт))
 КОНЕЦ КАК Состояние,
 ВЫБОР
  КОГДА НЕ ДокументЗаказКлиента.Проведен
   ТОГДА ЛОЖЬ
  КОГДА СостоянияЗаказовКлиентов.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
    И &ДатаАктуальности > СостоянияЗаказовКлиентов.ДатаСобытия
   ТОГДА ИСТИНА
  ИНАЧЕ ЛОЖЬ
 КОНЕЦ КАК Просрочен,
 ВЫБОР
  КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
     Приоритеты.Ссылка КАК Приоритет
    ИЗ
     Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
     Приоритеты.РеквизитДопУпорядочивания)
   ТОГДА 0
  КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
     Приоритеты.Ссылка КАК Приоритет
    ИЗ
     Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
     Приоритеты.РеквизитДопУпорядочивания УБЫВ)
   ТОГДА 2
  ИНАЧЕ 1
 КОНЕЦ КАК КартинкаПриоритета,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
 ВЫБОР
  КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) < 0
   ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
  ИНАЧЕ 0
 КОНЕЦ КАК НашДолг,
 ВЫБОР
  КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) > 0
   ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
  ИНАЧЕ 0
 КОНЕЦ КАК ДолгКлиента,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
 СостоянияЭД.СостояниеЭДО КАК СостояниеЭДО,
 СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
 ДокументЗаказКлиента.Автор КАК Автор,
 &ДополнительныеПоляСостояниеEDI КАК ДополнительныеПоляСостояниеEDI
ИЗ
 Документ.ЗаказКлиента КАК ДокументЗаказКлиента
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
  ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
  {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
  ПО (СостоянияЭД.СсылкаНаОбъект = ДокументЗаказКлиента.Ссылка)}
  ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
  ПО (ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ЗаказПоставщику.ДокументОснование) = ТИП(Документ.ЗаказКлиента) //Думаю ругается на ссылку из этой связи
     ТОГДА ЗаказПоставщику.ДокументОснование = ДокументЗаказКлиента.Ссылка
   КОНЕЦ)
---
нет, ругается из-за того, что существуют несколько заказов поставщику на один заказ клиента
Лечится построением 2-х вложенных запросов, но производительность заметно снизится.

```1c
    Выбрать
    Т1.Ссылка,
    НЕ Т2.Ссылка ЕСТЬ NULL КАК ЕстьЗаказПоставщику
    ИЗ
    Документ.ЗаказКлиента КАК Т1
    ЛЕВОЕ СОЕДИНЕНИЕ (
    ВЫБРАТЬ
    Т2.Ссылка,
    Т2.ДокументОснование
    ИЗ
    (ВЫБРАТЬ
    МАКСИМУМ(Номер) КАК Номер,
    ДокументОснование,
    ИЗ
    Документ.ЗаказПоставщику
    СГРУППИРОВАТЬ ПО
    ДокументОснование) КАК Т1
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК Т2
    ПО Т1.Номер = Т2.Номер
    И Т1.ДокументОснование = Т2.ДокументОснование) КАК Т2
    ПО Т1.Ссылка = Т2.ДокументОснование
```

Запрос накидал "на коленке", отладка строго обязательна
---
Может применить "Различные" Мне же по сути нужно найти список различных ссылок чтобы проставить нужное состояние
Сделал вот так но работает очень долго...
Запрос с внутренней таблицейВЫБРАТЬ
 ДокументЗаказКлиента.Ссылка КАК Ссылка,
 ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
 ДокументЗаказКлиента.Номер КАК Номер,
 ДокументЗаказКлиента.Дата КАК Дата,
 ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
 ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
 ДокументЗаказКлиента.Проведен КАК Проведен,
 ДокументЗаказКлиента.Приоритет КАК Приоритет,
 ДокументЗаказКлиента.Партнер КАК Партнер,
 ДокументЗаказКлиента.Контрагент КАК Контрагент,
 ДокументЗаказКлиента.Организация КАК Организация,
 ДокументЗаказКлиента.Соглашение КАК Соглашение,
 ДокументЗаказКлиента.Договор КАК Договор,
 ДокументЗаказКлиента.Сделка КАК Сделка,
 ДокументЗаказКлиента.Валюта КАК Валюта,
 ДокументЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
 ДокументЗаказКлиента.СуммаВозвратнойТары КАК СуммаВозвратнойТары,
 ДокументЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
 ДокументЗаказКлиента.Склад КАК Склад,
 ДокументЗаказКлиента.Статус КАК Статус,
 ДокументЗаказКлиента.Менеджер КАК Менеджер,
 ДокументЗаказКлиента.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
 ДокументЗаказКлиента.СуммаАвансаДоОбеспечения КАК СуммаАвансаДоОбеспечения,
 ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки КАК СуммаПредоплатыДоОтгрузки,
 ДокументЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
 ДокументЗаказКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
 ДокументЗаказКлиента.ПорядокРасчетов КАК ПорядокРасчетов,
 ДокументЗаказКлиента.Комментарий КАК Комментарий,
 ВЫБОР
  КОГДА НЕ ДокументЗаказКлиента.Проведен
   ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка)

  КОГДА ЗаказыВлож.ЕстьЗаказПоставщику //Вот тут проверяю есть ЗП или нет
   ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Заказан)

  ИНАЧЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт))
 КОНЕЦ КАК Состояние,
 ВЫБОР
  КОГДА НЕ ДокументЗаказКлиента.Проведен
   ТОГДА ЛОЖЬ
  КОГДА СостоянияЗаказовКлиентов.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
    И &ДатаАктуальности > СостоянияЗаказовКлиентов.ДатаСобытия
   ТОГДА ИСТИНА
  ИНАЧЕ ЛОЖЬ
 КОНЕЦ КАК Просрочен,
 ВЫБОР
  КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
     Приоритеты.Ссылка КАК Приоритет
    ИЗ
     Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
     Приоритеты.РеквизитДопУпорядочивания)
   ТОГДА 0
  КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
     Приоритеты.Ссылка КАК Приоритет
    ИЗ
     Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
     Приоритеты.РеквизитДопУпорядочивания УБЫВ)
   ТОГДА 2
  ИНАЧЕ 1
 КОНЕЦ КАК КартинкаПриоритета,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
 ВЫБОР
  КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) < 0
   ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
  ИНАЧЕ 0
 КОНЕЦ КАК НашДолг,
 ВЫБОР
  КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) > 0
   ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
  ИНАЧЕ 0
 КОНЕЦ КАК ДолгКлиента,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
 ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
 СостоянияЭД.СостояниеЭДО КАК СостояниеЭДО,
 СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
 ДокументЗаказКлиента.Автор КАК Автор,
 &ДополнительныеПоляСостояниеEDI КАК ДополнительныеПоляСостояниеEDI
ИЗ
 Документ.ЗаказКлиента КАК ДокументЗаказКлиента
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
  ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
  {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
  ПО (СостоянияЭД.СсылкаНаОбъект = ДокументЗаказКлиента.Ссылка)}
  ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
   Т1.Ссылка КАК Ссылка,
   НЕ Т2.Ссылка ЕСТЬ NULL КАК ЕстьЗаказПоставщику
  ИЗ
   Документ.ЗаказКлиента КАК Т1
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК Т2
    ПО (ВЫБОР
      КОГДА ТИПЗНАЧЕНИЯ(Т2.ДокументОснование) = ТИП(Документ.ЗаказКлиента)
       ТОГДА Т2.ДокументОснование = Т1.Ссылка
     КОНЕЦ)) КАК ЗаказыВлож
//Соединяю по ссылке на заказ клиента
  ПО (ЗаказыВлож.Ссылка = ДокументЗаказКлиента.Ссылка)
---
В данном случае РАЗЛИЧНЫЕ не поможет, т.к. несколько заказов поставщику по одному заказу клиента и так различны
---
Вот посмотрите выше, во внутренней таблице я выбираю по вашей наводке Есть заказ поставщику или нет, далее соединяю эту вложенную таблицу по ссылке на сам заказ основной таблицы, если Истина то состояние "Заказан" Если ложь то иное, но этот запрос не оптимизирован, он работает очень медленно и сжирает кучу памяти, голову сломал уже...
---
Нужно отдельное внимание оказывать на связи. Вот твой запрос...

```1c
    ВЫБРАТЬ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
    ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
    ДокументЗаказКлиента.Проведен КАК Проведен,
    ДокументЗаказКлиента.Приоритет КАК Приоритет,
    ДокументЗаказКлиента.Партнер КАК Партнер,
    ДокументЗаказКлиента.Контрагент КАК Контрагент,
    ДокументЗаказКлиента.Организация КАК Организация,
    ДокументЗаказКлиента.Соглашение КАК Соглашение,
    ДокументЗаказКлиента.Договор КАК Договор,
    ДокументЗаказКлиента.Сделка КАК Сделка,
    ДокументЗаказКлиента.Валюта КАК Валюта,
    ДокументЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
    ДокументЗаказКлиента.СуммаВозвратнойТары КАК СуммаВозвратнойТары,
    ДокументЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
    ДокументЗаказКлиента.Склад КАК Склад,
    ДокументЗаказКлиента.Статус КАК Статус,
    ДокументЗаказКлиента.Менеджер КАК Менеджер,
    ДокументЗаказКлиента.ДополнительнаяИнформация КАК ДополнительнаяИнформация,
    ДокументЗаказКлиента.СуммаАвансаДоОбеспечения КАК СуммаАвансаДоОбеспечения,
    ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки КАК СуммаПредоплатыДоОтгрузки,
    ДокументЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
    ДокументЗаказКлиента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
    ДокументЗаказКлиента.ПорядокРасчетов КАК ПорядокРасчетов,
    ДокументЗаказКлиента.Комментарий КАК Комментарий,
    ВЫБОР
    КОГДА НЕ ДокументЗаказКлиента.Проведен
    ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка)
    КОГДА Таб_ЗКЗП.ЕстьЗаказПоставщику
    ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Заказан)
    ИНАЧЕ ЕСТЬNULL(СостоянияЗаказовКлиентов.Состояние, ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт))
    КОНЕЦ КАК Состояние,
    ВЫБОР
    КОГДА НЕ ДокументЗаказКлиента.Проведен
    ТОГДА ЛОЖЬ
    КОГДА СостоянияЗаказовКлиентов.ДатаСобытия <> ДАТАВРЕМЯ(1, 1, 1)
    И &ДатаАктуальности > СостоянияЗаказовКлиентов.ДатаСобытия
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Просрочен,
    ВЫБОР
    КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
    Приоритеты.Ссылка КАК Приоритет
    ИЗ
    Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
    Приоритеты.РеквизитДопУпорядочивания)
    ТОГДА 0
    КОГДА ДокументЗаказКлиента.Приоритет В
    (ВЫБРАТЬ ПЕРВЫЕ 1
    Приоритеты.Ссылка КАК Приоритет
    ИЗ
    Справочник.Приоритеты КАК Приоритеты
    УПОРЯДОЧИТЬ ПО
    Приоритеты.РеквизитДопУпорядочивания УБЫВ)
    ТОГДА 2
    ИНАЧЕ 1
    КОНЕЦ КАК КартинкаПриоритета,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
    ВЫБОР
    КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) < 0
    ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
    ИНАЧЕ 0
    КОНЕЦ КАК НашДолг,
    ВЫБОР
    КОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0) > 0
    ТОГДА ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаДолга, 0)
    ИНАЧЕ 0
    КОНЕЦ КАК ДолгКлиента,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
    СостоянияЭД.СостояниеЭДО КАК СостояниеЭДО,
    СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
    ДокументЗаказКлиента.Автор КАК Автор,
    &ДополнительныеПоляСостояниеEDI КАК ДополнительныеПоляСостояниеEDI
    ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
    ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
    ПО (СостоянияЭД.СсылкаНаОбъект = ДокументЗаказКлиента.Ссылка)}
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЗаказыКлиентов.Ссылка КАК Ссылка,
    НЕ ЗаказыПоставщикам.Ссылка ЕСТЬ NULL КАК ЕстьЗаказПоставщику
    ИЗ
    Документ.ЗаказКлиента КАК ЗаказыКлиентов
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказыПоставщикам
    ПО ЗаказыКлиентов.Ссылка = ЗаказыПоставщикам.ДокументОснование) КАК Таб_ЗКЗП
    ПО ДокументЗаказКлиента.Ссылка = Таб_ЗКЗП.Ссылка
```
---
Спасибо Вам! Век живи, век учись...
---
Если связь документов не 1:1, то лучше через вложенный запрос (вроде бы СУБД оптимизирует вложенные запросы).
---
Можно попросить вас пример на основании моего запроса прислать?
---
в текущих условиях - по другому никак, т.к. заказ клиента и заказ поставщику - это связь 1-много в общем случае.

есть другой путь: создать периодический подчиненный РС и в него записывать заказы поставщикам, сформированные на основании заказов клиентов, получать срез последних по заказу клиента
---
Это первое решение которое я хотел реализовать, но увы так как задача стоит и по старым заказам смотреть состояния, для отслеживания незакрытых заказов приходится велосибед с квадратными колесами делать....
---
так регистр можно заполнить по всем документам и уже из него получать нужные данные, если они действительно нужны на постоянной основе. Если это действие разовое, то проще запросом получить данные и закрыть заказы