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