Кстати, сейчас только заметил, что у меня в этом коде ошибка есть. Я его писал чтобы быстро разобрать конкретный файлик, и там элементы строкового типа не содержали посторонних символов. Строка по идее не может содержать только одиночный символ кавычки.
Чтобы разрешить в строках символы "{", "}", и "," нужно экранировать их переменной "РежимЧтенияСтроки":
Функция РазобратьТекст(Источник) Экспорт
Дерево = Новый ДеревоЗначений;
Дерево.Колонки.Добавить("Значение");
ТекущаяСтрока = Дерево.Строки.Добавить();
ТекущаяСтрока = ТекущаяСтрока.Строки.Добавить();
ТекущийРодитель = ТекущаяСтрока.Родитель;
ИсходныйТекст = Источник.ПолучитьТекст();
КоличествоСимволов = СтрДлина(ИсходныйТекст);
ТекущийСимвол = "";
Позиция = 0;
Пока ТекущийСимвол <> "{" И Позиция < КоличествоСимволов Цикл
Позиция = Позиция + 1;
ТекущийСимвол = Сред(ИсходныйТекст, Позиция, 1);
КонецЦикла;
Если ТекущийСимвол = "{" Тогда
Буфер = "";
РежимЧтенияСтроки = Ложь;
Пока Позиция < КоличествоСимволов Цикл
Позиция = Позиция + 1;
ТекущийСимвол = Сред(ИсходныйТекст, Позиция, 1);
Если НЕ РежимЧтенияСтроки И ТекущийСимвол = "{" Тогда
ТекущийРодитель = ТекущаяСтрока;
ТекущаяСтрока = ТекущаяСтрока.Строки.Добавить();
ИначеЕсли НЕ РежимЧтенияСтроки И ТекущийСимвол = "," Тогда
ТекущаяСтрока.Значение = Буфер;
Буфер = "";
ТекущаяСтрока = ТекущийРодитель.Строки.Добавить();
ИначеЕсли НЕ РежимЧтенияСтроки И ТекущийСимвол = "}" Тогда
ТекущаяСтрока.Значение = Буфер;
Буфер = "";
ТекущаяСтрока = ТекущийРодитель;
ТекущийРодитель = ТекущаяСтрока.Родитель;
ИначеЕсли ТекущийСимвол = """" Тогда
РежимЧтенияСтроки = НЕ РежимЧтенияСтроки;
Буфер = Буфер + ТекущийСимвол;
ИначеЕсли РежимЧтенияСтроки Тогда
Буфер = Буфер + ТекущийСимвол;
ИначеЕсли НЕ ПустаяСтрока(ТекущийСимвол)
ИЛИ (ТекущийСимвол = " ") Тогда
Буфер = Буфер + ТекущийСимвол;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат Дерево;
КонецФункции