Здравствуйте, подскажите пожалуйста как вытащить из строки значения
Пример : мол: Иванов Иван Иванович ; должность: строитель; пол: мужской;
Необходимо вытащить Иванов Иван Иванович, строитель, мужской
Мол, должность и пол могут менять.
---
Еще вариант

```1c
    ИсходнаяСтрока = "мол: Иванов Иван Иванович ; должность: строитель; пол: мужской;";
    Массив = СтрРазделить(ИсходнаяСтрока, ";");
    Результат = Новый Соответствие;
    Для Каждого Строка Из Массив Цикл
    МассивПодстрок = СтрРазделить(Строка, ":");
    Если МассивПодстрок.Количество() = 2 Тогда
    Результат.Вставить(МассивПодстрок[0], МассивПодстрок[1]);
    Иначе
    ВызватьИсключение("Ошибка");
    КонецЕсли;
    КонецЦикла;
```
---
проверки на входные данные делаете? Если разделители всегда одни и те-же и количество полей не меняется, то через СтрРазделить проще всего будет наверно

```1c
    ИсходнаяСтрока = "мол: Иванов Иван Иванович ; должность: строитель; пол: мужской;";
    Массив1 = СтрРазделить(ИсходнаяСтрока, ";:");
    Сообщить(СокрЛП(Массив1[1]) + ", " + СокрЛП(Массив1[3]) + ", " + СокрЛП(Массив1[5]));
```
---
проверку необходимо делать так как какой из параметров может быть не задан. Например : мол, должность
---
и какого вида тогда будет строка?
---
мол: Иванов Иван Иванович ; должность: строитель
---
типа того тогда

```1c
    ИсходнаяСтрока = "мол: Иванов Иван Иванович ; должность: строитель; пол: мужской;";
    Массив1 = СтрРазделить(ИсходнаяСтрока, ";:");
    КоличествоЭлементов = Массив1.Количество();
    Индекс = 1;
    Массив2 = Новый Массив;
    Пока Индекс < КоличествоЭлементов Цикл
    Массив2.Добавить(СокрЛП(Массив1[Индекс]));
    Индекс = Индекс + 2;
    КонецЦикла;
    ИтоговаяСтрока = СтрСоединить(Массив2, ", ");
    Сообщить(ИтоговаяСтрока);
```
---
с этим все теперь понятно ) спасибо )) ещё вопрос. Как проверить Значение , позицию мол , должность , пол. Есть ли она и какая позицию в массиве ? Через стрнайти ?
---
последовательность может менять , а некоторых может не быть
---
пол: мужской
пол могут менять
И до нас добрались, то есть?
---
Ну или что то на подобие этого :

ИсходнаяСтрока = "мол: Иванов Иван Иванович ; должность: строитель; пол: мужской;";
ИтоговаяСтрока=СтрЗаменить(ИсходнаяСтрока,"мол: ","");
ИтоговаяСтрока=СтрЗаменить(ИтоговаяСтрока,"; должность: ",", ");
ИтоговаяСтрока=СтрЗаменить(ИтоговаяСтрока,"; пол: ",", ");
Сообщить(ИтоговаяСтрока);
---
А почему бы не использовать СтрРазделить 2 раза.
То есть сперва Разбиваем на подстроки с разделителем ";"
Получим массив
мол : Иванов Иван
пол : Мужской
и т.д.

А затем перебрав их циклом к каждой применим СтрРазделить с разделителем ":"
И тогда получим то что хотим. Независимо от количества таких пар. Всегда получим правые значения их всех.
---
на минуту опередили с таким же ответом
---
Number One )))))))))
---
А всё потому что нельзя человеку сразу давать готовый код, кинь ему мысль, направление. Дальше пусть сам раскручивается и пишет, чтобы полностью осознавал что его код делает.
---
буковок то одинаково получилось почти. что описать алгоритм, что код написать. :-)
---
А почему бы не использовать СтрРазделить 2 раза.
А зачем 2, если можно 1?

```1c
    СтрРазделить(Строка,":;")
```

А выводить каждый второй элемент.
---
с двумя стр разделить красивее получается, как мне кажется
---
Тоже вариант)) я не против)) просто мне показалось более логичным использовать 2 раза СтрРазделить,
как-то более приближено к структуре записи информации в исходную строку что-ли получается....
---
Еще вариант

```1c
    ИсходнаяСтрока = "мол: Иванов Иван Иванович ; должность: строитель; пол: мужской;";
    Массив = СтрРазделить(ИсходнаяСтрока, ";");
    Результат = Новый Соответствие;
    Для Каждого Строка Из Массив Цикл
    МассивПодстрок = СтрРазделить(Строка, ":");
    Если МассивПодстрок.Количество() = 2 Тогда
    Результат.Вставить(МассивПодстрок[0], МассивПодстрок[1]);
    Иначе
    ВызватьИсключение("Ошибка");
    КонецЕсли;
    КонецЦикла;
```
---
добавил бы Ложь третьим параметром:

```1c
    Массив = СтрРазделить(ИсходнаяСтрока, ";", Ложь);
```

как бы мелочь, и пустые подстроки не будут обработаны в дальнейшем, но - не помешает.
---
А вообще уж не JSON ли вы там ковыряете?
Разлопатили его на куски и теперь куски пытаетесь разобрать?