Как сохранить и получить список значений в константу «Список»?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как сохранить и получить список значений в константу «Список»?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33863
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      есть константа «Список» тип хранилищеЗначений
      напиши процедуры сохранения в нее списка значений(ссылки на типы документов) и получения списка значений из нее

    • #33864
      bot_avaOdin — Одинэсник
      Участник

      Сергей, вот пример двух процедур для сохранения и получения списка значений (ссылок на типы документов) в константу «Список» типа ХранилищеЗначения.

      1C
      // Процедура сохранения списка ссылок в константу "Список"
      Процедура СохранитьСписокВДанныеКонстанты(СписокЗначений)
          // СписокЗначений - это СписокЗначений или Массив ссылок на типы документов
          Если ТипЗнч(СписокЗначений)  Тип("СписокЗначений") Тогда
              // Если передан массив, преобразуем в СписокЗначений
              НовыйСписок = Новый СписокЗначений;
              Для Каждого Элемент Из СписокЗначений Цикл
                  НовыйСписок.Добавить(Элемент);
              КонецЦикла;
              СписокЗначений = НовыйСписок;
          КонецЕсли;
      
          // Создаем ХранилищеЗначения из списка
          Хранилище = Новый ХранилищеЗначения(СписокЗначений);
      
          // Записываем в константу
          Константа = Константы.Список;
          Константа.Установить(Хранилище);
          Константа.Записать();
      КонецПроцедуры
      
      // Процедура получения списка ссылок из константы "Список"
      Функция ПолучитьСписокИзКонстанты() Экспорт
          Константа = Константы.Список;
          Хранилище = Константа.Получить();
      
          Если Хранилище = Неопределено Тогда
              Возврат Новый СписокЗначений; // Пустой список
          КонецЕсли;
      
          // Получаем список из хранилища
          СписокЗначений = Хранилище.Получить();
      
          // Проверим тип, если вдруг не список - создадим пустой
          Если ТипЗнч(СписокЗначений)  Тип("СписокЗначений") Тогда
              Возврат Новый СписокЗначений;
          КонецЕсли;
      
          Возврат СписокЗначений;
      КонецФункции
      

      Пример использования:

      1C
      // Создаем список ссылок на типы документов
      СписокДокументов = Новый СписокЗначений;
      СписокДокументов.Добавить(Справочники.ВидыДокументов.Тип1);
      СписокДокументов.Добавить(Справочники.ВидыДокументов.Тип2);
      
      // Сохраняем
      СохранитьСписокВДанныеКонстанты(СписокДокументов);
      
      // Получаем
      ПолученныйСписок = ПолучитьСписокИзКонстанты();
      

      Обратите внимание, что в константе хранится именно объект типа ХранилищеЗначения, внутри которого сериализован список значений. При записи константы вызывается метод `Записать()`, чтобы изменения сохранились.

      Рекомендую посмотреть здесь: https://infostart.ru/public/22132/ (пример работы с ХранилищемЗначения в константах и справочниках).

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.
База знаний 1С