Заполнение полей, которые будут сохраняться происходит в методе \Classes\SysRecordTemplateStorage\packCommon.
Сохраняются все несистемные поля по всем источникам данных с формы.
При создании новой записи:
вызов шаблона происходит из метода ClassFactory.createRecord()
Не заполняются обязательные поля, входящие в уникальный индекс (для номенклатуры - это поле ItemId)
X++:
if (dictField &&
(allowdublicates || bittest(#DBF_CREATE, dictField.flags())) && //SYP-Modification US-326-217-UGH8 (SP2)
(allowdublicates || !dictField.isUnique())) // SYP-Modification HQ-879-412-8DD8 (SP1)
Также после заполнения полей в шаблоне происходит вызов методов initValue на источнике данных формы и таблице. Возможно в них какие-то значения у вас перетираются.