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

```1c
    ВЫБРАТЬ
    Партнеры.Ссылка,
    Партнеры.БизнесРегион,
    Партнеры.Наименование,
    ВЫБОР
    КОГДА Партнеры.Родитель = ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)
    ТОГДА Партнеры.Ссылка
    ИНАЧЕ Партнеры.Родитель
    КОНЕЦ КАК Родитель,
    Партнеры.Код
    ПОМЕСТИТЬ ВТПартнеры
    ИЗ
    Справочник.Партнеры КАК Партнеры
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТПартнеры.Ссылка,
    ВТПартнеры.БизнесРегион,
    ВТПартнеры.Наименование,
    ВТПартнеры.Код,
    ПартнерыКонтактнаяИнформация.Тип,
    ПартнерыКонтактнаяИнформация.Вид,
    ПартнерыКонтактнаяИнформация.Представление,
    ПартнерыКонтактнаяИнформация.ЗначенияПолей,
    ПартнерыКонтактнаяИнформация.Страна,
    ПартнерыКонтактнаяИнформация.Регион,
    ПартнерыКонтактнаяИнформация.Город,
    ПартнерыКонтактнаяИнформация.АдресЭП,
    ВТПартнеры.Родитель
    ПОМЕСТИТЬ ВтПартнерыСКонтактами
    ИЗ
    ВТПартнеры КАК ВТПартнеры
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
    ПО ВТПартнеры.Ссылка = ПартнерыКонтактнаяИнформация.Ссылка
    ГДЕ
    ПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СоглашенияСКлиентами.Ссылка,
    СоглашенияСКлиентами.ВидЦен,
    СоглашенияСКлиентами.Партнер
    ПОМЕСТИТЬ ВТАктуальныеСоглашения
    ИЗ
    Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
    ГДЕ
    СоглашенияСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСКлиентами.Действует)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВтПартнерыСКонтактами.Ссылка,
    ВтПартнерыСКонтактами.БизнесРегион,
    ВтПартнерыСКонтактами.Наименование,
    ВтПартнерыСКонтактами.Код,
    ВтПартнерыСКонтактами.Тип,
    ВтПартнерыСКонтактами.Вид,
    ВтПартнерыСКонтактами.Представление,
    ВтПартнерыСКонтактами.ЗначенияПолей,
    ВтПартнерыСКонтактами.Страна,
    ВтПартнерыСКонтактами.Регион,
    ВтПартнерыСКонтактами.Город,
    ВтПартнерыСКонтактами.АдресЭП,
    ВТАктуальныеСоглашения.ВидЦен,
    ВТАктуальныеСоглашения.Ссылка КАК СсылкаНаСоглашение,
    ВтПартнерыСКонтактами.Родитель
    ИЗ
    ВтПартнерыСКонтактами КАК ВтПартнерыСКонтактами
    ЛЕВОЕ СОЕДИНЕНИЕ ВТАктуальныеСоглашения КАК ВТАктуальныеСоглашения
    ПО ВтПартнерыСКонтактами.Ссылка = ВТАктуальныеСоглашения.Партнер
```
---
У Вас путаница в полях получилась. С одной стороны "Ссылка" - это ссылка на партнера в первом запросе пакета. С другой стороны "Ссылка" - это ссылка на соглашение в третьем запросе. Когда Вы устанавливаете отбор по полю "Ссылка", то СКД, оптимизируя запрос, добавляет это условие и в первый, и в третий запрос пакета. Только вот для третьего это неуместно: ссылка здесь не является партнером, а является соглашением.

Два решения:

1. Приведите все единому виду. Например, во всех запросах пакета пусть у Вас поле партнера так и называется - "Партнер", т.е. в первом запросе напишите:

```1c
    ВЫБРАТЬ
    Партнеры.Ссылка КАК Партнер,
    ...
```

2. "Объясните" СКД для третьего запроса пакета кто есть кто:

```1c
    ВЫБРАТЬ
    СоглашенияСКлиентами.Ссылка,
    СоглашенияСКлиентами.ВидЦен,
    СоглашенияСКлиентами.Партнер
    ПОМЕСТИТЬ ВТАктуальныеСоглашения
    ИЗ
    Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
    ГДЕ
    СоглашенияСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСКлиентами.Действует)
    {ГДЕ
    СоглашенияСКлиентами.Ссылка.* КАК СсылкаНаСоглашение,
    СоглашенияСКлиентами.Партнер.* КАК Ссылка}
```

P.S. Поправил немного второе решение.
---
У Вас путаница в полях получилась. С одной стороны "Ссылка" - это ссылка на партнера в первом запросе пакета. С другой стороны "Ссылка" - это ссылка на соглашение в третьем запросе. Когда Вы устанавливаете отбор по полю "Ссылка", то СКД, оптимизируя запрос, добавляет это условие и в первый, и в третий запрос пакета. Только вот для третьего это неуместно: ссылка здесь не является партнером, а является соглашением.

Два решения:

1. Приведите все единому виду. Например, во всех запросах пакета пусть у Вас поле партнера так и называется - "Партнер", т.е. в первом запросе напишите:

```1c
    ВЫБРАТЬ
    Партнеры.Ссылка КАК Партнер,
    ...
```

2. "Объясните" СКД для третьего запроса пакета кто есть кто:

```1c
    ВЫБРАТЬ
    СоглашенияСКлиентами.Ссылка,
    СоглашенияСКлиентами.ВидЦен,
    СоглашенияСКлиентами.Партнер
    ПОМЕСТИТЬ ВТАктуальныеСоглашения
    ИЗ
    Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
    ГДЕ
    СоглашенияСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСКлиентами.Действует)
    {ГДЕ
    СоглашенияСКлиентами.Ссылка.* КАК СсылкаНаСоглашение,
    СоглашенияСКлиентами.Партнер.* КАК Ссылка}
```

P.S. Поправил немного второе решение.
---
Спасибо большое. Первым способом быстро все поменял. Сейчас сижу вчитываюсь и понимаю что Вы мастер! Спасибо. Я сейчас вникну и если что то не разберусь, то спрошу :)
Большое спасибо!
---
То есть когда все вывожу то формат будет:
Торговая точка Адрес ТипЦены и все заполнено, а когда делаю отбор, то получаю уже строку одну, но с пустым типом цены. Что это такое как лечить?
---
По какому полю именно делаешь отбор? по полю ссылка или партнер?
---
По полю ссылка
---
Переименуй в итоговом пакете запроса поле ссылка в "ТорговаяТочка", сделай отбор и сформируй и сообщи о результате
---
Я последовал совету dhurricane и переименовал ссылку на партнера в партнера - помогло.
---
Смысл один и тот же. Так же будь внимателен с параметрами виртуальных таблиц. Там тоже есть "паранормальный участок")
---
(7) {ГДЕ
    СоглашенияСКлиентами.Ссылка.* КАК СсылкаНаСоглашение,
    СоглашенияСКлиентами.Партнер.* КАК Ссылка}

Как то так должно получиться вторым способом?

```1c
    ВЫБРАТЬ
    Партнеры.Ссылка КАК Ссылка,
    Партнеры.БизнесРегион,
    Партнеры.Наименование,
    ВЫБОР
    КОГДА Партнеры.Родитель = ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)
    ТОГДА Партнеры.Ссылка
    ИНАЧЕ Партнеры.Родитель
    КОНЕЦ КАК Родитель,
    Партнеры.Код
    ПОМЕСТИТЬ ВТПартнеры
    ИЗ
    Справочник.Партнеры КАК Партнеры
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТПартнеры.БизнесРегион,
    ВТПартнеры.Наименование,
    ВТПартнеры.Код,
    ПартнерыКонтактнаяИнформация.Тип,
    ПартнерыКонтактнаяИнформация.Вид,
    ПартнерыКонтактнаяИнформация.Представление,
    ПартнерыКонтактнаяИнформация.ЗначенияПолей,
    ПартнерыКонтактнаяИнформация.Страна,
    ПартнерыКонтактнаяИнформация.Регион,
    ПартнерыКонтактнаяИнформация.Город,
    ПартнерыКонтактнаяИнформация.АдресЭП,
    ВТПартнеры.Родитель
    ПОМЕСТИТЬ ВтПартнерыСКонтактами
    ИЗ
    ВТПартнеры КАК ВТПартнеры,
    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
    ГДЕ
    ПартнерыКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СоглашенияСКлиентами.Ссылка КАК Ссылка,
    СоглашенияСКлиентами.ВидЦен,
    СоглашенияСКлиентами.Партнер КАК Партнер
    ПОМЕСТИТЬ ВТАктуальныеСоглашения
    {ВЫБРАТЬ
    Ссылка.* КАК СсылкаНаСоглашение,
    Партнер.* КАК Ссылка}
    ИЗ
    Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
    ГДЕ
    СоглашенияСКлиентами.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыСоглашенийСКлиентами.Действует)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВтПартнерыСКонтактами.БизнесРегион,
    ВтПартнерыСКонтактами.Наименование,
    ВтПартнерыСКонтактами.Код,
    ВтПартнерыСКонтактами.Тип,
    ВтПартнерыСКонтактами.Вид,
    ВтПартнерыСКонтактами.Представление,
    ВтПартнерыСКонтактами.ЗначенияПолей,
    ВтПартнерыСКонтактами.Страна,
    ВтПартнерыСКонтактами.Регион,
    ВтПартнерыСКонтактами.Город,
    ВтПартнерыСКонтактами.АдресЭП,
    ВТАктуальныеСоглашения.ВидЦен,
    ВТАктуальныеСоглашения.Ссылка КАК СсылкаНаСоглашение,
    ВтПартнерыСКонтактами.Родитель
    ИЗ
    ВтПартнерыСКонтактами КАК ВтПартнерыСКонтактами,
    ВТАктуальныеСоглашения КАК ВТАктуальныеСоглашения
```
---
Неа. Для отборов нужна секция {ГДЕ}, а не {ВЫБРАТЬ}. Ну и "Ссылку" со связями таблиц Вы растеряли.
---
Где находится "ГДЕ" в конструкторе запроса скд?
Заметил что потерял - нажал сформировать и второй раз за день ноутбук намертво завис.
---
Все там же, на закладке "Компоновка данных", "Условия".
---
Да, спасибо. Второй способ тоже работает. Получается я пишу запрос свой, а потом ёще заново просматриваю его и если совпадают имена, то нужно скад зайти и в компоновке данных задать иные имена. Так?
Я читал уже об этом несколько статей, но никак не мог осознать как оно и зачем, но когда приходит живой пример - все стало понятно.
А владка "Поля" (где я написал сначала и было слово "ВЫБРАТЬ") для чего? Простыми словами можно от Вас узнать? Как я понимаю, то она обрежет количество выбираемых полей, но не могу осознать смысл.
---
Ну в моем представлении она действительно для ограничения выбираемых полей. Я ее использую совместно с флажком "Автозаполнение" наборов данных.
Получается я пишу запрос свой, а потом ёще заново просматриваю егоЛучше давайте сразу понятные псевдонимы полей. :)
---
Спасибо за советы! Вы мастер :)
---
Нет. Когда дойдешь до виртуальных таблиц регистров есть параметры которые будут появляться автоматически в СКД. Если названия твоих параметров будут одинаковыми с виртуальными там тоже получаются непонятные результаты. Сказал на будущее.
---
Первый раз за 9 месяцев столкнулся с подобным. Немного понервничать пришлось. Сейчас разбираюсь с переименованием полей в СКД, как я понял это происходит на вкладке "компоновка данных" там где "Поля" и "Условия"
---
отбор по полю торговая точка