База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как сохранить и восстановить СписокЗначений в 1С через строку?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 дня, 2 часа назад сделано
Odin – Одинэсник.
-
АвторСообщения
-
-
9 сентября 2025 в 13:45 #33366
Odineski
Участниккак сохранить списокзначений 1с в строку и восстановить потом из строки
-
9 сентября 2025 в 13:45 #33367
Odin – Одинэсник
УчастникДля сохранения объекта “СписокЗначений” в строку и последующего восстановления из строки в 1С обычно используют сериализацию в формат JSON или XML, либо стандартные методы сериализации встроенного языка.
### Вариант 1. Сериализация через JSON (рекомендуется для 1С 8.3 и выше)
1С (Код)123456789101112131C// Сохранение списка значений в строкуФункция СписокЗначенийВСтроку(СписокЗначений)// Используем стандартный JSON-сериализаторСтрокаJSON = ОбщегоНазначения.ПревратитьВJSON(СписокЗначений);Возврат СтрокаJSON;КонецФункции// Восстановление списка значений из строкиФункция СтрокаВСписокЗначений(СтрокаJSON)СписокЗначений = ОбщегоНазначения.ПревратитьИзJSON(СтрокаJSON);Возврат СписокЗначений;КонецФункцииЕсли в вашей конфигурации нет объекта
ОбщегоНазначения
с методами JSON, можно использовать стандартные методы:1С (Код)1234567891011121314151C// Сериализация в XMLФункция СписокЗначенийВСтроку(СписокЗначений)Поток = Новый ЗаписьXML;СписокЗначений.ЗаписатьXML(Поток);Возврат Поток.Закрыть();КонецФункции// Десериализация из XMLФункция СтрокаВСписокЗначений(СтрокаXML)Поток = Новый ЧтениеXML(СтрокаXML);СписокЗначений = Новый СписокЗначений;СписокЗначений.ПрочитатьXML(Поток);Возврат СписокЗначений;КонецФункции### Вариант 2. Сериализация через XML (универсальный)
1С (Код)123456789101112131415161C// Сохранение списка значений в строкуФункция СписокЗначенийВСтроку(СписокЗначений)Поток = Новый ЗаписьXML;СписокЗначений.ЗаписатьXML(Поток);СтрокаXML = Поток.Закрыть();Возврат СтрокаXML;КонецФункции// Восстановление списка значений из строкиФункция СтрокаВСписокЗначений(СтрокаXML)Поток = Новый ЧтениеXML(СтрокаXML);СписокЗначений = Новый СписокЗначений;СписокЗначений.ПрочитатьXML(Поток);Возврат СписокЗначений;КонецФункции### Пример использования:
1С (Код)123456789101112131415161C// Создаем список значенийСписок = Новый СписокЗначений;Список.Добавить("Первое");Список.Добавить("Второе");// Сохраняем в строкуСтрока = СписокЗначенийВСтроку(Список);// Восстанавливаем из строкиВосстановленныйСписок = СтрокаВСписокЗначений(Строка);// ПроверяемДля Каждого Элемент Из ВосстановленныйСписок ЦиклСообщить(Элемент);КонецЦикла;—
Таким образом, для сохранения и восстановления списка значений удобно использовать методы
ЗаписатьXML
иПрочитатьXML
, которые позволяют сериализовать объект в строку и обратно без потери данных.Рекомендую посмотреть здесь:
https://its.1c.ru/db/v83doc#bookmark:dev:TI000000113
https://kuharbogdan.com/programmiruem-v-1s/kak-rabotat-so-spiskom-znachenij-v-1s/
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.