Как в УТ11.4 изменить Срок доставки в счете на оплату клиенту

1. VID1234 110 13.01.20 11:06 Сейчас в теме
Привет. подскажите, что и где нужно прописать, чтобы изменился срок действия счета на оплату, а то у меня указана там текущая дата (рисунок вопрос про срок доставки),
Если ТаблицаЭтапыОплаты.Количество() = 0 Тогда
		ДатаПлатежа = '00010101';
	ИначеЕсли ТаблицаЭтапыОплаты.Количество() = 1 Тогда
		ДатаПлатежа = ТаблицаЭтапыОплаты[0].ДатаПлатежа;
	Иначе
		ДатаПлатежа = ТаблицаЭтапыОплаты[ТаблицаЭтапыОплаты.Количество()-1].ДатаПлатежа;
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ДатаПлатежа) Тогда
		СтруктураДанныхЗаголовок = Новый Структура;
		НадписьСрокДействия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru='Счет действителен до %1.'"), Формат(ДатаПлатежа, "ДЛФ=D")) + " ";
		СтруктураДанныхЗаголовок.Вставить("СрокДействия", НадписьСрокДействия);
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхЗаголовок);
	КонецЕсли;
	
	ТабличныйДокумент.Вывести(ОбластьМакета);
Показать
это код в модуле менеджера объекта, он отсылает на параметрВСтроку:
Функция ПодставитьПараметрыВСтроку(Знач ШаблонСтроки,
	Знач Параметр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);
	Возврат ШаблонСтроки;
	
КонецФункци
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
7. TimurD 6 13.01.20 12:52 Сейчас в теме
Перед выводом даты платежа можно прибавить к ней 3 дня. А лучше эту дату (перед печатью) менять в графике платежей счета на оплату. А то получится у Вас по графику (в документе) сегодня последняя оплата, а в ПФ + 3 дня.

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

        СтруктураДанныхЗаголовок = Новый Структура;
        НадписьСрокДействия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru='Счет действителен до %1.'"), Формат(ДатаПлатежа, "ДЛФ=D")) + " ";
        СтруктураДанныхЗаголовок.Вставить("СрокДействия", НадписьСрокДействия);
        ОбластьМакета.Параметры.Заполнить(СтруктураДанныхЗаголовок);
    КонецЕсли;
    
    ТабличныйДокумент.Вывести(ОбластьМакета);
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Lenten 25 13.01.20 11:22 Сейчас в теме
ДатаПлатежа = '00010101';
    ИначеЕсли ТаблицаЭтапыОплаты.Количество() = 1 Тогда
        ДатаПлатежа = ТаблицаЭтапыОплаты[0].ДатаПлатежа;
    Иначе
        ДатаПлатежа = ТаблицаЭтапыОплаты[ТаблицаЭтапыОплаты.Количество()-1].ДатаПлатежа;
    КонецЕсли;


вот где заполнятеся датаПлатежа. Там и меняйте
3. VID1234 110 13.01.20 11:28 Сейчас в теме
(2)
00010101
и что там менять? 00010104 что ли? я только учусь еще туплю, читаю книги ИТС, смотрю курсы, но там все далеко от практики. В ут 10.3 было проще, а тут документ отдельно, а функции печати идут в обработках, как их соединять член его знает.
4. Lenten 25 13.01.20 11:57 Сейчас в теме
(3) а как должна у вас рассчитываться дата оплаты?
5. VID1234 110 13.01.20 11:58 Сейчас в теме
(4)нужно чтобы автоматически менялась дата действия счета, на 3 дня например, от текущей, допустим срок действия договора до 16.01.2020, а счет создан сегодня
6. TimurD 6 13.01.20 12:47 Сейчас в теме
(3) Вас смущает, что код переместили (некоторых печатных форм) в обработки, или Вы не понимаете что в коде формирования ПФ происходит?
8. VID1234 110 13.01.20 12:56 Сейчас в теме
(6) и смущает, но больше мне бы хотелось знать как связать реквизиты документа, поля формы документа с обработкой печати.
11. TimurD 6 13.01.20 17:39 Сейчас в теме
(8) Никак. В процедуру печати передается массив ссылок документов, которые нужно распечатать. В любом случае почитайте инфу про подсистему "Печать" БСП. Там все подробно описано, как с ней работать.
7. TimurD 6 13.01.20 12:52 Сейчас в теме
Перед выводом даты платежа можно прибавить к ней 3 дня. А лучше эту дату (перед печатью) менять в графике платежей счета на оплату. А то получится у Вас по графику (в документе) сегодня последняя оплата, а в ПФ + 3 дня.

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

        СтруктураДанныхЗаголовок = Новый Структура;
        НадписьСрокДействия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
            НСтр("ru='Счет действителен до %1.'"), Формат(ДатаПлатежа, "ДЛФ=D")) + " ";
        СтруктураДанныхЗаголовок.Вставить("СрокДействия", НадписьСрокДействия);
        ОбластьМакета.Параметры.Заполнить(СтруктураДанныхЗаголовок);
    КонецЕсли;
    
    ТабличныйДокумент.Вывести(ОбластьМакета);
Показать
9. VID1234 110 13.01.20 13:02 Сейчас в теме
(7) Спасибо, сейчас попробую
10. VID1234 110 13.01.20 13:55 Сейчас в теме
(7)
Если ТаблицаЭтапыОплаты.Количество() = 0 Тогда
ДатаПлатежа = '00010101';
ИначеЕсли ТаблицаЭтапыОплаты.Количество() = 1 Тогда
ДатаПлатежа = ТаблицаЭтапыОплаты[0].ДатаПлатежа;
Иначе
ДатаПлатежа = ТаблицаЭтапыОплаты[ТаблицаЭтапыОплаты.Количество()-1].ДатаПлатежа;
КонецЕсли;

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

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

ТабличныйДокумент.Вывести(ОбластьМакета);
Показать

Точно, все получилось, Спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот