|
Заполнение реквизита формы из разобранного текста | ☑ | ||
---|---|---|---|---|
0
prilforreal
17.11.17
✎
08:51
|
Доброго утра, волшебникам! Есть форма документа оплата, документ формируется автоматически при выгрузке электронных писем, реквизиты заполняются из разобранного текста сообщения вот текст письма
Vhodyaschiy platezh. Summa 2,222.22 RUB. Otpravitel ******** *******. 16.11.2017. разбираю текст для заполнения реквизита сумма: ИС = СтрЗаменить(СтрТЗ.Тело,",",""); Если ((поз>0)и(сред(СтрТЗ.Тело,33,1)=".")) тогда дО.Сумма=(ИС+Число(Число(Сред(СтрТЗ.Тело,27,5)))); ИначеЕсли ((поз>0)и(сред(СтрТЗ.Тело,32,1)=".")) тогда дО.Сумма=(ИС+Число(Число(Сред(СтрТЗ.Тело,27,4)))); ИначеЕсли ((поз>0)и(сред(СтрТЗ.Тело,31,1)=".")) тогда дО.Сумма=(ИС+Число(Число(Сред(СтрТЗ.Тело,27,3)))); ИначеЕсли ((поз>0)и(сред(СтрТЗ.Тело,30,1)=".")) тогда дО.Сумма=(ИС+Число(Число(Сред(СтрТЗ.Тело,27,2)))); КонецЕсли; Но в документе реквизит не заполняется, помогите понять в чем дело и навести порядок в голове и коде) |
|||
1
Lexey_
17.11.17
✎
08:56
|
(0) есть же отладчик
|
|||
2
prilforreal
17.11.17
✎
09:00
|
Поправил до такого вида:
ИС = СтрЗаменить(СтрТЗ.Тело,",",""); Сумма=0; Если ((поз>0)и(сред(СтрТЗ.Тело,33,1)=".")) тогда Сумма=(ИС+(Сред(СтрТЗ.Тело,27,5))); ИначеЕсли ((поз>0)и(сред(СтрТЗ.Тело,32,1)=".")) тогда Сумма=(ИС+(Сред(СтрТЗ.Тело,27,4))); ИначеЕсли ((поз>0)и(сред(СтрТЗ.Тело,31,1)=".")) тогда Сумма=(ИС+(Сред(СтрТЗ.Тело,27,3))); ИначеЕсли ((поз>0)и(сред(СтрТЗ.Тело,30,1)=".")) тогда Сумма=(ИС+(Сред(СтрТЗ.Тело,27,2))); КонецЕсли; дО.Сумма=Число(Сумма); Вылетает преобразование к типу число не может быть выполнено |
|||
3
VladZ
17.11.17
✎
09:01
|
Жуть какая. Я бы делал так: нашел в строке "Summa", обрезал все слева. Нашел "RUB", обрезал справа. Убрал "," и привел к числу.
|
|||
4
prilforreal
17.11.17
✎
09:03
|
(3) Как так обрезал? чем?
|
|||
5
VladZ
17.11.17
✎
09:04
|
Сред(), Лев(), Прав()
|
|||
6
VladZ
17.11.17
✎
09:05
|
Читай букварь: http://helpme1c.ru/stroki-v-yazyke-1s-8-v-primerax
|
|||
7
igorPetrov
17.11.17
✎
09:06
|
(4) Волшебной палочкой.
|
|||
8
prilforreal
17.11.17
✎
09:06
|
(6) Я все время думал что Сред(), Лев(), Прав() определяют позицию и не более...
|
|||
9
Lexey_
17.11.17
✎
09:07
|
(8) есть же СП, зачем гадать?
|
|||
10
prilforreal
17.11.17
✎
09:14
|
(5) Благо дарю тебе чародей!) Все ясно и просто) Осталось запятые убрать) и точки заменить на запятые))
Сумма=Сред(СтрТЗ.Тело,поз+27); поз=СтрНайти(Сумма," RUB."); если поз>0 тогда Сумма=Лев(Сумма,поз-5); конецесли; дО.Сумма=Число(Сумма); |
|||
11
igorPetrov
17.11.17
✎
09:25
|
(8) Думать вредно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |