Привет. подскажите, что и где нужно прописать, чтобы изменился срок действия счета на оплату, а то у меня указана там текущая дата (рисунок вопрос про срок доставки),

```1c
    Если ТаблицаЭтапыОплаты.Количество() = 0 Тогда
    ДатаПлатежа = '00010101';
    ИначеЕсли ТаблицаЭтапыОплаты.Количество() = 1 Тогда
    ДатаПлатежа = ТаблицаЭтапыОплаты[0].ДатаПлатежа;
    Иначе
    ДатаПлатежа = ТаблицаЭтапыОплаты[ТаблицаЭтапыОплаты.Количество()-1].ДатаПлатежа;
    КонецЕсли;

    Если ЗначениеЗаполнено(ДатаПлатежа) Тогда
    СтруктураДанныхЗаголовок = Новый Структура;
    НадписьСрокДействия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    НСтр("ru='Счет действителен до %1.'"), Формат(ДатаПлатежа, "ДЛФ=D")) + " ";
    СтруктураДанныхЗаголовок.Вставить("СрокДействия", НадписьСрокДействия);
    ОбластьМакета.Параметры.Заполнить(СтруктураДанныхЗаголовок);
    КонецЕсли;

    ТабличныйДокумент.Вывести(ОбластьМакета);
```
 это код в модуле менеджера объекта, он отсылает на параметрВСтроку:

```1c
    Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки,
    Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено,
    Знач Параметр4 = Неопределено, Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено,
    Знач Параметр7 = Неопределено, Знач Параметр8 = Неопределено, Знач Параметр9 = Неопределено) Экспорт

    ЕстьПараметрыСПроцентом = СтрНайти(Параметр1, "%")
    Или СтрНайти(Параметр2, "%")
    Или СтрНайти(Параметр3, "%")
    Или СтрНайти(Параметр4, "%")
    Или СтрНайти(Параметр5, "%")
    Или СтрНайти(Параметр6, "%")
    Или СтрНайти(Параметр7, "%")
    Или СтрНайти(Параметр8, "%")
    Или СтрНайти(Параметр9, "%");

    Если ЕстьПараметрыСПроцентом Тогда
    Возврат ПодставитьПараметрыСПроцентом(ШаблонСтроки, Параметр1,
    Параметр2, Параметр3, Параметр4, Параметр5, Параметр6, Параметр7, Параметр8, Параметр9);
    КонецЕсли;

    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%1", Параметр1);
    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%2", Параметр2);
    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%3", Параметр3);
    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%4", Параметр4);
    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%5", Параметр5);
    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%6", Параметр6);
    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%7", Параметр7);
    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%8", Параметр8);
    ШаблонСтроки = СтрЗаменить(ШаблонСтроки, "%9", Параметр9);
    Возврат ШаблонСтроки;

    КонецФункци
```
---
Перед выводом даты платежа можно прибавить к ней 3 дня. А лучше эту дату (перед печатью) менять в графике платежей счета на оплату. А то получится у Вас по графику (в документе) сегодня последняя оплата, а в ПФ + 3 дня.

```1c
    Если ТаблицаЭтапыОплаты.Количество() = 0 Тогда
    ДатаПлатежа = '00010101';
    ИначеЕсли ТаблицаЭтапыОплаты.Количество() = 1 Тогда
    ДатаПлатежа = ТаблицаЭтапыОплаты[0].ДатаПлатежа;
    Иначе
    ДатаПлатежа = ТаблицаЭтапыОплаты[ТаблицаЭтапыОплаты.Количество()-1].ДатаПлатежа;
    КонецЕсли;

    Если ЗначениеЗаполнено(ДатаПлатежа) Тогда
    ДатаПлатежа = ДатаПлатежа + 86400 * 3;

    СтруктураДанныхЗаголовок = Новый Структура;
    НадписьСрокДействия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    НСтр("ru='Счет действителен до %1.'"), Формат(ДатаПлатежа, "ДЛФ=D")) + " ";
    СтруктураДанныхЗаголовок.Вставить("СрокДействия", НадписьСрокДействия);
    ОбластьМакета.Параметры.Заполнить(СтруктураДанныхЗаголовок);
    КонецЕсли;

    ТабличныйДокумент.Вывести(ОбластьМакета);
```
---
```1c
    ДатаПлатежа = '00010101';
    ИначеЕсли ТаблицаЭтапыОплаты.Количество() = 1 Тогда
    ДатаПлатежа = ТаблицаЭтапыОплаты[0].ДатаПлатежа;
    Иначе
    ДатаПлатежа = ТаблицаЭтапыОплаты[ТаблицаЭтапыОплаты.Количество()-1].ДатаПлатежа;
    КонецЕсли;
```

вот где заполнятеся датаПлатежа. Там и меняйте
---
00010101 и что там менять? 00010104 что ли? я только учусь еще туплю, читаю книги ИТС, смотрю курсы, но там все далеко от практики. В ут 10.3 было проще, а тут документ отдельно, а функции печати идут в обработках, как их соединять член его знает.
---
а как должна у вас рассчитываться дата оплаты?
---
нужно чтобы автоматически менялась дата действия счета, на 3 дня например, от текущей, допустим срок действия договора до 16.01.2020, а счет создан сегодня
---
Вас смущает, что код переместили (некоторых печатных форм) в обработки, или Вы не понимаете что в коде формирования ПФ происходит?
---
и смущает, но больше мне бы хотелось знать как связать реквизиты документа, поля формы документа с обработкой печати.
---
Никак. В процедуру печати передается массив ссылок документов, которые нужно распечатать. В любом случае почитайте инфу про подсистему "Печать" БСП. Там все подробно описано, как с ней работать.
---
Перед выводом даты платежа можно прибавить к ней 3 дня. А лучше эту дату (перед печатью) менять в графике платежей счета на оплату. А то получится у Вас по графику (в документе) сегодня последняя оплата, а в ПФ + 3 дня.

```1c
    Если ТаблицаЭтапыОплаты.Количество() = 0 Тогда
    ДатаПлатежа = '00010101';
    ИначеЕсли ТаблицаЭтапыОплаты.Количество() = 1 Тогда
    ДатаПлатежа = ТаблицаЭтапыОплаты[0].ДатаПлатежа;
    Иначе
    ДатаПлатежа = ТаблицаЭтапыОплаты[ТаблицаЭтапыОплаты.Количество()-1].ДатаПлатежа;
    КонецЕсли;

    Если ЗначениеЗаполнено(ДатаПлатежа) Тогда
    ДатаПлатежа = ДатаПлатежа + 86400 * 3;

    СтруктураДанныхЗаголовок = Новый Структура;
    НадписьСрокДействия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
    НСтр("ru='Счет действителен до %1.'"), Формат(ДатаПлатежа, "ДЛФ=D")) + " ";
    СтруктураДанныхЗаголовок.Вставить("СрокДействия", НадписьСрокДействия);
    ОбластьМакета.Параметры.Заполнить(СтруктураДанныхЗаголовок);
    КонецЕсли;

    ТабличныйДокумент.Вывести(ОбластьМакета);
```
---
Спасибо, сейчас попробую
---
Точно, все получилось, Спасибо!