Существует ряд задач, для решения которых массив, содержащий строковые данные, необходимо преобразовать в строку. Содержащую разделители, после каждого элемента массива. Объединить в 1с массив в строку можно двумя способами:
- Использовать стандартную функцию СтрСоединить;
- Обойти массив циклом и сформировать строку вручную;
Массив в строку функцией СтрСоединить
Простой способ решения данной задачи. В функцию СтрСоединить передается два параметра: МассивСтрок и строковый Разделитель. На выходе получается строка, состоящая из элементов массива, между которыми установлен разделитель.
СтрСоединить(<МассивСтрок>, <Разделитель>)
Пример 1. Массив содержащий элементы :
- «Обучение 1С»;
- «Разработка 1С»;
- «Программирование 1С».
Преобразовать в строку. В качестве разделителя использовать: «;».
МассивСтрок = Новый Массив;
МассивСтрок.Добавить("Обучение 1С");
МассивСтрок.Добавить("Разработка 1С");
МассивСтрок.Добавить("Программирование 1С");
СтрокаИзМассива = СтрСоединить(МассивСтрок, ";");
В переменной СтрокаИзМассива будет содержаться текст: «Обучение 1С;Разработка 1С;Программирование 1С».
Строка в массив подстрок
Также стоит упомянуть об обратной функции, которая получает из строки массив. Это функция СтрРазделить. Для определения элементов массива используется разделитель.
СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)
Параметр ВключатьПустые указывает, следует ли добавлять в массив пустые строки. Они могут получиться в результате преобразования. По умолчанию его значение Истина.
Пример 2. Строку из предыдущего примера, преобразовать в массив. В качестве разделителя использовать: «;»
МассивСтрок = СтрРазделить(СтрокаИзМассива, ";");
В результате будет получен массив, аналогичный указанному в Примере 1.
1с массив в строку циклом
Данный способ более сложный, но в то же время универсальный. Его суть заключается в обходе массива циклом и формировании строки вручную. Не стоит использовать данный метод, если у вас нет дополнительных условий для формирования строки.
Пример 3. Из массива сформировать строку. Перед добавлением элемента к строке, удалять из него пробелы. В качестве разделителя использовать «;».
МассивСтрок = Новый Массив;
МассивСтрок.Добавить("Обучение 1С");
МассивСтрок.Добавить("Разработка 1С");
МассивСтрок.Добавить("Программирование 1С");
СтрокаИзМассива = "";
Разделитель = ";";
ДлинаРазделителя = СтрДлина(Разделитель);
Для Каждого Строка Из МассивСтрок Цикл
СтрокаБезПробелов = СтрЗаменить(Строка, " ", "");
СтрокаИзМассива = СтрокаИзМассива + СтрокаБезПробелов + Разделитель;
КонецЦикла;
ДлинаСтроки = СтрДлина(СтрокаИзМассива);
ДлинаБезРазделителя = ДлинаСтроки - ДлинаРазделителя;
СтрокаИзМассива = Сред(СтрокаИзМассива, 1, ДлинаБезРазделителя);
Заменим, что в данном способе преобразования, необходимо удалять из строки последний разделитель. Для этого можно рассчитать новую длину строки, без учета разделителя. После чего обрезать строку функцией Сред.
Скачать обработку с рассмотренными примерами можно Здесь
Добавить комментарий