### 引入业务凭证

- 为了减少录入工作，可以直接从业务单据引入数据到会计凭证：
  1、首先定义引入模板。
  2、查询需要引入的业务单据。
  3、选择需要生成会计凭证的业务单据，生成凭证数据。
  4、在“会计凭证”界面可以查看生成凭证的详细信息。
- 引入模板定义的一般顺序：
  1、首次定义引入模板之前需要先定义会计科目等信息。。
  2、设置“相关参数”：设置业务单据数据缺省对应的会计科目。
  3、选择单据类型，生成默认的模板。
  4、根据实际情况修改模板的参数。
  5、如果需要设置客户、供应商等辅助核算的会计科目，请在科目相关参数设置客户编号、供应商编号。
  6、会计科目如果和账户相关，请在科目相关参数设置“户头的会计科目”，账户对应的会计科目在“收支管理--账户定义”中设置。
  6、如果需要，还可以设置脚本，脚本详细说明见安装目录\dll\csp.doc文档。
  7、物流单据如果也需要引入数据，可以单击“进销存模板”，添加物流单据的引入模板。
- 引入模板分录会计科目的设定：
  A、指定具体的会计科目：在相关科目选择具体的会计科目。
  B、单据传入的科目变量：在科目相关参数里选择具体的变量。
  C、根据分类参数取下级科目：在相关科目里选择父科目，同时在科目相关参数里选择具体的变量。
- 摘要可以自定义吗？
  可以。摘要可以是一个变量，或者是多个变量。 比如 name.eba ， name.eba 产生的借款。
- 脚本的运用：
- 理解引入业务单据时脚本的使用原理：
  1、系统先根据单据生成引入规则可以引用的变量以及原始明细数据
  2、调用脚本，在脚本里进行处理，根据需要设置 skip、code_1~code_4 str_1~str_4 val_1~val_4、item_code_1~item_code_4 item_str_1~item_str_4 item_val_1~item_val_4等数据
  3、系统根据引入规则结合参数生成分录
- skip变量：
  特别的情况下，一类单据可以设定多个导入规则，可以在脚本里利用设置 skip=1 来指示系统忽略掉本导入规则。
- evm_voucher_date变量，生成凭证的日期，8位，格式yyyymmdd，如 20151208：
  一般情况下该变量就是原始业务单据的日期，如果需要可以进行修改。
- 可以在脚本里设置变量值 code_1~code_4 str_1~str_4 val_1~val_4，这些参数可以为导入规则引用
- 对于象销售单这样存在多条产品明细数据的情况，数据区存放在 item_data 中，包含了 item_code_1~item_code_4 item_str_1~item_str_4 item_val_1~item_val_4列， 这些列可以为导入规则引用。可以根据需要设置(函数db_set_value_ext)这些字段的值，导入规则分录中可以进一步引用这些值
  访问处理利用脚本函数中的数据库系列操作函数，如db_row_count、db_res_ext、db_next等遍历处理
  db_select_dbio("item_data");
  db_show();
  db_select_dbio("-");
- 查看参数的函数： log_all_para();
- 一个脚本例子，引入模版中可采用B、单据传入的科目变量，然后相关参数里选择 item_code_1:
  db_select_dbio("item_data");
  //db_show();
  db_go_head();
  int rn,id;
  string m_res_id;
  rn = db_row_count();
  for(id=0;id<rn;id++)
  {
  m_res_id = db_res_ext('res_id');
  msg(m_res_id);
  if(m_res_id=='XXJ')
  db_set_value_ext('item_code_1','1001.01');
  if(m_res_id=='taishiji_g')
  db_set_value_ext('item_code_1','1001.02');
  db_next();
  };
  db_select_dbio("-");