// Запсиь опций файла
const upload = multer({ storage: storage });
app.use(bodyParser.json({ limit: "10mb" }));
app.use(bodyParser.urlencoded({ limit: "10mb", extended: true, parameterLimit: 1000000 }));
app.use(
    // Путь подключения
    `/up/*`,
    // Путь записи файла
    //upload.single('file'),
    upload.fields([
        {name: 'file'}
    ]),add_header 'Access-Control-Allow-Origin' 'https://domain.ru';
   add_header 'Access-Control-Allow-Credentials' 'true';
   add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken';
   add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';/**
 * crc16Modus
 * @class crc16MODBUS
 */
'use strict';
class crc16MODBUS {
    constructor() {
        this.CRCMaster = {
            StringToCheck: "",
            CleanedString: "",
        
            CleanString: function(inputType) {
                if (inputType == "ASCII") {
                    this.CleanedString = this.StringToCheck;
                } else {
                    if (this.StringToCheck.match(/^[0-9A-F \t]+$/gi) !== null) {
                        this.CleanedString = this._hexStringToString(this.StringToCheck.toUpperCase().replace(/[\t ]/g, ''));
                    } else {
                        console.log("String doesn't seem to be a valid Hex input.");
                        return false;
                    }
                }
                return true;
            },
        
            CRC16Modbus: function() {
                var crc = 0xFFFF;
                var str = this.CleanedString;
                for (var pos = 0; pos < str.length; pos++) {
                    crc ^= str.charCodeAt(pos);
                    for (var i = 8; i !== 0; i--) {
                        if ((crc & 0x0001) !== 0) {
                            crc >>= 1;
                            crc ^= 0xA001;
                        } else
                            crc >>= 1;
                    }
                }
                return crc;
            },
        
            _hexStringToString: function(inputstr) {
                var hex = inputstr.toString(); //force conversion
                var str = '';
                for (var i = 0; i < hex.length; i += 2)
                    str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
                return str;
            },
        
            Calculate: function(str, inputType) {
                this.StringToCheck = str;
                if (this.CleanString(inputType)) {
        
                  return this.CRC16Modbus().toString(16).toUpperCase()
        
                }
            }
        };
    }
    /**
     * Расчет контрольной суммы
     * @method transformationCRC16
     */
    transformationCRC16( str ) {
        return this.CRCMaster.Calculate( str, 'HEX' )
    }
    
}
module.exports = crc16MODBUS<ul *ngFor="let item of listContact | keyvalue">
                {{item.key}}
                <li *ngFor="let contact of item.value">{{ contact.NAME }}</li>
            </ul>BX24.callMethod(
        "crm.status.list", 
        {
          order: { },
          filter: { "ENTITY_ID": "CONTACT_TYPE" }
        },
        (typeContact: any) =>
        {
          if(typeContact.error())
            console.error(typeContact.error())
          else
          {
           typeContact.data()
            if(typeContact.more())
              typeContact.next();						
          }
        }
      )const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  prompt: 'OHAI> '
});
rl.prompt();
rl.on('line', (line) => {
  switch (line.trim()) {
    case 'hello':
      console.log('world!');
      break;
    default:
      console.log(`Say what? I might have heard '${line.trim()}'`);
      break;
  }
  rl.prompt();
}).on('close', () => {
  console.log('Have a great day!');
  process.exit(0);
});async function processLineByLine() {
                var array = await unloadExistOperator(), temp = Array();
                const lineReader = require('readline').createInterface({
                    input: require('fs').createReadStream(tempCatalog+fileDEF)
                });
              
                for await (const line of lineReader) {
                    
                    var list = line.split(';'), operator = list[4].replace(/['"«»]/g, '');
                    if( array.indexOf( operator ) == -1 && temp.indexOf( operator ) == -1 )
                    {
                        temp.push( operator );
                        console.log(list[4])
                    }
                }
            }