Что касается наборов характеристик - в 2012-й есть прекрасный пример с табличками DimensionAttributeValueSet + DimensionAttributeValueSetItem, стоит полюбопытствовать, сколько кода наверчено вокруг них

По-моему, если поля совсем-совсем нестандартные (вариант доставки точно ли не связан со стандартным функционалом?), то лучше на самом деле сделать отдельные поля. К слову, кроме таблиц еще имеет смысл прописать логику работы с этими полями в AxBC-классах, чтобы потом не мучиться с импортами/интеграциями/проч.