Как преобразовать в 1с массив в строку

Существует ряд задач, для решения которых массив, содержащий строковые данные, необходимо преобразовать в строку. Содержащую разделители, после каждого элемента массива. Объединить в 1с массив в строку можно двумя способами:

  • Использовать стандартную функцию СтрСоединить;
  • Обойти массив циклом и сформировать строку вручную;

Массив в строку функцией СтрСоединить

Простой способ решения данной задачи. В функцию СтрСоединить передается два параметра: МассивСтрок и строковый Разделитель. На выходе получается строка, состоящая из элементов массива, между которыми установлен разделитель.

СтрСоединить(<МассивСтрок>, <Разделитель>)

Пример 1. Массив содержащий элементы :

  • «Обучение 1С»;
  • «Разработка 1С»;
  • «Программирование 1С».

Преобразовать в строку. В качестве разделителя использовать: «;».

МассивСтрок = Новый Массив;
МассивСтрок.Добавить("Обучение 1С");
МассивСтрок.Добавить("Разработка 1С");
МассивСтрок.Добавить("Программирование 1С");
	
СтрокаИзМассива = СтрСоединить(МассивСтрок, ";");

В переменной СтрокаИзМассива будет содержаться текст: «Обучение 1С;Разработка 1С;Программирование 1С».

Строка в массив подстрок

Также стоит упомянуть об обратной функции, которая получает из строки массив. Это функция СтрРазделить. Для определения элементов массива используется разделитель.

СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)

Параметр ВключатьПустые указывает, следует ли добавлять в массив пустые строки. Они могут получиться в результате преобразования. По умолчанию его значение Истина.

Пример 2. Строку из предыдущего примера, преобразовать в массив. В качестве разделителя использовать: «;»

МассивСтрок = СтрРазделить(СтрокаИзМассива, ";");

В результате будет получен массив, аналогичный указанному в Примере 1.

1с массив в строку циклом

Данный способ более сложный, но в то же время универсальный. Его суть заключается в обходе массива циклом и формировании строки вручную. Не стоит использовать данный метод, если у вас нет дополнительных условий для формирования строки.

Пример 3. Из массива сформировать строку. Перед добавлением элемента к строке, удалять из него пробелы. В качестве разделителя использовать «;».

МассивСтрок = Новый Массив;
МассивСтрок.Добавить("Обучение 1С");
МассивСтрок.Добавить("Разработка 1С");
МассивСтрок.Добавить("Программирование 1С");
	
СтрокаИзМассива = "";
	
Разделитель = ";";
ДлинаРазделителя = СтрДлина(Разделитель);
	
Для Каждого Строка Из МассивСтрок Цикл
		
    СтрокаБезПробелов = СтрЗаменить(Строка, " ", "");
    СтрокаИзМассива = СтрокаИзМассива + СтрокаБезПробелов + Разделитель;
		
КонецЦикла;
	
ДлинаСтроки = СтрДлина(СтрокаИзМассива);
ДлинаБезРазделителя = ДлинаСтроки - ДлинаРазделителя;

СтрокаИзМассива = Сред(СтрокаИзМассива, 1, ДлинаБезРазделителя);

Заменим, что в данном способе преобразования, необходимо удалять из строки последний разделитель. Для этого можно рассчитать новую длину строки, без учета разделителя. После чего обрезать строку функцией Сред.

Скачать обработку с рассмотренными примерами можно Здесь

Добавить комментарий

Ваш адрес email не будет опубликован.