Каталог решений - Интересное поведение 1С. Сборщик мусора

Интересное поведение 1С. Сборщик мусора

Интересное поведение 1С. Сборщик мусора

В наличии

Тем, кто работает с временным хранилищем, нужно учитывать тот факт, что некоторые данные самопроизвольно очищаются.

Категория:

Описание

То, что написано ниже, — это всего лишь мои умозаключения, без ссылок на первоисточники.

Во временном хранилище некоторые данные очищаются. Например, если во временное хранилище поместить ДокументОбъект, то через какое-то время (минут 30-40) его там не будет.

В качестве примера возьмём Обработку, добавим в нее пару кнопок, одна кнопка будет помещать данные во временное хранилище, другая извлекать их.

АдресВоВременномХранилище, рДокументОбъектСозданРазмещен, рДокументОбъектПолучен, рСтрокаПоместить, рСтрокаПолучить поместим в реквизит формы.

Запускаем обработку, помещаем данные в хранилище, ждем 30-40 минут, получаем данные и анализируем результат. Данные с типом Строка остались на месте, а данных с типом ДокументОбъект нет.

Данный код проверял на платформах 8.3.10.2772, 8.3.18.1363 (32-х, 64-х).

 

Изображение

 

  &НаСервере
  Процедура ПоместитьДанныеВоВременноеХранилищеНаСервере()
  	пДокументОбъект = Документы.ЗаказКлиента.СоздатьДокумент();
  	Контейнер = Новый Соответствие;
  	Контейнер["ДанныеОчистятся"] = пДокументОбъект;
  	Контейнер["ДанныеНеОчистятся"] = рСтрокаПоместить;
  	рДокументОбъектСозданРазмещен = ?(пДокументОбъект=Неопределено, Ложь, Истина);
  	АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(Контейнер, Новый УникальныйИдентификатор);
  КонецПроцедуры
  
  &НаКлиенте
  Процедура ПоместитьДанныеВоВременноеХранилище(Команда)
  	ПоместитьДанныеВоВременноеХранилищеНаСервере();
  КонецПроцедуры
  
  &НаСервере
  Процедура ПолучитьДанныеИзВременногоХранилищаНаСервере()
  	Контейнер = ПолучитьИзВременногоХранилища(АдресВоВременномХранилище);
  	пДокументОбъект = Контейнер["ДанныеОчистятся"];
  	рСтрокаПолучить = Контейнер["ДанныеНеОчистятся"];
  	рДокументОбъектПолучен = ?(пДокументОбъект=Неопределено, Ложь, Истина);
  КонецПроцедуры
  
  &НаКлиенте
  Процедура ПолучитьДанныеИзВременногоХранилища(Команда)
  	ПолучитьДанныеИзВременногоХранилищаНаСервере();
  КонецПроцедуры

 

has been added to your cart:
Оформление заказа