public function createProductsFile($data)
 {
     $result = ['status' => '', 'message' => ''];
     $allowFormats = ['json', 'pdf', 'xml'];
     if (!in_array($data['format'], $allowFormats)) {
         $result['status'] = 'error';
         $result['messages'] = 'Формат данных указан неверно!';
     } else {
         $format = $data['format'];
     }
     $productsModel = new Model_Products();
     // Условия выбора товаров
     $conditions = [];
     if (!$data['category'] == 0) {
         $categories = $productsModel->getCatalogs();
         foreach ($categories as $category) {
             $allowCategories[] = $category->id;
         }
         if (in_array($data['category'], $allowCategories)) {
             $conditions['id_category'] = $data['category'];
         } else {
             $result['status'] = 'error';
             $result['message'] = 'Категория указана неверно!';
         }
     }
     if (!$data['producer'] == 0) {
         $producers = $productsModel->getProducers();
         foreach ($producers as $producer) {
             $allowProducers[] = $producer->id;
         }
         if (in_array($data['producer'], $allowProducers)) {
             $conditions['id_producer'] = $data['producer'];
         } else {
             $result['status'] = 'error';
             $result['message'] = 'Производитель указан неверно!';
         }
     }
     if (isset($data['count']) && intval($data['count']) > 0) {
         $data = $productsModel->getDownloadData($conditions, $data['count']);
     } else {
         $data = $productsModel->getDownloadData($conditions);
     }
     if ($data) {
         // Путь к файлу с "уникальным" именем
         $filepath = 'files/' . (new DateTime())->format("Y-m-d_H-i-s") . '.' . $format;
         switch ($format) {
             case 'pdf':
                 //$this->createPdf($data, $keys_array, $filepath);
                 $result['status'] = 'error';
                 $result['message'] = 'Эта функция еще не реализована=(';
                 return $result;
                 break;
             case 'json':
                 $this->createJson($data, $filepath);
                 break;
             case 'xml':
                 $this->createXml($data, $filepath);
                 break;
         }
         if (file_exists($filepath)) {
             $result['status'] = 'success';
             $result['filepath'] = $filepath;
         } else {
             $result['status'] = 'error';
             $result['message'] = 'Что-то пошло не так=(';
             $result['detail_error'] = 'Не удалось создать файл';
         }
     } else {
         $result['status'] = 'error';
         $result['message'] = 'Данных не найдено или произошла какая-то ошибка!';
     }
     return $result;
 }