Проблемы с платежным календарем в УНФ 1.6

В отчете «Платежный календарь» УНФ не показываются строки по счету, хотя по нему запланированы платежи.

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

В итоге разбирательств было обнаружено, что если сумма оборота нулевая, то строка отбрасывается и в результате происходит ошибка.

Вот пример ошибки:

Сделал расширение на форму отчета «Платежный календарь»:

&НаСервере
&ИзменениеИКонтроль("ДобавитьЭлементДерева")
Функция дор_ДобавитьЭлементДерева(Выборка, ТипАналитики, Родитель, ПараметрыГруппировок)
#Вставка
	//При таком коде в типовом отчете возникает ошибка, поэтому сделана заплатка.
	Попытка 
		ТипАналитикиСтрокой = XMLСтрока(ТипАналитики);
		Аналитика = Выборка[ТипАналитикиСтрокой];
		
		//Если Родитель = Неопределено И ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.Документ И ТипЗнч(Аналитика) <> Тип("ДокументСсылка.ПеремещениеДСПлан") Тогда
		//	Возврат Неопределено;
		//КонецЕсли;                                                                 
		
		//Если родитель не указан, тогда выходим.... 2023-04-10
		Если Родитель = Неопределено Тогда
			Возврат Неопределено;
		КонецЕсли;                                                                   
	Исключение
		Возврат Неопределено;
	КонецПопытки;
#КонецВставки

#Удаление
	Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.БанковскийСчетКасса И Выборка.СуммаОборот = 0 И Выборка.СуммаОстаток = 0 Тогда
		Возврат Неопределено;
	КонецЕсли;

	Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.Статья И Выборка.СуммаОборот = 0 Тогда
		Возврат Неопределено;
	КонецЕсли;

	Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.Контрагент И Выборка.СуммаОборот = 0 Тогда
		Возврат Неопределено;
	КонецЕсли;
#КонецУдаления

	Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.Документ И НЕ ЗначениеЗаполнено(Выборка.Документ) Тогда
		Возврат Неопределено;
	КонецЕсли;
#Вставка
	//Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.БанковскийСчетКасса И Выборка.СуммаОборот = 0 И Выборка.СуммаОстаток = 0 Тогда
	//Осипов
	Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.БанковскийСчетКасса И Выборка.СуммаОборот = 0 И Выборка.СуммаОстаток = 0 
		И Выборка.Приход = 0 И Выборка.ПриходВал = 0 И Выборка.ПриходРег = 0 И Выборка.Расход = 0 И Выборка.РасходВал = 0 И Выборка.РасходРег = 0
		Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	//Осипов
	//Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.Статья И Выборка.СуммаОборот = 0 Тогда
	Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.Статья И Выборка.СуммаОборот = 0 
		И Выборка.Приход = 0 И Выборка.ПриходВал = 0 И Выборка.ПриходРег = 0 И Выборка.Расход = 0 И Выборка.РасходВал = 0 И Выборка.РасходРег = 0
		Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	//Осипов
	//Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.Контрагент И Выборка.СуммаОборот = 0 Тогда
	Если ТипАналитики = Перечисления.АналитикаПлатежногоКалендаря.Контрагент И Выборка.СуммаОборот = 0
		И Выборка.Приход = 0 И Выборка.ПриходВал = 0 И Выборка.ПриходРег = 0 И Выборка.Расход = 0 И Выборка.РасходВал = 0 И Выборка.РасходРег = 0
		Тогда
		Возврат Неопределено;
	КонецЕсли;
#КонецВставки

	...

	Возврат НоваяСтрока;

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

Обратите внимание — я заменил целый блок проверок, а не каждую строку отдельно.

Среда: УНФ 1.6.27.167 Объем: 1.5 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *