Всем, добрый день!
Я только только начала работать с 1с, опыта и практики нет.
Очень нужна помощь составить правильно запрос, чтобы результат выводился без повторений по полю КонтактноеЛицо.
Необходимо вывести контактных лиц организации, у которых код функции один из трех 000000020 или 000000017 или 000000018,
но у некоторых контактных лиц может быть указано несколько кодов из перечисленных, соответственно выводятся контактные лица с повтором.

ЗапросКонтактЛицо = Новый Запрос("ВЫБРАТЬ
                                   | КартаПредприятияФункции.Функция.Код КАК Код,
                                   | КартаПредприятия.Владелец,
                                   | КартаПредприятия.Наименование КАК КонтактноеЛицо,
                                   | КартаПредприятияФункции.Функция.Наименование КАК Функции,
                                   | КартаПредприятия.Должность КАК Должность
                                   |ИЗ
                                   | Справочник.КартаПредприятия.Функции КАК КартаПредприятияФункции
                                   | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КартаПредприятия КАК КартаПредприятия
                                   | ПО КартаПредприятияФункции.Ссылка = КартаПредприятия.Ссылка
                                   |ГДЕ
                                   | КартаПредприятия.Владелец = &Владелец
       | И (КартаПредприятияФункции.Функция.Код = ""000000020""
       | ИЛИ КартаПредприятияФункции.Функция.Код = ""000000017""
       | ИЛИ КартаПредприятияФункции.Функция.Код = ""000000018"")
                                   | И (НЕ КартаПредприятия.Состояние В (&НеАктивные))");

  НеАктивные = новый массив;
  НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.Повтор);
  НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.ВДекретномОтпуске);
  НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.Уволен);
  ЗапросКонтактЛицо.УстановитьПараметр("НеАктивные",НеАктивные);

  ЗапросКонтактЛицо.УстановитьПараметр("Владелец",резОрг.Контрагент);
---
Функцию не выводите, или сделайте для нее Максимум
---
Сразу несколько советов новичку:
1) используйте РАЗРЕШЕННЫЕ
2) не используйте ИЛИ, лучше в список значений загнать
3) не используйте Ссылка.Реквизит.Реквизит...Реквизит

Почему НеАктивные = Новый Массив; а Коды через ИЛИ?

И первый запрос надо во Временную таблицу поместить и проиндексировать по КартаПредприятияФункция.Ссылка.
Во 2 запросе - кроме тех условий + ...Владелец В (ВТ.КПФ.ССылка), ну и в Выбрать ... МАКСИМУМ(ВТ.КПФ.Функция.Код) с группировкой по другим полям.
---
```1c
    Выбрать РАЗЛИЧНЫЕ
```
---
К сожалению, не работает. Все равно выходят дубли. Например, у контактного лица Ивановой установлен код функции 000..20 и 00..18, Выводит две строки Иванова 00..20 и Иванова 00..18, в надо чтобы только один раз Иванова выходила.
---
Функцию не выводите, или сделайте для нее Максимум
---
Спасибо ))) Получилось
---
у контактного лица Ивановой установлен код функции 000..20 и 00..18, Выводит две строки Иванова 00..20 и Иванова 00..18
Правильно, потому что функции разные.
Определите, какая из этих функций вам нужна в конечном итоге и примените агрегирующую функцию МИНИМУМ/МАКСИМУМ к коду/наименованию функции
---
Спасибо!
---
Сразу несколько советов новичку:
1) используйте РАЗРЕШЕННЫЕ
2) не используйте ИЛИ, лучше в список значений загнать
3) не используйте Ссылка.Реквизит.Реквизит...Реквизит

Почему НеАктивные = Новый Массив; а Коды через ИЛИ?

И первый запрос надо во Временную таблицу поместить и проиндексировать по КартаПредприятияФункция.Ссылка.
Во 2 запросе - кроме тех условий + ...Владелец В (ВТ.КПФ.ССылка), ну и в Выбрать ... МАКСИМУМ(ВТ.КПФ.Функция.Код) с группировкой по другим полям.
---
Спасибо. Приму к сведению!