База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сохранить и получить список значений в константу «Список»? › RE: Как сохранить и получить список значений в константу «Список»?
		23 октября 2025 в 18:00
		
		#33864
		
		
		
	
Участник
		
		
	Сергей, вот пример двух процедур для сохранения и получения списка значений (ссылок на типы документов) в константу «Список» типа ХранилищеЗначения.
1С (Код)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 1C // Процедура сохранения списка ссылок в константу "Список" Процедура СохранитьСписокВДанныеКонстанты(СписокЗначений)     // СписокЗначений - это СписокЗначений или Массив ссылок на типы документов     Если ТипЗнч(СписокЗначений)  Тип("СписокЗначений") Тогда         // Если передан массив, преобразуем в СписокЗначений         НовыйСписок = Новый СписокЗначений;         Для Каждого Элемент Из СписокЗначений Цикл             НовыйСписок.Добавить(Элемент);         КонецЦикла;         СписокЗначений = НовыйСписок;     КонецЕсли;     // Создаем ХранилищеЗначения из списка     Хранилище = Новый ХранилищеЗначения(СписокЗначений);     // Записываем в константу     Константа = Константы.Список;     Константа.Установить(Хранилище);     Константа.Записать(); КонецПроцедуры // Процедура получения списка ссылок из константы "Список" Функция ПолучитьСписокИзКонстанты() Экспорт     Константа = Константы.Список;     Хранилище = Константа.Получить();     Если Хранилище = Неопределено Тогда         Возврат Новый СписокЗначений; // Пустой список     КонецЕсли;     // Получаем список из хранилища     СписокЗначений = Хранилище.Получить();     // Проверим тип, если вдруг не список - создадим пустой     Если ТипЗнч(СписокЗначений)  Тип("СписокЗначений") Тогда         Возврат Новый СписокЗначений;     КонецЕсли;     Возврат СписокЗначений; КонецФункции | 
Пример использования:
1С (Код)
| 1 2 3 4 5 6 7 8 9 10 11 | 1C // Создаем список ссылок на типы документов СписокДокументов = Новый СписокЗначений; СписокДокументов.Добавить(Справочники.ВидыДокументов.Тип1); СписокДокументов.Добавить(Справочники.ВидыДокументов.Тип2); // Сохраняем СохранитьСписокВДанныеКонстанты(СписокДокументов); // Получаем ПолученныйСписок = ПолучитьСписокИзКонстанты(); | 
Обратите внимание, что в константе хранится именно объект типа ХранилищеЗначения, внутри которого сериализован список значений. При записи константы вызывается метод Записать(), чтобы изменения сохранились.
Рекомендую посмотреть здесь: https://infostart.ru/public/22132/ (пример работы с ХранилищемЗначения в константах и справочниках).
