Прошу помощи.
Задача: сделать кнопку для создания пачки документов (счетов) для повторяющихся платежей (типа по договорам и кредитам) с заранее запланированной датой оплаты.
Кнопку сделал, работает, но как отработать ситуацию, когда документы уже созданы?

```1c
    &НаСервере
    Процедура СозданиеСчетовНаСервере()

    ПервыйПлатеж = Объект.ДатаПервогоПлатежа;
    КолПлатежей = Объект.КоличествоПлатежей - 1;

    СоздСчета = ЕстьЛиСозданныеСчета(Объект.Ссылка);

    Для КолДобМесяцев = 0 ПО КолПлатежей Цикл
    //Вычисляем дату платежа следующего документа
    ДатаПлатежа = ДобавитьМесяц(Объект.ДатаПервогоПлатежа, КолДобМесяцев);

    НовыйДокумент = Документы.Счета.СоздатьДокумент();
    НовыйДокумент.Дата = ТекущаяДата();
    НовыйДокумент.Организация = Объект.Организация;
    НовыйДокумент.БанкОрганизации = Объект.БанкОрганизации;
    НовыйДокумент.Контрагент = Объект.Контрагент;
    НовыйДокумент.БанкКонтрагента = Объект.БанкКонтрагента;
    НовыйДокумент.НазначениеПлатежа = Объект.НазначениеПлатежа;
    НовыйДокумент.Сумма = Объект.СуммаПлатежа;
    НовыйДокумент.Направление = Объект.Направление;
    НовыйДокумент.ВидПлатежа = Объект.ВидПлатежа;
    НовыйДокумент.ОснованиеПлатежа = Объект.ОснованиеПлатежа;
    НовыйДокумент.ПовторяющийсяПлатеж = Объект.Ссылка;
    НовыйДокумент.ДатаОплаты = ДатаПлатежа;
    НовыйДокумент.Записать();

    КонецЦикла;

    КонецПроцедуры

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

    Запрос.УстановитьПараметр("ПовторяющийсяПлатеж", ПовтПлат);

    Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");

    КонецФункции
```

В документе "Счет" есть ссылка на документ основание (в котором я нажимаю кнопку) и дата оплаты (которая присваивается в коде).
Делаю запрос в документы, возвращается массив.
Как мне в этот массив посмотреть перед созданием документа и если документ с такой датой есть, то не создавать его и продолжить цикл?
Может есть еще какие методы обработки подобных действий?
---
Разобрался сам

```1c
    &НаСервере
    Процедура СозданиеСчетовНаСервере()

    ПервыйПлатеж = Объект.ДатаПервогоПлатежа;
    КолПлатежей = Объект.КоличествоПлатежей - 1;

    СоздСчета = ЕстьЛиСозданныеСчета(Объект.Ссылка);

    Для КолДобМесяцев = 0 ПО КолПлатежей Цикл

    //Вычисляем дату следующего платежа
    ДатаПлатежа = ДобавитьМесяц(Объект.ДатаПервогоПлатежа, КолДобМесяцев);

    ЕстьТакойСчет = СоздСчета.Найти(ДатаПлатежа);

    Если ЕстьТакойСчет <> Неопределено Тогда
    Сообщить(ЕстьТакойСчет.ДатаОплаты);
    Продолжить;
    Иначе
    НовыйДокумент = Документы.Счета.СоздатьДокумент();
    НовыйДокумент.Дата = ТекущаяДата();
    НовыйДокумент.Организация = Объект.Организация;
    НовыйДокумент.БанкОрганизации = Объект.БанкОрганизации;
    НовыйДокумент.Контрагент = Объект.Контрагент;
    НовыйДокумент.БанкКонтрагента = Объект.БанкКонтрагента;
    НовыйДокумент.НазначениеПлатежа = Объект.НазначениеПлатежа;
    НовыйДокумент.Сумма = Объект.СуммаПлатежа;
    НовыйДокумент.Направление = Объект.Направление;
    НовыйДокумент.ВидПлатежа = Объект.ВидПлатежа;
    НовыйДокумент.ОснованиеПлатежа = Объект.ОснованиеПлатежа;
    НовыйДокумент.ПовторяющийсяПлатеж = Объект.Ссылка;
    НовыйДокумент.ДатаОплаты = ДатаПлатежа;
    НовыйДокумент.Записать();

    КонецЕсли;

    КонецЦикла;

    КонецПроцедуры

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

    Запрос.УстановитьПараметр("ПовторяющийсяПлатеж", ПовтПлат);

    Возврат Запрос.Выполнить().Выгрузить();

    КонецФункции
```

Из запроса возвращаю таблицу значений и уже в этой таблице смотрю дату оплаты.
Получается, если часть документов создано руками, то создадутся только те, которых нет.
---
```1c
    СчетовЕщеНет_НужноДелатьНовые = Запрос.Выполнить().Пустой();
```
---
Разобрался сам

```1c
    &НаСервере
    Процедура СозданиеСчетовНаСервере()

    ПервыйПлатеж = Объект.ДатаПервогоПлатежа;
    КолПлатежей = Объект.КоличествоПлатежей - 1;

    СоздСчета = ЕстьЛиСозданныеСчета(Объект.Ссылка);

    Для КолДобМесяцев = 0 ПО КолПлатежей Цикл

    //Вычисляем дату следующего платежа
    ДатаПлатежа = ДобавитьМесяц(Объект.ДатаПервогоПлатежа, КолДобМесяцев);

    ЕстьТакойСчет = СоздСчета.Найти(ДатаПлатежа);

    Если ЕстьТакойСчет <> Неопределено Тогда
    Сообщить(ЕстьТакойСчет.ДатаОплаты);
    Продолжить;
    Иначе
    НовыйДокумент = Документы.Счета.СоздатьДокумент();
    НовыйДокумент.Дата = ТекущаяДата();
    НовыйДокумент.Организация = Объект.Организация;
    НовыйДокумент.БанкОрганизации = Объект.БанкОрганизации;
    НовыйДокумент.Контрагент = Объект.Контрагент;
    НовыйДокумент.БанкКонтрагента = Объект.БанкКонтрагента;
    НовыйДокумент.НазначениеПлатежа = Объект.НазначениеПлатежа;
    НовыйДокумент.Сумма = Объект.СуммаПлатежа;
    НовыйДокумент.Направление = Объект.Направление;
    НовыйДокумент.ВидПлатежа = Объект.ВидПлатежа;
    НовыйДокумент.ОснованиеПлатежа = Объект.ОснованиеПлатежа;
    НовыйДокумент.ПовторяющийсяПлатеж = Объект.Ссылка;
    НовыйДокумент.ДатаОплаты = ДатаПлатежа;
    НовыйДокумент.Записать();

    КонецЕсли;

    КонецЦикла;

    КонецПроцедуры

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

    Запрос.УстановитьПараметр("ПовторяющийсяПлатеж", ПовтПлат);

    Возврат Запрос.Выполнить().Выгрузить();

    КонецФункции
```

Из запроса возвращаю таблицу значений и уже в этой таблице смотрю дату оплаты.
Получается, если часть документов создано руками, то создадутся только те, которых нет.