Пользовательские поля для адреса на самом деле находятся в адресной записи
, что-то вроде:
SS1.0 dynamici c mode. Видимо, только на стороне сервера.
var customer = nlapiLoadRecord('customer', custid, {recordmode:'dynamic'});
...
customer.selectLineItem('addressbook', i);
var addr = customer.editCurrentLineItemSubrecord('addressbook', 'addressbookaddress');
console.log(addr.getFieldValue('custrecord19'));
или на стороне сервера SS1 не динамичны c
var addr = custRec.viewLineItemSubrecord('addressbook', 'addressbookaddress', i);
console.log(addr.getFieldValue('custrecord19'));
SS2.0 работает на стороне клиента или сервера
var addr = custRec.getSublistSubrecord({sublistId:'addressbook', fieldId:'addressbookaddress', line:i});
console.log(addr.getValue({fieldId:'custrecord19'}));
Это вполне допустимо для учетной записи иметь смесь сценариев SS1 и SS2.
Чтобы заставить это работать, я бы предложил изменить текущий клиентский скрипт на SS2.
ниже приведен скелетный клиентский скрипт:
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
*/
define(['N/currentRecord', 'N/ui/message', 'N/url', 'N/https', 'N/search'],
function(rec, msg, url, http, search) {
return {
fieldChanged : function(){ console.log('fired field changed');},
postSourcing: function(){ console.log('fired sourcing');}
};
});