База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сохранить и восстановить СписокЗначений в 1С через строку?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 месяца, 1 неделя назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
9 сентября 2025 в 13:45 #33366
как сохранить списокзначений 1с в строку и восстановить потом из строки
-
9 сентября 2025 в 13:45 #33367
Для сохранения объекта «СписокЗначений» в строку и последующего восстановления из строки в 1С обычно используют сериализацию в формат JSON или XML, либо стандартные методы сериализации встроенного языка.
### Вариант 1. Сериализация через JSON (рекомендуется для 1С 8.3 и выше)
1C // Сохранение списка значений в строку Функция СписокЗначенийВСтроку(СписокЗначений) // Используем стандартный JSON-сериализатор СтрокаJSON = ОбщегоНазначения.ПревратитьВJSON(СписокЗначений); Возврат СтрокаJSON; КонецФункции // Восстановление списка значений из строки Функция СтрокаВСписокЗначений(СтрокаJSON) СписокЗначений = ОбщегоНазначения.ПревратитьИзJSON(СтрокаJSON); Возврат СписокЗначений; КонецФункцииЕсли в вашей конфигурации нет объекта `ОбщегоНазначения` с методами JSON, можно использовать стандартные методы:
1C // Сериализация в XML Функция СписокЗначенийВСтроку(СписокЗначений) Поток = Новый ЗаписьXML; СписокЗначений.ЗаписатьXML(Поток); Возврат Поток.Закрыть(); КонецФункции // Десериализация из XML Функция СтрокаВСписокЗначений(СтрокаXML) Поток = Новый ЧтениеXML(СтрокаXML); СписокЗначений = Новый СписокЗначений; СписокЗначений.ПрочитатьXML(Поток); Возврат СписокЗначений; КонецФункции### Вариант 2. Сериализация через XML (универсальный)
1C // Сохранение списка значений в строку Функция СписокЗначенийВСтроку(СписокЗначений) Поток = Новый ЗаписьXML; СписокЗначений.ЗаписатьXML(Поток); СтрокаXML = Поток.Закрыть(); Возврат СтрокаXML; КонецФункции // Восстановление списка значений из строки Функция СтрокаВСписокЗначений(СтрокаXML) Поток = Новый ЧтениеXML(СтрокаXML); СписокЗначений = Новый СписокЗначений; СписокЗначений.ПрочитатьXML(Поток); Возврат СписокЗначений; КонецФункции### Пример использования:
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/
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.