/**
  *                                                                          .
  *
  *                                           ,
  *                                  .
  *
  *                                      .
  *
  * $warnings -                      ,
  * $errors -              ,
  *
  *                                             :
  * array (
  * 		0 =>  array (
  *		          '<tag name>' => '<tag value>',
  *		          '<tag name>' => '<tag value>',
  *		          ...
  *		          '<tag name>' => '<tag value>',
  *                    'ProductCategoryPath' => array (
  *                        0 => Array (
  *                                 'id'   => <id          >
  *                                 'name' => <             >
  *                             ),
  *                        ...
  *                        N => Array (
  *                                 'id'   => <id          >
  *                                 'name' => <             >
  *                        )
  *                    )
  *                )
  *          ...
  * )
  *
  * @param ref array of strings $warnings -                      ,
  * @param ref array of strings $errors -              ,
  * @return array of arrays of     '<tag name>' => '<tag value>'
  */
 function doWork()
 {
     $total_products = count($this->_product_ids);
     $this->_process_info['items_count'] = $total_products;
     $this->_process_info['status'] = 'HAVE_MORE_DATA';
     if ($this->_product_ids === null) {
         $this->_process_info['items_count'] = 0;
         $this->_process_info['items_processing'] = $this->_count_exported_products;
         $this->_process_info['status'] = 'NO_MORE_DATA';
         return;
     }
     if ($this->_count_exported_products >= $total_products) {
         $this->_process_info['items_processing'] = $this->_count_exported_products;
         $this->_process_info['status'] = 'NO_MORE_DATA';
         return;
     }
     $result = array();
     // preparing the bulk product ids
     $bulk_productids = array();
     for ($i = 0; $i < $this->_settings['bulk_number'] && $this->_count_exported_products < $total_products; $i++) {
         $bulk_productids[] = $this->_product_ids[$this->_count_exported_products++];
     }
     foreach ($bulk_productids as $id) {
         $prodObj = new CProductInfo($id);
         $prodObj->setForceLocalizeAttrTypes(array('select'));
         $result[] = $prodObj->getProductTagValuesExportHash(PRODUCTINFO_NOT_LOCALIZED_DATA, $this->_TagList);
         unset($prodObj);
     }
     $this->_process_info['items_processing'] = $this->_count_exported_products;
     if ($this->_count_exported_products >= $total_products) {
         $this->_process_info['status'] = 'NO_MORE_DATA';
     }
     return $result;
 }