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

23.12.21

Разработка - Групповая разработка (Git, хранилище)

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Обработка из примера
.epf 6,60Kb
0 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

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

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

 

Изображение

 

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

&НаКлиенте
Процедура ПоместитьДанныеВоВременноеХранилище(Команда)
	ПоместитьДанныеВоВременноеХранилищеНаСервере();
КонецПроцедуры

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

&НаКлиенте
Процедура ПолучитьДанныеИзВременногоХранилища(Команда)
	ПолучитьДанныеИзВременногоХранилищаНаСервере();
КонецПроцедуры

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Групповая разработка (Git, хранилище) Бесплатно (free)

Проектная разработка в 1С живет в условиях жестких дедлайнов, меняющихся команд и нестабильных CI/CD. В статье показываем, как быстро и без лишних затрат внедрить Git на ERP-проектах, продать идею себе и команде и избежать типичных подводных камней. Разберем ветвление, подходы к командной работе, интеграцию с таск-трекерами и особенности тяжелых конфигураций.

04.09.2025    2021    bozo    5    

6

EDT Групповая разработка (Git, хранилище) Программист 1С v8.3 Бесплатно (free)

Плагин, расширяющий функциональность EDT, предоставляя возможность работы с хранилищем конфигурации 1С без использования 1С:ГитКонвертер.

04.08.2025    3712    ZigRinat85    5    

33

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Программист 1С v8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Дорогой дневник, мне не подобрать слов, чтобы описать боль и унижение, которые я испытал за последнее время, моя жизнь никогда не будет прежней... мне не удалось найти механизма поставки расширения конфигурации... но зато я научился это делать с помощью команд запуска "1С:Предприятие" и GIT...

1 стартмани

29.07.2025    2787    3    gorsheninsn    6    

26

Групповая разработка (Git, хранилище) Программист Бесплатно (free)

Разберем, как организовать работу с GIT, не покидая конфигуратор, и зачем может понадобиться автономный сервер. Вы узнаете о скриптах, которые автоматизируют взаимодействие с GIT прямо из 1С, а также о методах сборки / разборки обработок и расширений «на лету», которые значительно ускоряют процесс разработки и совместной работы.

22.07.2025    5684    ktb    17    

36

Групповая разработка (Git, хранилище) Системный администратор Программист Бесплатно (free)

Все больше команд начинают использовать при разработке 1С GIT. На самом деле производительность GIT так же ограничена и зависима от различных настроек и подходов, как и всеми нами любимая платформа 1С. Для комфортной работы с GIT в случае больших репозиториев необходимо выполнять оптимизацию алгоритмов взаимодействия. Опишу свой опыт. 

14.07.2025    2164    bborisko    0    

8

Групповая разработка (Git, хранилище) EDT OneScript Программист 1С v8.3 Бесплатно (free)

В данной публикации рассматривается пример реализации скрипта, который автоматизирует получение ветки из GIT репозитория и обновление конфигурации, если разработка проекта ведется в EDT.

11.06.2025    3395    AlexF1    4    

8

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) EDT Программист 1С v8.3 Бесплатно (free)

В процессе использования 1С:EDT и репозитория Git для обновлений релизов доработанных конфигураций появилась необходимость в регулярной загрузке конфигураций от вендора 1С в Git-репозиторий. Описанное в статье решение позволяет автоматизировать эту операцию и может быть полезным специалистам, занимающимися обновлениями с использованием 1C:EDT+Git

21.05.2025    4658    vladimir_iclsoft    3    

20
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1559729 23.12.21 18:07 Сейчас в теме
Это? - https://its.1c.ru/db/v837doc#bookmark:dev:TI000000804

● Если при помещении данных во временное хранилище привязка к форме не была выполнена, то очистка временного хранилища будет выполнена в следующих случаях:

● При следующем запросе формы.

● При следующем серверном вызове из клиентского общего модуля.

● При контекстном и неконтекстном клиентских вызовах из формы.

● При серверном вызове из модуля команды. Если вызов сервера осуществляется для помещения значения во временное хранилище, то очистка не производится. Очистка производится после того, как вызов закончил свою работу.

То есть можно поместить одно или несколько значений во временное хранилище, а в следующем вызове это значение использовать. При этом после использования и перед тем, как серверный вызов будет окончен, помещенное значение будет автоматически удалено.
2. Evgeny.Bogomolnyy 14 23.12.21 19:20 Сейчас в теме
(1) Интересное поведение как раз и заключается в том, что мы берем Объект, помещаем во временное хранилище и НЕ ВЫЗЫВАЕМ его в течение какого-то времени, в 1С ничего не делаем, через 30-40 минут помещенное значение автоматически очищается. Проверял даже на чистой конфигурации с всего лишь одним документом.
3. SlavaKron 23.12.21 19:50 Сейчас в теме
(2) 1С не умеет восстанавливать прикладные объекты с диска обратно в кеш. Поэтому спустя 20 минут, ДокументОбъект не восстановился, так как является лишь ссылкой в контейнере.
https://its.1c.ru/db/v8310doc#bookmark:dev:TI000000809
Внимание! При получении на сервере значения из временного хранилища следует учитывать то, что оно получается по ссылке. В действительности, ссылка эта указывает на значение, которое хранится в кеше. В течение 20 минут, с момента помещения в хранилище или же с момента последнего обращения, значение сохранится в кеше, а затем записывается на диск и из кеша удаляется. При следующем обращении значение загружается с диска и снова помещается в кеш.

После десериализации и восстановления значения из временного хранилища ссылки не восстанавливаются. Значение в кеше восстанавливается с диска. Но после сериализации/десериализации восстановить ссылки на другие объекты внутри значения невозможно.
DrAku1a; gubanoff; bulpi; booksfill; dhurricane; Evgeny.Bogomolnyy; +6 Ответить
Для отправки сообщения требуется регистрация/авторизация