MagePsyco is right, the problem is with the code on line 135 app/code/core/Mage/Adminhtml/Model/Config/Data.php :
$backendClass = $fieldConfig->backend_model; if (!$backendClass) { $backendClass = 'core/config_data'; }
The problem with fixing MagePsyco suggests in his answer that the code runs in a loop. After it encounters an attribute with a backend model, the $ backlendModel variable does not return reset back to core/config_data again. So, for example, on the System page of the System Configuration screen, the Installed Currencies attribute has a certain basic model, but this is not found in subsequent attributes. This leads to the launch of the _afterSave method from Mage_Adminhtml_Model_System_Config_Backend_Locale in all subsequent attributes (which will fail).
The best solution is the version of this code that can be found in the 1.8 alpha versions:
$backendClass = (isset($fieldConfig->backend_model))? $fieldConfig->backend_model : false; if (!$backendClass) { $backendClass = 'core/config_data'; }
This applies to all null / false / empty errors and ensures that the $ backendModel variable always contains a valid value. This also suggests that the problem should be resolved, and a fix is not required after release 1.8.
source share