- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
Функция ТекстЗапросаИзСтрокиВЧисло(пИмяПоля, пДлинаСтроки, пСимволРазделителя=".")
лТекст="ВЫБОР ";
Для лДлинаЦелойЧасти=0 По пДлинаСтроки Цикл
Если лДлинаЦелойЧасти=пДлинаСтроки Тогда
лТекст=лТекст+"ИНАЧЕ"+Символы.ПС;
Иначе
лТекст=лТекст+"КОГДА ПОДСТРОКА("+пИмяПоля+", "+(лДлинаЦелойЧасти+1)+", 1)="""+пСимволРазделителя+""" ИЛИ ПОДСТРОКА("+пИмяПоля+", "+(лДлинаЦелойЧасти+1)+", 1)="""" ТОГДА "+Символы.ПС;
КонецЕсли;
Если лДлинаЦелойЧасти=0 Тогда лТекст=лТекст+" 0"+Символы.ПС; КонецЕсли;
Для лИнд=1 По лДлинаЦелойЧасти Цикл
лТекст=лТекст+" ВЫБОР "+Символы.ПС;
Для лЦифра=0 По 9 Цикл
лТекст=лТекст+" КОГДА ПОДСТРОКА("+пИмяПоля+", "+лИнд+", 1)="""+лЦифра+""" ТОГДА "+лЦифра+Символы.ПС;
КонецЦикла;
лТекст=лТекст+" ИНАЧЕ 0 КОНЕЦ"+?(лИнд=лДлинаЦелойЧасти, "", "*"+Формат(Pow(10, лДлинаЦелойЧасти-лИнд), "ЧРД=.; ЧГ=0")+"+")+Символы.ПС;
КонецЦикла;
Для лИнд=лДлинаЦелойЧасти+2 По пДлинаСтроки Цикл
лТекст=лТекст+"+ ВЫБОР";
Для лЦифра=0 По 9 Цикл
лТекст=лТекст+" КОГДА ПОДСТРОКА("+пИмяПоля+", "+лИнд+", 1)="""+лЦифра+""" ТОГДА "+лЦифра+Символы.ПС;
КонецЦикла;
лТекст=лТекст+" ИНАЧЕ 0 КОНЕЦ"+?(лИнд=лДлинаЦелойЧасти, "", "/"+Формат(Pow(10, лИнд-лДлинаЦелойЧасти-1), "ЧРД=.; ЧГ=0"))+Символы.ПС;
КонецЦикла;
КонецЦикла;
лТекст=лТекст+"КОНЕЦ";
Возврат лТекст;
КонецФункции