1C: нормализация номера сотового телефона

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

Функция ПроверитьКорректностьТелефона(телефона) экспорт
	телефон=телефона;
	answer=Новый Структура("error,result,errortxt,code",false,"","",0);
	телефон=СтрЗаменить(телефон," ","");
	телефон=СтрЗаменить(телефон,"(","");
	телефон=СтрЗаменить(телефон,")","");
	телефон=СтрЗаменить(телефон,"-","");
	телефон=СтрЗаменить(телефон,"+","");
	если СтрДлина(телефон)=10 тогда телефон="7"+телефон;конецесли;	
	если СтрДлина(телефон)=11 тогда 
		если Лев(телефон, 1)="8" тогда
			телефон=Сред(телефон,2);
			телефон="7"+телефон;
		конецесли;	
	конецесли;	
	если СтрДлина(телефон)<>11 тогда
		answer.error=true;
		answer.errortxt="Не верный номер телефона";
		answer.code=501;
	конецесли;	
	
	answer.result=телефон;
	возврат answer;
конецфункции

На выходе: answer.error true/false. Если false, то в answer.result — нормализованый номер телефона