<?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='\
У меня на курсах, что бы объяснить это — ушел не один час, особенно про AdMob и про push в iOS 🙂
А вы тут уложились в пару страниц 🙂 Оставив все самое интересное и сложное — за занавесом 🙂
Не хорошо так статьи писать.
(1) DitriX, за сложное ты берешь деньги. Автор выдал направление как делается. Реально это нужно 1 или менее процента, остальным для общего развития хвати и этого объема.
Доброе утро!
Тема очень актуальная.
А нет подробного руководства для компиляции мобильного приложения под iOS?
С уважением
(3) zekrus,http://infostart.ru/public/185829/
Вопрос к знатокам мобильной 1С. Возможен ли такой вариант использования 1С. Есть файловая база 1С. Кидаем ее на DropBox или яндекс диск и работаем то с мобилы то с планшета а то с десктопа. Понятно, что формы для мобилы и десктопа надо делать разные, главное что бы данные можно было набивать с разных устройств.
(5) a3a3elloxxxx, зачем так усложнять? и для чего это необходимо. арендуете сервер и с него настраиваете подключение. база будет в облаке фактически а моб.приложение будет подключаться к ней.
(6) flyer,
Арендовать сервер как раз сложнее и дороже чем кинуть пару файлов на диск.
(5) a3a3elloxxxx, Нет одновременная работа с одной базой Мобайл — Десктоп нельзя. Нужно два приложение и далее на уровне обменов. Или как сказали ранее сервер + web, если на 1-2 пользователе ценав выделенного сервера на Линуксе в приемлема.
(2) Константин С., Никто же не говорит что я сама щедрость. Я просто к тому, что если уж и писать статьи, то не оставлять самое интересное закулисами. Я так статьи не пишу, между прочим, а стараюсь выжать максимум из темы.
А на счет того, что я беру деньги за самое интересное — это да, каюсь. Но вот только я еще и экономлю время и нервы:)
самое интересное в конфигураторе и не напишешь…
да и политика по распространению приложений пока не вдохновляет писать даже учетные программки на 1С для этих ваших Плэймаркетов/Аппсторов
где-то же они озвучивали, что начиная от 50 пользователей/скачек распространение возможно только по соглашению с 1С
такшта АндроидСтудио пока наше всё
(5) a3a3elloxxxx, Нет. Такой вариант невозможен.
Как этот .cf в телефон затолкать, непонятно
(12) Aphanas,
cf никак. Ищи сборщик мобильных приложений, загружай туда cf, собирай мобильное приложение, получишь apk. Его и кидаешь в телефон.
Интересное приложение. Но только вот при блокированном экране и при свёрнутом режиме приложения — локальные сообщения выходят через раз или просто вибрирует без вывода сообщений. Так должно быть или это ошибка? Конфа эта без изменений, версия мобильной платформы 8.3.9.74.
(12) как вариант — установить мобильную платформу на смартфон, установить апач, опубликовать cf-ку и таким образом загрузить. я так использую. Воттут есть пошаговое описание.
Скажите пожалуйста как сделать чтобы у графика рядом с точкой выводить значение ?
Забавно написано. Ожидал, что в статье будет пошаговое описание от внесения кода в модули до публикации приложения в маркетах. Первый этап вроде есть, а потом прыг-скок и автор пишет о получении итогового кэша с рекламы) где основная инфа о муках компиляции и размещении приложения?))
Отличная статья! Огромное спасибо Автору! По этой статье пытаюсь повторить. И вот получил такую ошибку:
{Обработка.Таймер.Форма.Форма.Форма(47,1)}: Неопознанный оператор
<<?>>&НаКлиенте
Мобильное приложение содержит синтаксические ошибки.
К сожалению, не могу скачать файл конфигурации, так как нет денег. Я только учусь. Но очень хочу запустить эту конфигурацию. Сожалею, что не могу скачать, хотя радует статистика Просмотры 21389 Загрузки 50 . Убедительная просьба, пожалуйста, помогите мне.
Спасибо всем! Всё решил сам. Статья действительно очень замечательная!!!
habr эффект?
(10) Не совсем так
При бесплатном распространении мобильного приложения, созданного на платформе «1С:Предприятие», среди третьих лиц через магазины приложений AppStore, Google Play и Windows Store и любыми другими способами, заключение лицензионного договора с фирмой «1С» не требуется, никаких финансовых обязательств перед «1С» у разработчика не возникает, а вот для установки и использования мобильных приложений, созданных на платформе «1С:Предприятие», на мобильных устройствах своих сотрудников, организация должна приобрести клиентскую лицензию на соответствующее количество мобильных рабочих мест.
Источники:
Мобильная платформа 1С: лицензионная политика
О правилах распространения и использования мобильных приложений, разработанных на платформе «1С:Предприятие», для использования сотрудниками одной организации-пользователя «1С»
(7) А Firebase вас не спасает?
(21) Этой публикации более двух лет — google удалил приложение, т.к. за это время поменялись какие-то правила по возрастным ограничениям, на которые я не стал обращать внимания. Но apk-файл у меня остался
(12) Посмотри на моем канале, много вопросов отпадет, еще больше появится )https://www.youtube.com/watch?v=e4mq2I8wtU4&list=PLkvJd0RKh5mkt3hA-ttps0ewqp9b3YAKm
(17) Есть видео по сборке, но пока без выкладывания в маркет, подписывайсяhttps://www.youtube.com/watch?v=e4mq2I8wtU4&list=PLkvJd0RKh5mkt3hA-ttps0ewqp9b3YAKm
Я тут интенсив пишу по разработке корпоративного мобильного приложения с нуля, так уже часов на 6-8 тянет, и это все вырезал что смог, а тут статья на пару листов. При этом у меня нет ни монетизации, ни push, ни других возможностей, ни сборки, ни публикации. Чистый кодинг несколько часов подряд.
Вообще банеры решение спорное для монетизации в 1С, лучше уж подписка, а еще лучше бесплатное приложение ограниченное, и полноценное платное. Так как подписки и банеры уже многих начинают бесить неимоверно.
(10) Пусть АндроидСтудио визуализацию лайоутов допилят до нормального состояния, а так есть задачи, где 1С использовать выгоднее в разы, чем писать нативное приложение. А расширить возможности можно внешними компонентами.
(27)
Разве не в этом основное назначение бесплатной версии :))))
(29) Вы можете ограничить программно количество помидоров, допустим 4 и это будет бесплатная версия. А в платной трекер задач с синхронизацией в облако и еще какие-нибудь плюшки.
(30) Понятное дело 🙂 Это самые распространенные методы, метод пряника, и метод кнута…
Идет человек по бульвару, видит сидят два нищих, у одного табличка «Подайте бедному Василию» а у второго «Подайте бедному Абраму» толпа людей идет смотрит на таблички и все кидают монеты Василию с ехидцей поглядывая на Абрама. Сжалился прохожий подошел к Абраму и говорит: «Ну зачем ты сидишь с такой табличкой, напиши просто «Подайте на еду» или что нибудь еще»
На что Абрам оборачивается ко второму нищему и говорит: «Слышишь Мойша? Этот поц еще будет нас бизнесу учить» 🙂
Кто нибудь использовал мобильную платформу в реальных условиях корпоративной среды?
Как ведет себя мобильная платформа если к примеру мы выгрузили на мобильное устройство справочники номенклатуры с несколькими тысячами наименованиями с остатками и ценами?
Как обстоят дела с производительностью с бюджетными устройствами(планшет 7 дюймов стоимостью до 10 000 рублей)?
Как отзываются пользователи о производительности, удобстве интерфейсов, скорости полнотекстового поиска?
скажите пожалуйста . а как можно нескольким людям одновременно работать в одном мобильном приложении с разных телефонов — вообще в 1с такое реализовано или это пока что фантастика? Ну чтобы база лежала на сервере а к ней десять пользователей через мобилы с разными операционными системами одновременно подключались и что то делали — один накладные печатает. другой их правит. третий справочник корректирует и т.д. ?