<?php // Полная загрузка сервисных книжек, создан 2025-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='\
Спасибо за наводку!
нююю… это философское размышление
Все зависеть, что будешь делать с этими приложениями)))
При продаже (клиенту) одного приложения, можно отбить сумму))
(2) Согласен, для солидной разработки это решение не подходит, и проще и правильнее купить аккаунт разработчика.
К тому же данное решение не для продажи, как минимум из-за значка на рабочем столе от чужого (хоть и смежного) приложения =)
Моё решение исключительно для быстрой (без apple аккаунтов, без установки и настройки сборщика приложения и всех сопутствующих действий) и бесплатной пробы «как там вообще на iPhone моё приложение заработает».
Для того что бы изучать — самое то.
(4) Чтобы изучать есть андроид бридж и виртуалка от гугла, которые настраиваются из конфигуратора два клика.
Спасибо за публикацию! А вы случайно не знаете как установить на IOS 11 Мобильный клиент, который появился в платформе 1C 8.3.12 ?
Русские не ищут легких путей)) 5+ за лайфхак.
Для продвинутых подойдет, но для конечных клиентов или даже пользователей вряд ли.
Как это связано с аккаунтом разработчика за 100 баксов чтобы поставить приложение?
Чтобы установить приложение на телефон не нужно иметь платный аккаунт — год можно бесплатно пользоваться без права релиза.
Для разработки достаточно.
А в новом мобильном приложении 8.3.12 такой номер уже не пройдет — там на уровне разработки задаются возможные конфигурации
(5) У меня 5 штук приложений на андроид уже в релизе и разработка на них уже окончена, как это работает на андроиде, я прекрасно знаю.
Достаточно увесистая часть функционала, которая работает на андроиде не работает на IOS, и это в общем то не тайна + есть специфичные баги. Но руководство поголовно сидит на айфонах. Для того что бы сделать приложение на IOS нужна лицензия разработчика и IOS устройство, если IOS для демонстрации можно взять у коллеги, то прототип только с лицензией, а платить за лицензию из своего кармана я принципиально не собираюсь, естественно коллега тоже против установки чего либо кроме демо версии. От таких задач мы просто отказывались раньше, благо работы море. Сейчас можно будет заморочиться ради еще одной строчки в резюме.
Тут ниже говорят, что вроде как для разработки без релиза лицензия год не нужна, поверим на слово.
(6)
Спасибо за публикацию! А вы случайно не знаете как установить на IOS 11 Мобильный клиент, который появился в платформе 1C 8.3.12 ?
Его надо собрать так же как и мобильное приложение
(8)
Для разработки достаточно.
Ну не все в курсе, я вот например не знал. В андроиде для разработки закинул APK, пути прописал и развлекаешься, а тут столько специфики, в которой разбираться просто нет времени, благо от этих задач можно и отказаться.
(11) ну не стоит сравнивать эпл и андроид, на который всякое г**но поставить может любой «умник»))
(10) Я правильно понимаю, что к Мобильному клиенту относятся архивы сборок «prjios_admob_client», «prjios_client», «prjios_client_sim»? В чём их отличие?
Вот это смекалка !
Красавчик !
На самом деле сертификат для установки на свой компьютер можно нажить за 1$
(13)
То же самое?https://forum.infostart.ru/forum92/topic109023/
(6) К сожалению, не подскажу, т.к. не силён в мобильных приложениях. Не уверен даже в своём понимании разницы: мобильный клиент и мобильное приложение 1С.
(8) 1. «Не пройдёт»? В статье описывается актуальные версии, как раз на первом рисунке видно платформа 8.3.12.83.
2. В тех темах, которые я читал на инфорстарте рассказывалось о 30 днях(если не путаю) бесплатного аккаунта разработчика AppleStore.
3. Я и не говорил, что этот метод лучше «профессионального» — покупки аккаунта. Этот метод проще, чем манипуляции с файлами (что в статьях, на которые я наткнулся изучая вопрос) и с тем же результатом.
Для чего усложнять установку приложения, к тому же ради 20% владельцев IPhone’ов?
— Купить аккаунт (или получить пробный);
— разобраться с конфигурацией «Сборщик приложений»;
— скачать необходимые программы (судя по статьям);
— установить их и настроить;
— разобраться как собирать само приложение под iOS;
— разобраться как публиковать на Apple Store;
Или просто скачать «1С: Заказы» и подставить свой адрес обновления? По крайней мере пока это возможно.
(17) Именно, только проще. Кстати, в статье эта ссылка приведена.
(15) А как? Официально? Я читал (возможно и брехня) про «чёрный рынок», где твой аккаунт добавляют в список аккаунтов разработчика, но без гарантии, что он там долго продержится.
(7) Ну на самом деле, я написал простую инструкцию с картинками и пользователи сами ставят (пусть и не все).
(21) Точно так. Проверено и работает )
Подскажите, вообще не понимаю что тут и для чего это.
Может ли кладовщик согласно этих заказов собирать заявки? или это просто возможность для подключения к базе?
(14) Спасибо!
(20) точно, крайние нажал, а это пропустил, простите 🙂
(24) В «статье» описан метод добавления своей конфигурации в мобильное приложение 1С на iOS (iPhone).
Вопрос, видимо, по приложению «1С: Заказы».
С мобильным приложением «1С: Заказы» «статья» ни как не связана. Приложение «1С: Заказы» в данном случае нужно только для установки на телефон мобильной платформы 1С.
(27) а теперь топаем в зазеркалье и читаем статью. Внимательно!
«Чтобы мобильный клиент, публикуемый в магазин приложений, имел фиксированную функциональность, при его сборке необходимо указать конкретные конфигурации, с которыми будет работать это приложение. В процессе работы мобильный клиент проверяет, что используется только одна из заданных конфигураций и без существенных изменений. Это специальная защита для того, чтобы мобильный клиент, который опубликован для определенных конфигураций, не мог работать с другими конфигурациями.»
(28) И что мне с этим знанием делать?
(28) «Статья» же не о том, что бы впаривать своё приложение 1С путём подмены адреса обновлений у чужих приложений, опубликованных на AppleStore. А о том, что для своих нужд можно своё приложение поставить в 2 шага на iPhone (без iTunes, без MacBook, без сборщиков приложений и тд и тп). И это работает на актуальной версии приложения «1С: Заказы 8.3.12.83» (уверен, что и другие тоже подойдут) опубликованного на данный момент в AppleStore и на iPhone 4(в свойствах сразу адрес обновления доступен!) и на iPhone 5, iPhone SE, iPhone 7. Остальные не пробовал.
Не исключаю, что данный метод это лазейка в баге/фиче. Но пока метод работает.
BugBounty? не не слышали)
может это умышленное пасхальное яйцо для вовлечения в в секту 1С без аккаунта разработчика?
(31) а какое отношение имеет цитата про мобильный клиент к обсуждению мобильного приложения? К тому же не рекомендую цитировать зазеркалье — это лишь анонсы планируемой функциональности, которая может не дойти до релиза или быть существенно изменена.
На текущий момент данный метод уже не работает с «1С: Заказы», т.к. его обновили.
Но это нас не остановит) Думаю, каждый догадается о решении.
(36) Подскажи как установить свою конфу на IOS
Подскажите есть ли сейчас способ, без аккаунта разработчика?
(37) Схема та же, просто в приложении «1С: Заказы» этот вариант не работает. Просто нужно скачать другое приложение, например, «1С: Босс» от Раруса.
(39) Схема та же, просто в приложении «1С: Заказы» этот вариант не работает. Просто нужно скачать другое приложение, например, «1С: Босс» от Раруса.
IPhoneX iOS 12 Схема не срабатывает. Не появляются поля для ввода адреса обновления.
(41) Я так понимаю больше нет приложений таких?
На новых iphon так не работает уже…6 пункт не рабочий
Всё, эту возможность на новых платформах убрали. Тема не актуальная.
Может появились какае то новая возможность