/** * Special object to represent a reference to a Metadata object * inside 1C:Enterprise application */ export default class Reference { /** * GUID of a Metadata object inside 1C:Enterprise application */ meteDataObjectId: string; /** * Sequence number of a table in 1C:Enterprise database */ dataBaseTableId: number; /** * Internal identificator of a reference inside 1C:Enterprise application */ linkId: string; /** * GUID of a reference inside 1C:Enterprise application (autogenerated from 'linkId') */ referenceId: string; /** * Create a reference * @param {string} meteDataObjectId A GUID of a Metadata object inside 1C:Enterprise application * @param {number} dataBaseTableId A number of a table in 1C:Enterprise database * @param {string} linkId An internal identificator of a reference inside 1C:Enterprise application */ constructor( meteDataObjectId: string, dataBaseTableId: number, linkId: string ) { this.meteDataObjectId = meteDataObjectId; this.dataBaseTableId = dataBaseTableId; this.linkId = linkId; this.referenceId = getReferenceId(linkId); } } function getReferenceId(linkId: string) { const part1 = linkId.slice(24); const part2 = linkId.slice(20, 24); const part3 = linkId.slice(16, 20); const part4 = linkId.slice(0, 4); const part5 = linkId.slice(4, 16); return `${part1}-${part2}-${part3}-${part4}-${part5}`; }