Записки программиста 1с

Преобразовать массив 1с в строку.

Преобразовать массив 1с в строку можно при помощи СтрСоединить. Обратное преобразование выполняется строковой функцией СтрРазделить.

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

Конфигурации 1с содержат различные данные о сотрудниках или контрагентах. Эти данные можно переносить между различными базами. Применение массивов и строк один из способов реализации такого обмена. Программирование в 1с : Предприятии позволяет соединить элементы строкового массива в одну строку.

Объединить в массив в строку можно двумя способами:

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

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

Во-первых рассмотрим соединение строковых элементов массива в строку функцией СтрСоединить(). В качестве примера рассмотрим работу с Адресом контрагента.

Пример кода:

МассивАдрес = Новый Массив;
МассивАдрес.Добавить("Невский проспект");
МассивАдрес.Добавить("дом. 112");
МассивАдрес.Добавить("1 кв.");
	
СтрокаИзМассива = СтрСоединить(МассивАдрес, ";");
//отображение результата
Сообщить("Строка="+СтрокаИзМассива);
Объект.Строка=СтрокаИзМассива;

Преобразование массива циклом в строку

Использование цикла является более сложный, но в то же время универсальный. Этот способ предпочитают специалисты, имеющие опят программирования в других системах программирования. Суть метода заключается в обходе массива циклом и формировании строки вручную. Целесообразно использовать цикл специально предназначенный для работы с коллекциями значений.

МассивАдрес = Новый Массив;
МассивАдрес.Добавить("Невский проспект");
МассивАдрес.Добавить("дом. 112");
МассивАдрес.Добавить("1 кв.");

Разделитель=";";
СтрокаИзМассива ="";
для каждого ТекЭлемент из МассивАдрес цикл
СтрокаИзМассива=СтрокаИЗМассива+ТекЭлемент+Разделитель;
сообщить(СтрДлина(СтрокаИзМассива));
конеццикла;
колво=СтрДлина(СтрокаИзМассива)-СтрДлина(Разделитель);
Сообщить("Колво="+колво);
СтрокаИзМассива=Лев(СтрокаИзМассива,колво);	
//СтрокаИзМассива = СтрСоединить(МассивАдрес, ";");
Сообщить("Строка="+СтрокаИзМассива);
Объект.Строка=СтрокаИзМассива;

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

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

Разделить строку в массив функцией СтрРазделить

В-третьих разделим строку в массив функцией СтрРазделить(). Пример кода

МассивАдрес=СтрРазделить(СтрокаИзМассива,";"); 
//МассивАдрес[0] = "Невский проспект";
//МассивАдрес[1] = "дом. 112";

//МассивАдрес[2] = "1 кв.";

Для вывода массива используем цикл Для. Данный пример иллюстрирует применение данного вида цикла при работе с массивами.

        колво=МассивАдрес.Количество()-1;
	номер=0;
	для номер=0 по колво цикл
	Сообщить("Элемент["+номер+"]="+МассивАдрес[номер]);	
	конеццикла

Скачать обработку с рассмотренными примерами можно по ссылке(обработка).

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

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