bsl-language-server
bsl-language-server copied to clipboard
[FP] You should delete used data from temporary storage
Диагностика
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
Скриншоты
Дополнительная информация
Насколько я вижу по коду и из описания диагностики (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 в целом валидный, но вроде как и не обещали не ловить то, что в вашем примере.
Пока рекомендую погасить срабатывание в сонаре или в коде через комментарий