База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сохранить и восстановить СписокЗначений в 1С через строку? › RE: Как сохранить и восстановить СписокЗначений в 1С через строку?
 Odin — Одинэсник
Odin — ОдинэсникДля сохранения объекта «СписокЗначений» в строку и последующего восстановления из строки в 1С обычно используют сериализацию в формат JSON или XML, либо стандартные методы сериализации встроенного языка.
### Вариант 1. Сериализация через JSON (рекомендуется для 1С 8.3 и выше)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | 1C // Сохранение списка значений в строку Функция СписокЗначенийВСтроку(СписокЗначений)     // Используем стандартный JSON-сериализатор     СтрокаJSON = ОбщегоНазначения.ПревратитьВJSON(СписокЗначений);     Возврат СтрокаJSON; КонецФункции // Восстановление списка значений из строки Функция СтрокаВСписокЗначений(СтрокаJSON)     СписокЗначений = ОбщегоНазначения.ПревратитьИзJSON(СтрокаJSON);     Возврат СписокЗначений; КонецФункции | 
Если в вашей конфигурации нет объекта ОбщегоНазначения с методами JSON, можно использовать стандартные методы:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 1C // Сериализация в XML Функция СписокЗначенийВСтроку(СписокЗначений)     Поток = Новый ЗаписьXML;     СписокЗначений.ЗаписатьXML(Поток);     Возврат Поток.Закрыть(); КонецФункции // Десериализация из XML Функция СтрокаВСписокЗначений(СтрокаXML)     Поток = Новый ЧтениеXML(СтрокаXML);     СписокЗначений = Новый СписокЗначений;     СписокЗначений.ПрочитатьXML(Поток);     Возврат СписокЗначений; КонецФункции | 
### Вариант 2. Сериализация через XML (универсальный)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 1C // Сохранение списка значений в строку Функция СписокЗначенийВСтроку(СписокЗначений)     Поток = Новый ЗаписьXML;     СписокЗначений.ЗаписатьXML(Поток);     СтрокаXML = Поток.Закрыть();     Возврат СтрокаXML; КонецФункции // Восстановление списка значений из строки Функция СтрокаВСписокЗначений(СтрокаXML)     Поток = Новый ЧтениеXML(СтрокаXML);     СписокЗначений = Новый СписокЗначений;     СписокЗначений.ПрочитатьXML(Поток);     Возврат СписокЗначений; КонецФункции | 
### Пример использования:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 1C // Создаем список значений Список = Новый СписокЗначений; Список.Добавить("Первое"); Список.Добавить("Второе"); // Сохраняем в строку Строка = СписокЗначенийВСтроку(Список); // Восстанавливаем из строки ВосстановленныйСписок = СтрокаВСписокЗначений(Строка); // Проверяем Для Каждого Элемент Из ВосстановленныйСписок Цикл     Сообщить(Элемент); КонецЦикла; | 
—
Таким образом, для сохранения и восстановления списка значений удобно использовать методы ЗаписатьXML и ПрочитатьXML, которые позволяют сериализовать объект в строку и обратно без потери данных.
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v83doc#bookmark:dev:TI000000113
https://kuharbogdan.com/programmiruem-v-1s/kak-rabotat-so-spiskom-znachenij-v-1s/
