bsl-language-server icon indicating copy to clipboard operation
bsl-language-server copied to clipboard

[FP] You should delete used data from temporary storage

Open olgashavnina opened this issue 9 months ago • 1 comments

Диагностика

You should delete used data from temporary storage

Версия

1.13.0

Описание ложного срабатывания диагностики

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

Пример кода

Предварительно инициализируется реквизит формы в обработчике ПриСозданииНаСервере

MetadataByTypeMap = New Map;
TempStorageAddress = PutToTempStorage(MetadataByTypeMap, UUID);

&AtServer
Procedure PlaceInTempStorage(Type, TypeMetadata)

	MetadataByTypeMap = GetFromTempStorage(TempStorageAddress);
	
	MetadataByTypeMap.Insert(Type, TypeMetadata);
	
	TempStorageAddress = PutToTempStorage(MetadataByTypeMap, TempStorageAddress);

EndProcedure

&AtServer
Function ExtractFromTempStorage(Type)

	MetadataByTypeMap = GetFromTempStorage(TempStorageAddress);
	
	Result = MetadataByTypeMap.Get(Type);
	
	Return Result;

EndFunction

Скриншоты

Дополнительная информация

Image

olgashavnina avatar Feb 24 '25 13:02 olgashavnina

Насколько я вижу по коду и из описания диагностики (https://1c-syntax.github.io/bsl-language-server/diagnostics/MissingTempStorageDeletion/#%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B8%D0%B0%D0%B3%D0%BD%D0%BE%D1%81%D1%82%D0%B8%D0%BA%D0%B8), она проверяет удаление только в рамках текущего метода.

То есть fp в целом валидный, но вроде как и не обещали не ловить то, что в вашем примере.

Пока рекомендую погасить срабатывание в сонаре или в коде через комментарий

nixel2007 avatar Feb 24 '25 18:02 nixel2007