Как использовать временное хранилище в 1С для временного хранения данных?

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

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

        работа с временным хранилищем

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

          Работа с временным хранилищем в 1С — это удобный способ временно сохранять данные в памяти сеанса пользователя без записи их в базу данных. Временное хранилище используется для хранения больших объемов данных, которые не нужно сохранять постоянно, например, для передачи между формами, временного кеширования или обмена данными между процедурами.

          ### Основные моменты работы с временным хранилищем

          1. **Создание временного хранилища**

          Временное хранилище создаётся с помощью объекта `ВременноеХранилище`. Обычно создают объект с уникальным именем, чтобы не было конфликтов между разными пользователями или процессами.

          ИмяХранилища = "МоёВременноеХранилище";
          ВремХранилище = ВременноеХранилище.Получить(ИмяХранилища);
          

          Если хранилище с таким именем не существует, оно будет создано.

          2. **Запись данных**

          Данные в временное хранилище записываются с помощью метода `Записать()`. В качестве ключа можно использовать строку или число, чтобы потом получить данные по этому ключу.

          ВремХранилище.Записать("Ключ1", МассивДанных);
          

          3. **Чтение данных**

          Для получения данных используется метод `Прочитать()` с указанием ключа.

          Данные = ВремХранилище.Прочитать("Ключ1");
          

          Если по ключу данных нет, будет возвращено `Неопределено`.

          4. **Удаление данных**

          Для удаления данных по ключу используется метод `Удалить()`.

          ВремХранилище.Удалить("Ключ1");
          

          5. **Очистка всего временного хранилища**

          Чтобы очистить все данные, можно использовать метод `Очистить()`.

          ВремХранилище.Очистить();
          

          6. **Особенности**

          — Временное хранилище живёт в рамках сеанса пользователя (или процесса), данные не сохраняются в базе.
          — Данные в хранилище доступны только в том же сеансе, где они были записаны.
          — Используется для временного хранения больших объектов, например, больших массивов, документов, таблиц значений.
          — Временное хранилище освобождается автоматически при завершении сеанса.

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

          Процедура ПримерРаботыСВременнымХранилищем()
              ИмяХранилища = "ТестовоеВременноеХранилище";
              ВремХранилище = ВременноеХранилище.Получить(ИмяХранилища);
          
              // Запишем данные
              Таблица = Новый ТаблицаЗначений;
              Таблица.Колонки.Добавить("Имя");
              Таблица.Колонки.Добавить("Возраст");
              Таблица.ДобавитьСтроку(Новый Структура("Имя, Возраст", "Иван", 30));
              Таблица.ДобавитьСтроку(Новый Структура("Имя, Возраст", "Мария", 25));
          
              ВремХранилище.Записать("Пользователи", Таблица);
          
              // Прочитаем данные
              Данные = ВремХранилище.Прочитать("Пользователи");
              Если Данные  Неопределено Тогда
                  Для Каждого Строка Из Данные Цикл
                      Сообщить(Строка.Имя + ", " + Строка.Возраст);
                  КонецЦикла;
              КонецЕсли;
          
              // Очистим хранилище
              ВремХранилище.Очистить();
          КонецПроцедуры
          

          ### Рекомендации

          — Используйте уникальные имена для временных хранилищ, чтобы избежать конфликтов.
          — Не храните в временном хранилище критичные данные, которые должны сохраняться между сеансами.
          — Для обмена данными между пользователями используйте постоянное хранилище или базу данных.

          Рекомендую посмотреть здесь:
          https://infostart.ru/public/1663203/ (пример работы с временным хранилищем и серверными хранилищами)
          https://its.1c.ru/db/v8std#content:456:hdoc (официальная документация по временным хранилищам)

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