Существует много способов разделения строки на подстроки, выбор способа зависит от цели, которую ставит перед собой разработчик, а также от режима совместимости, который указан настройках конфигурации.
СтрРазделить()
Начиная с версии платформы 8.3.6 для разделения строки в массив можно воспользоваться стандартной функцией платформы :
СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)
Параметры:
| Имя параметра | Тип | Описание |
| <Строка> (обязательный) | Строка | Входная строка |
| <Разделитель> (обязательный) | Строка | Строка символов, каждый из которых является индивидуальным разделителем. |
| <ВключатьПустые> (необязательный) | Булево | Указывает необходимость включать в результат пустые строки, которые могут образоваться в результате разделения исходной строки. Значение по умолчанию: Истина. |
Возвращаемое значение — Тип Массив, Массив строк, которые получились в результате разделения входной строки
Если у вас разделитель это слово или набор символов, тогда эта функция вам не подойдет, используйте функция из БСП с аналогичными параметрами.
СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(<Строка>, <Разделитель>, <ПропускатьПустыеСтроки>);
Подробней о этой функции или о других функциях из БСП вы можете прочитать на портале ИТС
Разделение строк до версии 8.3.6
Если вы получили ошибку: Процедура или функция с указанным именем не определена (СтрРазделить), тогда этот совет поможет вам:
В конфигурациях на обычных формах, например УТ 10.3 строки можно разделить через функцию БСП
ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(<Строка>, <Разделитель>);
Своя функция для разделения строк
// Функция - Разделяет строку на массив по указанному разделителю // // Параметры: // ВходящаяСтрока - Строка - Строка для разделения // Разделитель - Строка - Строка разделитель // // Возвращаемое значение: // Массив - Массив строк, которые получились в результате разделения входной строки // Функция СтрРазделить(ВходящаяСтрока, Разделитель) Рез = Новый Массив(); ВрСтрока = СтрЗаменить(ВходящаяСтрока, Разделитель, Символы.ПС); Для Сч = 1 По СтрЧислоСтрок(ВрСтрока) Цикл Стр = СтрПолучитьСтроку(ВрСтрока, Сч); Если Разделитель = " " и СокрЛП(Стр) = "" Тогда Продолжить; КонецЕсли; Рез.Добавить(Стр); КонецЦикла; Возврат Рез; КонецФункции
Если вы знаете более эффективный способ разделения строки, пожалуйста , напишите об этом в комментариях )

М=Новый Массив();
Для Шаг=1 По СтрДлина(Стр) Цикл
М.Добавить(Сред(Стр,Шаг,1));//Substring
КонецЦикла;
Возврат М;
КонецФункции
2.Функция СтрЗамена(Строки,ПаттернЗамены,ЗаменаЧем)
RegExp = Новый COMОбъект(«VBScript.RegExp»);
RegExp.IgnoreCase = Истина;
RegExp.Global = Истина;
RegExp.MultiLine = Истина;
RegExp.Pattern = ПаттернЗамены;
RegExp.Replace(Строки,ЗаменаЧем);
Возврат RegExp.Replace(Строки,ЗаменаЧем);
КонецФункции
Для Каждого Эл Из СтрРазделить(СтрЗамена(«Строка»,«(.)(?=.)»,«$1-«),«-«) Цикл
Сообщить(Эл);
КонецЦикла;