У меня возникли проблемы с передачей параметров сценария для этого кода. Похоже, что код не считывает какие-либо значения параметров из этого журнала выполнения и сообщения об ошибке: https://photos.app.goo.gl/FXKYkFAXMctP4WhY6
/ ** * @NApiVersion 2.x * @NScriptType UserEventScript * @NModuleScope SameAccount * / define (["N / запись", "N / журнал", "N / время выполнения"], функция (запись, журнал, время выполнения) {
function afterSubmit(context) {
// Gather your variables
var newRec = context.newRecord;
var freightCost = newRec.getValue({
fieldId: 'custbody_freight_cost'
});
var freightItem = runtime.getCurrentScript().getParameter('custscript_freight_item');
var handlingItem = runtime.getCurrentScript().getParameter('custscript_handling_item');
var salesOrderId = newRec.getValue({
fieldId: 'createdfrom'
});
log.debug('Sales Order ID', salesOrderId);
log.error({
title: 'Freight Cost',
details: freightCost
});
log.error({
title: 'Freight Item',
details: freightItem
});
// Transform the Sales Order into an Invoice
var invoiceRecord = record.transform({
fromType: record.Type.SALES_ORDER,
fromId: salesOrderId,
toType: record.Type.INVOICE,
isDynamic: true
});
log.error({
title: 'Debug Entry',
details: invoiceRecord
});
invoiceRecord.selectNewLine({
sublistId: 'item'
});
invoiceRecord.setCurrentSublistText({
sublistId: 'item',
fieldId: 'item',
text: freightItem
});
invoiceRecord.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'amount',
value: freightCost
});
invoiceRecord.commitLine({
sublistId: 'item'
});
invoiceRecord.selectNewLine({
sublistId: 'item'
});
invoiceRecord.setCurrentSublistText({
sublistId: 'item',
fieldId: 'item',
text: handlingItem
});
invoiceRecord.commitLine({
sublistId: 'item'
});
// Here is how you set a body field
invoiceRecord.setValue({
fieldId: 'custbody_freight_cost',
value: freightCost,
ignoreFieldChange: true
});
// Submit the record
var rid = invoiceRecord.save();
log.debug('Saved Record', rid);
}
return {
afterSubmit: afterSubmit
};
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Можете ли вы попробовать передать объект в функцию getParameter вот так?
var freightItem = runtime.getCurrentScript().getParameter({ name: 'custscript_freight_item' });
Поскольку ваш код ошибки - «INVALID_RCRD_TRANSFORM», проблема, скорее всего, в том, что ваш заказ на продажу не может быть преобразован в счет-фактуру. Это может быть связано с тем, что ваше поле «createdfrom» в вашей записи не является заказом на продажу или заказ находится в неправильном статусе для выставления счета-фактуры.
Убедитесь, что ваш createdFrom действительно является заказом на продажу. В противном случае ваш Заказ на продажу может просто иметь неправильный статус для выставления счета. Взгляните на ответ Эрика на этот вопрос: Преобразование заказа на продажу в ошибку счета-фактуры
Есть ли причина, по которой вы используете
setCurrentSublistTextдля настройки элемента вместоsetCurrentSublistValue? Похоже, что1038- это внутренний идентификатор элемента, а не имя элемента. Если это внутренний идентификатор, вам следует переключитьsetCurrentSublistTextнаsetCurrentSublistValue.