<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Подтверждаю что ошибки сборки xcode убивают кучу времени и гуглелие практически безрезультатно (если конечно вы постоянно не занимаетесь мобильной разработкой)! Такое чувство, что мне говорят: не беспокойся 1С все сделает, расслабься и жди… обычно не жду… помню только один раз гугление помогло: нужно было версию подправить и прописать ее в другом месте, потом 1c добавили это через параметр и можно ждать следующей версии xcode
А разве DUNS нельзя получить бесплатно ?
https://habr.com/company/touchinstinct/blog/342046/
(2) Спасибо, очень полезно. Не возражаете если добавлю информацию об этом в публикацию?
(1) мне как-то Гугл помог в случае сборки для Андроида, но времени тоже пару дней тогда потратил
(3) какие могут быть возражения)) это даже не моя статья, тем более что информация экономит 12240 рублей.
Ключевая фраза «Если все пройдет успешно». 99% успешно не пройдет.
У меня получилось только на XCode 9.2https://www.youtube.com/watch?v=UKJ76BNaIqE
А встроенный в сборщик публикатор чем не устроил?
(7)Вы про что? Для Apple использовался встроенный публикатор. Для Google встроенный не авторизовывался. Про оба случая я написал в публикации.
Полезная информация. Спасибо автору за публикацию статьи!
Огромное спасибо автору за публикацию. Инструкция очень помогла разобраться и расставить все по полочкам. Изначально казалось, что публикация в AppStore довольно сложное занятие. Однако уже после первой публикации все стало понятно.
Подскажите, а что с авторскими правами на приложение, если продавать его через AppStore? Компании 1С какие-то права на созданное приложение принадлежат?
(11) Спасибо за комментарий
Если Ваше приложение не монетизируется, то платить ничего не нужно, в противном случае 10%. Но информация не точная, лучше писать в 1С (Лавринова Анна Владимировна, вроде она занимается этим).
Добрый день. А как решили проблему с разрадностью в xcode?
(13) Добрый день. В XCode, кроме как запустить приложение в эмуляторе и собрать архив, сделать ничего не получилось. Все делал сборщиком. На данный момент актуальные версии сборщика, мобильной платформы и XCode работают без проблем (собирал буквально неделю назад)
(14) У меня не получалось в сборщике собрать файл *.IPA, написал письмо в 1С и ниже ответ (может кому-то это сэкономит кучу времени).
По результатам расследования в отделе разработки:
Просьба поставить версию PuTTY 0.68 или ниже,
для новых версий PuTTY мы исправим ошибку в будущем.
Добрый день. Может кто сталкивался с подобной ошибкой:
сборщик собирает ira файл, но данное приложение при установки на ios падает.