Когда-то для себя писал функцию преобразования строки с разделителями в список значений. Пользуюсь часто:
// ===============================
Функция глСтрокаВСписок(Знач Стр, Знач Разд=",", Знач РаздЗн="=", МинКво=0) Экспорт
Сп=СоздатьОбъект("СписокЗначений");
ДлРазд=СтрДлина(Разд);
ДлРаздЗн=СтрДлина(РаздЗн);
Стр=СокрЛП(Стр);
ЕстьРаздЗн=Мин(1,СтрДлина(РаздЗн));
Пока ПустаяСтрока(Стр)=0 Цикл
Поз=Найти(Стр,Разд);
Если Поз<1 Тогда
С=Стр;
Стр="";
Иначе
С=Лев(Стр,Поз-1);
Стр=СокрЛ(Сред(Стр,Поз+ДлРазд));
КонецЕсли;
Если ПустаяСтрока(С)=0 Тогда
С=СокрП(С);
Если ЕстьРаздЗн=1 Тогда Поз=Найти(С,РаздЗн);
Иначе Поз=0; КонецЕсли;
Если Поз>0 Тогда
Сп.ДобавитьЗначение(СокрЛ(Сред(С,Поз+ДлРаздЗн)),СокрП(Лев(С,Поз-1)));
Иначе
Сп.ДобавитьЗначение(С,С);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для И1=Сп.РазмерСписка()+1 По МинКво Цикл
Сп.ДобавитьЗначение("","");
КонецЦикла;
Возврат Сп;
КонецФункции
В твоем случае нужно закомментировать условие проверки на пустое значение:
//Если ПустаяСтрока(С)=0 Тогда
С=СокрП(С);
Если ЕстьРаздЗн=1 Тогда Поз=Найти(С,РаздЗн);
Иначе Поз=0; КонецЕсли;
Если Поз>0 Тогда
Сп.ДобавитьЗначение(СокрЛ(Сред(С,Поз+ДлРаздЗн)),СокрП(Лев(С,Поз-1)));
Иначе
Сп.ДобавитьЗначение(С,С);
КонецЕсли;
//КонецЕсли;
И вызывать, правильно указывая параметры:
Сп=глСтрокаВСписок(Стр, ";", "");
Код=Сп.ПолучитьЗначение(1);
Наименование=Сп.ПолучитьЗначение(2);