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