Всем доброго времени. Есть код
МассивСлов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаСекции.НазначениеПлатежа, "", истина);
 ТипЧисло = Новый ОписаниеТипов("Число");
 Для Индекс = 0 По МассивСлов.ВГраница() Цикл
 Слово = МассивСлов[Индекс];
 Если СтрНайти(Слово, "ком") Тогда
 комиссия = 0 + ТипЧисло.ПривестиЗначение(МассивСлов[Индекс+1]);
    УстановитьСвойство(ОбъектДляЗаписи, Строка("_СуммаУслуги"), комиссия);
 Прервать;
 КонецЕсли;
 КонецЦикла;

Но он проставляет комиссию только если в назначение платежа есть слово ком, как сделать чтобы еще и тянулось по слову комиссия. У меня два разных банка.
---
в 35 вам написал жи

```1c
    комиссия = 0 + ТипЧисло.ПривестиЗначение(СтрЗаменить(МассивСлов[Индекс+1],",","));
```
---
Если СтрНайти(Слово, "ком") Тогда

```1c
    Если СтрНайти(НРег(Слово), "ком") ИЛИ СтрНайти(НРег(Слово), "комиссия") Тогда
```

хотя "ком" присутствует и в слове "комиссия". Должно работать и без этого. Приведите все к одному регистру. т.е. обработайте все слова функцией НРег() или ВРег().
---
Не сработало. И я не могу понять в чем дело?
---
```1c
    СтрНачинаетсяС(НРег(Слово), "ком")
```

СтрНачинаетсяС(<Строка>, <СтрокаПоиска>)
Параметры:

<Строка> (обязательный)

Тип: Строка.
Строка, начало которой проверяется на совпадение с подстрокой поиска.
<СтрокаПоиска> (обязательный)

Тип: Строка.
Строка, содержащая предполагаемое начало строки.
В случае если переданное значение является пустой строкой генерируется исключительная ситуация.
Возвращаемое значение:

Тип: Булево.
Истина - строка начинается с указанной подстроки, Ложь - в противном случае.
---
кстати, спасибо за "СтрНачинаетсяС". Давно СП не читал. :)
---
Всегда пожалуйста :)
---
Эквайринг, по мерчанту 245184311548 от 01.12.2018 операции 50 на сумму 10000.00 удержано ком 100.00 Возвр 0.00/0.00 рога и копыта

Оплата по Договору N18546 от 24.09.11, НДС не выделяется.MISC комиссия 200.01, Дата выручки 06-12-18/MAST/SD5000,CM500,MIR/SD4000 CM40,00,VISA/SD20000.00,CM245.81,.

вот такого типа строки. Во второй по слову "комиссия" комиссия не вытягивается в нужное поле.
---
а в массиве слова "MISC" и "комиссия" присутствуют?
---
да. У меня эти строки берутся из назначения платежа. в коде есть ссылка на эту строку.
---
а символы в словах все русские?
---
В коде да, в назначении платежа-нет.
---
В коде да, в назначении платежа-нет я имею в виду слово "комиссия" :)
---
в коде есть ссылка на эту строку. подробнее можно?
---
МассивСлов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаСекции.НазначениеПлатежа, " ", истина);
---
И 2 и 4 должно работать.

Попробуйте добавить ещё СокрЛП()

```1c
    СтрНачинаетсяС(СокрЛП(НРег(Слово)), "ком")
```

Ну и вариация на тему

```1c
    СтрНайти(Лев(СокрЛП(НРег(Слово)),3), "ком")
```

Ну и вариант тупости банка
kомиссия <> комиссия // k в первом слове латинская
кoмиссия <> комиссия // о в первом слове латинская

Например в искомой строке используются символы Латинского алфавита
---
Я уже из строки сделала копипаст, тоже думала об этом.
---
из строки сделала копипаст наберите ВРУЧНУЮ текст на русской раскладке и скормите его функции, что скажет?
---
наберите ВРУЧНУЮ текст на русской раскладке и скормите его функции, что скажет?

ничего не сказал, проглотил в легкую.
---
проглотил в легкую да это понятно. элементы массива какие функция вернула?
---
Описала в 19. Это то что сообщило слово.
---
Ну и вариант тупости банка
kомиссия <> комиссия // k в первом слове латинская
кoмиссия <> комиссия // о в первом слове латинская
вот это проверяли?
---
У меня это не в функции описано, поэтому про элементы массива не могу сказать. А как проверить. Я еще новичек в этом деле и пока не все сразу понимаю.
---
ничего не сказал, проглотил в легкую. Может, наконец скопируете сюда точное и полное содержание строки, на которой спотыкается ваш код? А то пока лечим больного по словесному описанию его фотографии.
(23) вот это проверяли? Я бы еще проверил на слова "коммисия" и "коммиссия" - немало людей напишет именно так. И чем дальше, тем их будет больше.
---
Добавьте Сообщить и посмотрите что выводит.

```1c
    МассивСлов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаСекции.НазначениеПлатежа, ", истина);
    ТипЧисло = Новый ОписаниеТипов("Число");
    Для Индекс = 0 По МассивСлов.ВГраница() Цикл

    Сообщить(Слово);

    Слово = МассивСлов[Индекс];
    Если СтрНайти(Слово, "ком") Тогда
    комиссия = 0 + ТипЧисло.ПривестиЗначение(МассивСлов[Индекс+1]);
    УстановитьСвойство(ОбъектДляЗаписи, Строка("_СуммаУслуги"), комиссия);
    Прервать;
    КонецЕсли;
    КонецЦикла;
```

(14)
---
1. не
выделяется.MISC
комиссия-
дальше текста нет,

2. удержано
ком-дальше текста нет.
вроде правильно тянет.
---
А почему дальше текста нет, если в ваших строках он дальше есть.
---
Я сейчас из текста Оплата по Договору N18546 от 24.09.11, НДС не выделяется.MISC комиссия 200.01, Дата выручки 06-12-18/MAST/SD5000,CM500,MIR/SD4000 CM40,00,VISA/SD20000.00,CM245.81,.

после сочетания комиссия 200.01, убрала в ручную из файла запятую и все считалось правильно ошибка была в запятой после суммы, а не в слове комиссия. А как теперь решать вопрос с этой запятой???
---
СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>)

```1c
    комиссия = 0 + ТипЧисло.ПривестиЗначение(СтрЗаменить(МассивСлов[Индекс+1],",","));
```
---
А как теперь решать вопрос с этой запятой??? Возможно, явно задать параметр разделителя строк в РазложитьСтрокуВМассивПодстрок() - он у вас пустой.

Кстати, если мне не изменяет мой склероз, то по дефолту он как раз запятая, так что как у вас этот код вообще работает - ХЗ.
---
в 35 одну скобочку забыл, поправил :)
---
(5) Эквайринг, по мерчанту 245184311548 от 01.12.2018 операции 50 на сумму 10000.00 удержано ком 100.00 Возвр 0.00/0.00 рога и копыта

Оплата по Договору N18546 от 24.09.11, НДС не выделяется.MISC комиссия 200.01, Дата выручки 06-12-18/MAST/SD5000,CM500,MIR/SD4000 CM40,00,VISA/SD20000.00,CM245.81,.

А это назначение платежа как приходит из банка.
---
Сам код
МассивСлов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаСекции.НазначениеПлатежа, " ", истина);
 ТипЧисло = Новый ОписаниеТипов("Число");
 Для Индекс = 0 По МассивСлов.ВГраница() Цикл
 Слово = МассивСлов[Индекс];
 Сообщить(Слово);
 Если СтрНачинаетсяС(НРег(Слово), "ком") ИЛИ СтрНачинаетсяС(НРег(Слово), "комиссия") Тогда
 комиссия = 0 + ТипЧисло.ПривестиЗначение(МассивСлов[Индекс+1]);
    УстановитьСвойство(ОбъектДляЗаписи, Строка("_СуммаУслуги"), комиссия);
 Прервать;
 КонецЕсли;
 КонецЦикла;

Вот что вышло по строке сообщить слово:
Оплата
по
Договору
N18146
от
24.09.11,
НДС
не
выделяется.MISC
комиссия
Эквайринг,
по
мерчанту
123456789000
от
01.12.2018
операции
50
на
сумму
50000
удержано
ком

по слову комиссия по-прежнему не не проставляется в нужное поле.
---
по слову комиссия по-прежнему не не проставляется в нужное поле И не должно проставляться: в исходном коде вы берете значение из слова, следующего за "ком" (или "комиссия") - это "Эквайринг" - где тут сумма комиссии?

Если назначение платежа стандартизовано, то искать надо по слову "сумм", а не "ком(иссия)". А если нестандартизовано... дело тухлое.
---
Нееет. Со слова эквайринг пошло следующее назначение платежа, это уже другой банк. Я же показала строки выше как выгружается из банка.
---
у вас вот это:
вот с этим не сходится:
Оплата по Договору N18546 от 24.09.11, НДС не выделяется.MISC комиссия 200.01, Дата выручки 06-12-18/MAST/SD5000,CM500,MIR/SD4000 CM40,00,VISA/SD20000.00,CM245.81,.

Скажу так. Наймите программиста - это не Ваш путь.
---
Ну давайте так попробуем, что выводит Сообщить при таком коде:

```1c
    МассивСлов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаСекции.НазначениеПлатежа, " ", истина);
    ТипЧисло = Новый ОписаниеТипов("Число");
    Для Индекс = 0 По МассивСлов.ВГраница() Цикл
    Слово = МассивСлов[Индекс];
    Если СтрНачинаетсяС(СокрЛП(НРег(Слово)), "ком") Тогда
    комиссия = 0 + ТипЧисло.ПривестиЗначение(МассивСлов[Индекс+1]);
    Сообщить(Слово + ": "+комиссия );
    УстановитьСвойство(ОбъектДляЗаписи, Строка("_СуммаУслуги"), комиссия);
    Прервать;
    КонецЕсли;
    КонецЦикла;
```
---
ТипЧисло.ПривестиЗначение(МассивСлов[Индекс+1])
Сообщить(Слово + ": "+комиссия ); - вот здесь сломается :).
---
Почему?
Оно конвертнет число обратно к строке. Автоматом
---
а как можно избавиться от запятой в (33)?
---
в 35 вам написал жи

```1c
    комиссия = 0 + ТипЧисло.ПривестиЗначение(СтрЗаменить(МассивСлов[Индекс+1],",","));
```
---
комиссия = 0 + ТипЧисло.ПривестиЗначение(СтрЗаменить(МассивСлов[Индекс+1],",",""));
не убирает этот код запятую, она как была так и осталась, хотя должен.