Вывести период

1. user1879509 07.12.23 23:32 Сейчас в теме
Добрый день. Подскажите задача следующая:
Во внешней печатной форме необходимо вывести период.

Период определяется по дате документа: до 15 числа - прошлый месяц, после 15 числа включительно - текущий месяц.
Как решить такую задачу?
По теме из базы знаний
Найденные решения
3. user1879509 08.12.23 00:04 Сейчас в теме
(2) Спасибо, сейчас попробую
4. user1879509 09.12.23 16:25 Сейчас в теме
(1) В целом сам разобрался.
	ОбластьМакета = Макет.ПолучитьОбласть("ПериодДоговора");
	Если Выборка.Дата >=НачалоМесяца(Выборка.Дата) И Выборка.Дата<=НачалоМесяца(Выборка.Дата)+13*86400 Тогда 
		ОбластьМакета.Параметры.НачалоМесяца =Формат(ДобавитьМесяц(НачалоМесяца(Выборка.Дата),-1),"ДФ=dd.MM.yyyy"); 
		ОбластьМакета.Параметры.КонецМесяца = Формат(ДобавитьМесяц(КонецМесяца(Выборка.Дата),-1),"ДФ=dd.MM.yyyy");
	ИНАЧЕ 
		ОбластьМакета.Параметры.НачалоМесяца = Формат(НачалоМесяца(Выборка.Дата),"ДФ=dd.MM.yyyy");
		ОбластьМакета.Параметры.КонецМесяца = Формат(КонецМесяца(Выборка.Дата),"ДФ=dd.MM.yyyy");
	КонецЕсли;
	
	ТабличныйДокумент.Вывести(ОбластьМакета);
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. user1879509 09.12.23 16:25 Сейчас в теме
(1) В целом сам разобрался.
	ОбластьМакета = Макет.ПолучитьОбласть("ПериодДоговора");
	Если Выборка.Дата >=НачалоМесяца(Выборка.Дата) И Выборка.Дата<=НачалоМесяца(Выборка.Дата)+13*86400 Тогда 
		ОбластьМакета.Параметры.НачалоМесяца =Формат(ДобавитьМесяц(НачалоМесяца(Выборка.Дата),-1),"ДФ=dd.MM.yyyy"); 
		ОбластьМакета.Параметры.КонецМесяца = Формат(ДобавитьМесяц(КонецМесяца(Выборка.Дата),-1),"ДФ=dd.MM.yyyy");
	ИНАЧЕ 
		ОбластьМакета.Параметры.НачалоМесяца = Формат(НачалоМесяца(Выборка.Дата),"ДФ=dd.MM.yyyy");
		ОбластьМакета.Параметры.КонецМесяца = Формат(КонецМесяца(Выборка.Дата),"ДФ=dd.MM.yyyy");
	КонецЕсли;
	
	ТабличныйДокумент.Вывести(ОбластьМакета);
Показать
5. spacecraft 09.12.23 17:31 Сейчас в теме
(4) можно проще:
НужнаяДата = ДобавитьМесяц(Выборка.Дата, -(День(Выборка.Дата) < 15));
ОбластьМакета = Макет.ПолучитьОбласть("ПериодДоговора");
Периоды = Новый Структура("НачалоМесяца, КонецМесяца");
Периоды.НачалоМесяца = Формат(НачалоМесяца(НужнаяДата), "ДЛФ=D");
Периоды.КонецМесяца = Формат(КонецМесяца(НужнаяДата), "ДЛФ=D");
ОбластьМакета.Параметры.Заполнить(Периоды);
user1481466; +1 Ответить
2. Гость 07.12.23 23:56
Добрый день, Кирилл!
В коде печатной формы напишите что-то похожее на следующее:

СоответствиеДатДокументов = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(МассивСсылокНаДокументы, "Дата");
	Для Каждого Пара Из СоответствиеДатДокументов Цикл
		Период = Пара.Значение;
		ИскомыйПериод = Неопределено;
		Если День(Период)<=15 Тогда
			ИскомыйПериод = НачалоМесяца(ДобавитьМесяц(Период, -1));
		Иначе
			ИскомыйПериод = НачалоМесяца(Период);
		КонецЕсли;
		// выводите в необходимую область значение переменной ИскомыйПериод
	КонецЦикла;
Показать
3. user1879509 08.12.23 00:04 Сейчас в теме
(2) Спасибо, сейчас попробую
Оставьте свое сообщение

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