Всем привет! Необходимо получить выборку документов, у которых одинаковое фио и др, но разный адрес прописки. При этом среди дублей хотя бы один документ должен иметь дату в выбранном периоде. (+ условие по реквизиту "статус"). Пытаюсь сначала найти дубли, а потом уже среди них ищу документы с разными адресами.
Подскажите, оптимальное ли решение ? И подскажите, как к этому "прикрутить" условие с датой создания в выбранном периоде.

```1c
    ВЫБРАТЬ
    Анкета.ЗаявкаИмя,
    Анкета.ЗаявкаФамилия,
    Анкета.ДатаРождения,
    Анкета.ЗаявкаОтчество,
    КОЛИЧЕСТВО(*) КАК Сч
    ПОМЕСТИТЬ втДубли
    ИЗ
    Документ.Анкета КАК Анкета
    ГДЕ
    Анкета.СтатусАнкеты.Наименование = "Установлен лимит"

    СГРУППИРОВАТЬ ПО
    Анкета.ЗаявкаИмя,
    Анкета.ЗаявкаФамилия,
    Анкета.ДатаРождения,
    Анкета.ЗаявкаОтчество

    ИМЕЮЩИЕ
    КОЛИЧЕСТВО(*) > 1
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Анкета.Ссылка
    ПОМЕСТИТЬ ВтАН
    ИЗ
    втДубли КАК втДубли
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Анкета КАК Анкета
    ПО втДубли.ЗаявкаИмя = Анкета.ЗаявкаИмя
    И втДубли.ЗаявкаФамилия = Анкета.ЗаявкаФамилия
    И втДубли.ЗаявкаОтчество = Анкета.ЗаявкаОтчество
    И втДубли.ДатаРождения = Анкета.ДатаРождения
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВтАН.Ссылка.АдресЮр КАК АдресЮр,
    КОЛИЧЕСТВО(*) КАК Сч
    ПОМЕСТИТЬ Итог
    ИЗ
    ВтАН КАК ВтАН

    СГРУППИРОВАТЬ ПО
    ВтАН.Ссылка.АдресЮр

    ИМЕЮЩИЕ
    КОЛИЧЕСТВО(*) = 1
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Анкета.Ссылка
    ИЗ
    Итог КАК Итог
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.Анкета КАК Анкета
    ПО Итог.АдресЮр = Анкета.АдресЮр
```
---
На 1С лень и сейчас под рукой нет. Но примерный алгоритм пожалуйста. Даже два примерных варианта.
Суть в обоих та же. Производительность разная. На 1С переписывается, но с построениями временных таблиц и джоинами.
Писать много и на скрин экрана целиком не поместится. :-)
---
Наврал - можно ещё так. На 1С переписывается 1 к 1.

У вас соответственно:
```1c
    Максимум(Выбор когда Анкета.Дата между &ДатаН И &ДатаК тогда 1 иначе 0 конец)>0
```
вместо max(EstVPeriode)>0. Плюс ваше условие на статус - его не рисовал.
---
КОЛИЧЕСТВО(*) = 1 это значит дублей нет
---
Да, я сначала выбираю дубли, а потом неповторяющиеся адреса
---
А почему просто количество различные не посчитать? Там где количество различных ссылок окажется больше чем 1, и количество различных адресов более 1, там есть разные адреса. Адрес это же реквизит шапки?
Условно первый и третий ваш запрос в один.

Туда же добавить и условие про дату. Сумма(Выбор когда <условие в периоде> тогда 1 иначе 0 конец)>1
---
Не понимаю, не могли бы вы накидать пример, пожалуйста ?
---
На 1С лень и сейчас под рукой нет. Но примерный алгоритм пожалуйста. Даже два примерных варианта.
Суть в обоих та же. Производительность разная. На 1С переписывается, но с построениями временных таблиц и джоинами.
Писать много и на скрин экрана целиком не поместится. :-)
---
Наврал - можно ещё так. На 1С переписывается 1 к 1.

У вас соответственно:
```1c
    Максимум(Выбор когда Анкета.Дата между &ДатаН И &ДатаК тогда 1 иначе 0 конец)>0
```
вместо max(EstVPeriode)>0. Плюс ваше условие на статус - его не рисовал.