Проблемы с платежным календарем в УНФ 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 час.
Свежие комментарии