Ошибка типовой УНФ как доказательство отсутствия тестов
Ходит много споров, пишут ли разработчики типовых конфигураций авто-тесты для проверки конфигураций.
Исходя из тех ошибок, с которыми я сталкивался на практике, думаю тотального тестирования методов нет.
Рассмотрим банальную ошибку в типовом коде УНФ 1.6.27.167 :
&НаКлиенте Процедура РасходыКонтрагентПриИзменении(Элемент) РасходыКонтрагентПриИзмененииНаСервере() КонецПроцедуры &НаСервере Процедура РасходыКонтрагентПриИзмененииНаСервере() ТекущиеДанные = Элементы.Расходы.ТекущиеДанные; ТекущиеДанные.Договор = Справочники.ДоговорыКонтрагентов.ПоДокументуКонтрагентуОрганизацииИВидуОперации( Объект.Ссылка, ТекущиеДанные.Контрагент, Объект.Организация); КонецПроцедуры
Ошибка заключается в том, что на сервере нет текущих данных.
Как могла покрытая тестами конфигурация пройти тестирование, непонятно. Вывод — тесты не покрывают весь функционал.
Пришлось исправлять за 1С в форме документа «Прочие расходы»:
&НаКлиенте &Вместо("РасходыКонтрагентПриИзменении") Процедура УНФ_РасходыКонтрагентПриИзменении(Элемент) //В типовой 1с ошибка, поэтому заменяем своим кодом ТекущиеДанные = Элементы.Расходы.ТекущиеДанные; Если ТекущиеДанные <> Неопределено Тогда ТекущиеДанные.Договор = дор_РасходыКонтрагентПриИзмененииНаСервере(ТекущиеДанные.Контрагент); КонецЕсли; //ПродолжитьВызов(Элемент); КонецПроцедуры Функция дор_РасходыКонтрагентПриИзмененииНаСервере(Контрагент) Возврат Справочники.ДоговорыКонтрагентов.ПоДокументуКонтрагентуОрганизацииИВидуОперации( Объект.Ссылка, Контрагент, Объект.Организация); КонецФункции
Вот как такой код попадает в релиз? Для чего придуманы тесты, дорогая 1С?
