Добрый день.

Мне необходимо вывести покупателей по Расходным накладным , у которых в каждом месяце за 2019 год была хотя бы одна покупка

Может кто подсказать условие?
---
Наверное что-то вроде такого:

```1c
    ВЫБРАТЬ
    Т.Контрагент КАК Покупатель
    ИЗ
    ТаблицаПродаж КАК Т
    ГДЕ
    Т.Период МЕЖДУ &НачалоГода И &КонецГода

    СГРУППИРОВАТЬ ПО
    Т.Контрагент

    ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.ПериодМесяц) = 12
```
---
ГДЕ Покупатель В (Выбрать Покупатель Из Регистр.Продажи Где Период Между Дата1 И Дата2)
---
Наверное что-то вроде такого:

```1c
    ВЫБРАТЬ
    Т.Контрагент КАК Покупатель
    ИЗ
    ТаблицаПродаж КАК Т
    ГДЕ
    Т.Период МЕЖДУ &НачалоГода И &КонецГода

    СГРУППИРОВАТЬ ПО
    Т.Контрагент

    ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.ПериодМесяц) = 12
```
---
благодарю за помощь
---
```1c
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.ПериодМесяц) = 12
```

А как сделать чтобы он считал именно различные месяцы, не нашел Т.ПериодМесяц

Вот код

```1c
    ВЫБРАТЬ
    Счет_90.Регистратор.Покупатель.Телефон КАК РегистраторПокупательТелефон
    ИЗ
    РегистрНакопления.Счет_90 КАК Счет_90
    ГДЕ
    Счет_90.Регистратор ССЫЛКА Документ.РасходнаяНакладная
    И Счет_90.Период МЕЖДУ &НачалоГода И &КонецГода
    И НЕ Счет_90.Филиал.ПометкаУдаления
    И Счет_90.Филиал.Город = &Город
    И НЕ Счет_90.Регистратор.Покупатель.Телефон ЕСТЬ NULL
    И Счет_90.Регистратор.Проведен
    И Счет_90.Филиал.ВидФилиала = &ВидФилиала

    СГРУППИРОВАТЬ ПО
    Счет_90.Регистратор.Покупатель.Телефон

    ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Счет_90.Период) = 12
```
---
Я же не знаю, с какой конфигурацией Вы работаете. Поэтому и написал условно "ПериодМесяц". Просто поле "Период" не подходит, если оно может содержать и дни, т.к. будет подсчитано количество различных дней, а не месяцев. В результате Вы увидите в т.ч. и покупателей, сделавших покупки лишь в один месяц, но в 12 различных дней.

Если Вы работаете с таблицей документа, то "ПериодМесяц" подразумевает собой выражение вида:

```1c
    НАЧАЛОПЕРИОДА(Т.Дата, МЕСЯЦ)
```

Если Вы работаете с таблицей регистра накопления, то поле "ПериодМесяц" есть в виртуальной таблице оборотов при установленной периодичности "Авто". А при установленной периодичности "Месяц" уже действительно можно взять просто "Период".

И т.д.
---
Благодарю, Денис
---
Я же не знаю, с какой конфигурацией Вы работаете. Поэтому и написал условно "ПериодМесяц"причем тут вообще какое-то "левое" поле "ПериодМесяц", не имеющее к задаче отношения?
Максимум, что из него можно извлечь - это в какой месяц была покупка. И уж совсем без разницы, ТЧ там с этим полем, или не ТЧ, а РН.
---
Максимум, что из него можно извлечь - это в какой месяц была покупкВерно. И если таких месяцев наберется 12 (а в году 12 месяцев), можно сделать вывод, что покупки были в каждом месяце.
---
а нужно - не чтобы "в каждом", а "за каждый".
Кто первый встал в тапки в январе, а кто - в декабре )
---
Здесь нет никаких "вывести покупки помесячно". Так вы как раз и анализируете помесячно в разрезе одного покупателя. А всех остальных, кто не совершил покупок в каждом из 12 месяцев - вы "отсеиваете".
Почему и пишу, что сама по себе такая постановка смысла не имеет - отсеять большинство покупателей (>90%), и найти только каких-то упоротых, которые стабильно каждый месяц что-то покупают именно в этом магазине ))
---
Почему и пишу, что сама по себе такая постановка смысла не имеетИмеет, если это часть более общей задачи.
---
во-первых, вы правы - смысл только в рамках более общей задачи. А не как тут в теме.
Во-вторых - в задаче по ссылке "найти: 4) "постоянных" - в каждом месяце есть хотя бы одна проведенная расходка " - это то же самое: "найти ЛЮБЫХ".
Иначе те, которые покупают более чем через месяц, но менее редко, чем полгода - они куда попадают? Выпадают из исследования? Не учитываются, имея значительную часть? Про них просто "забыли"?
Скорей всего, именно - подразумевали " ... в любом месяце есть хотя бы одна проведенная расходка, но не реже чем через 6 мес (см. п.3)".
Т.е. вы пытаетесь загнать задачу в рамки некого "обрубленного" (вами же) формализма постановки задачи, теряя смысл и изначальные цели, опираясь на "А вот написано дословно так, так и сделаем; поправлять я не буду, потому что мне проще с урезанной задачей справится, благо и инструментарий заточен под "обрубки" решений, а не комплексные".
Там же не программист ставит такие задачи, в конце концов )
---
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.ПериодМесяц) = 12найдет любого, у кого в любой месяц была хотя бы 1 покупка. А не "всех с покупками по месяцам".
---
Извините, я по Вашим комментариям не увидел противоречий в моем решении с условием задачи. Не могли бы Вы развернуть свою мысль?
---
нужно найти в любом месяце, а не только чтобы в каждом из 12.
Даже если единственная покупка в январе за весь год - она должна попасть в выборку за январь. И не попасть в выборки за февраль, март... Там будут свои, февральские и мартовские, победители.
---
Кажется, Вы неправильно поняли условие задачи. Вот цитата:
Мне необходимо вывести покупателей..., у которых в каждом месяце за 2019 год была хотя бы одна покупкаТ.е. именно что "в каждом", а не "в любом". Здесь нет никаких "вывести покупки помесячно". Нет выборки за январь, февраль и т.д. со "своими победителями". Нужна сводная информация за год.
---
маркетологам важно именно что "в каждом" ака "любом" месяце кто был. А не каждый месяц покупал.
Тут "в каждом" = "просмотреть каждый месяц и найти покупателей в месяце".
Задача проанализировать "найти покупателей, кто покупает каждый месяц" - ну ооочень узконишевая, сама по себе отдельно смысла не имеет, и может возникнуть только если в рамках какого-то более общего исследования покупок (например, при анализе годовых продаж за период), но тогда и решали бы сразу запросом ту, глобальную задачу, а не частность от неё.
---
Если есть документ то значит есть и движение по регистру
1) плюем на регистры, запросом выбираем все проведенные документы за нужный период, из него вытаскиваем Покупателя,, и вуаля
2) регистры ближе, по движениям документа посмотреть в какой регистр делаются движения с нужными нам данными, может это продажи, может взаиморасчеты. и из него получаем данные за период, покупатель где то в измерении должен быть. сумма ресурс. вуаля
---
я не понимаю как прописать условие, чтобы я мог вытянуть тех, у кого есть хотя бы одна проведенная расходка за месяц

вот код

```1c
    ВЫБРАТЬ
    РасходнаяНакладная.Покупатель.Телефон КАК ПокупательТелефон
    ИЗ
    Документ.РасходнаяНакладная КАК РасходнаяНакладная
    ГДЕ
    НЕ РасходнаяНакладная.ПометкаУдаления
    И НЕ РасходнаяНакладная.Фирма.ПометкаУдаления
    И РасходнаяНакладная.Проведен
    И РасходнаяНакладная.Дата МЕЖДУ &НачалоГода И &КонецГода
    И РасходнаяНакладная.Фирма.ВидФилиала = &ВидФилиала
    И НЕ РасходнаяНакладная.Покупатель.Телефон ЕСТЬ NULL
    И РасходнаяНакладная.Фирма.Город = &Город
```
---
РасходнаяНакладная.Проведен и НЕ РасходнаяНакладная.ПометкаУдаления зачем? проведенный документ не может быть помечен на удаление
у вас итак сделано верно, вы выбираете документы расходная накладная, соответственно если в выборку попал документ то значит и продажа была по этому клиенту)
просто в ВЫБРАТЬ
    РасходнаяНакладная.Покупатель.Телефон КАК ПокупательТелефон
Добавьте самого покупателя
РасходнаяНакладная.Покупатель
---
Возможно я не так истолковал мысль, мне нужно найти таких покупателей, чтобы в каждом месяце за 2019 год у тнего была минимум одна покупка

НЕ РасходнаяНакладная.ПометкаУдаления - с этим да, поспешил)
---
Тогда присмотритесь к ответу (6), там мысль похожа, т.е. свой запрос помещаете в ВТ, и потом используйте запрос из (6)
Привет dhurricane (6) снова с тобой встретились=)
---
благодарю за помощь
---
Привет. :-)

В принципе можно сразу подставить в мой шаблон, без промежуточной ВТ.