<?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='\
У меня на курсах, что бы объяснить это — ушел не один час, особенно про AdMob и про push в iOS 🙂
А вы тут уложились в пару страниц 🙂 Оставив все самое интересное и сложное — за занавесом 🙂
Не хорошо так статьи писать.
(1) DitriX, за сложное ты берешь деньги. Автор выдал направление как делается. Реально это нужно 1 или менее процента, остальным для общего развития хвати и этого объема.
Доброе утро!
Тема очень актуальная.
А нет подробного руководства для компиляции мобильного приложения под iOS?
С уважением
(3) zekrus,
Вопрос к знатокам мобильной 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С:Предприятие», на мобильных устройствах своих сотрудников, организация должна приобрести клиентскую лицензию на соответствующее количество мобильных рабочих мест.
Источники:
(7) А Firebase вас не спасает?
(21) Этой публикации более двух лет — google удалил приложение, т.к. за это время поменялись какие-то правила по возрастным ограничениям, на которые я не стал обращать внимания. Но apk-файл у меня остался
(12) Посмотри на моем канале, много вопросов отпадет, еще больше появится )
(17) Есть видео по сборке, но пока без выкладывания в маркет, подписывайся
Я тут интенсив пишу по разработке корпоративного мобильного приложения с нуля, так уже часов на 6-8 тянет, и это все вырезал что смог, а тут статья на пару листов. При этом у меня нет ни монетизации, ни push, ни других возможностей, ни сборки, ни публикации. Чистый кодинг несколько часов подряд.
Вообще банеры решение спорное для монетизации в 1С, лучше уж подписка, а еще лучше бесплатное приложение ограниченное, и полноценное платное. Так как подписки и банеры уже многих начинают бесить неимоверно.
(10) Пусть АндроидСтудио визуализацию лайоутов допилят до нормального состояния, а так есть задачи, где 1С использовать выгоднее в разы, чем писать нативное приложение. А расширить возможности можно внешними компонентами.
(27)
Разве не в этом основное назначение бесплатной версии :))))
(29) Вы можете ограничить программно количество помидоров, допустим 4 и это будет бесплатная версия. А в платной трекер задач с синхронизацией в облако и еще какие-нибудь плюшки.
(30) Понятное дело 🙂 Это самые распространенные методы, метод пряника, и метод кнута…
Идет человек по бульвару, видит сидят два нищих, у одного табличка «Подайте бедному Василию» а у второго «Подайте бедному Абраму» толпа людей идет смотрит на таблички и все кидают монеты Василию с ехидцей поглядывая на Абрама. Сжалился прохожий подошел к Абраму и говорит: «Ну зачем ты сидишь с такой табличкой, напиши просто «Подайте на еду» или что нибудь еще»
На что Абрам оборачивается ко второму нищему и говорит: «Слышишь Мойша? Этот поц еще будет нас бизнесу учить» 🙂
Кто нибудь использовал мобильную платформу в реальных условиях корпоративной среды?
Как ведет себя мобильная платформа если к примеру мы выгрузили на мобильное устройство справочники номенклатуры с несколькими тысячами наименованиями с остатками и ценами?
Как обстоят дела с производительностью с бюджетными устройствами(планшет 7 дюймов стоимостью до 10 000 рублей)?
Как отзываются пользователи о производительности, удобстве интерфейсов, скорости полнотекстового поиска?
скажите пожалуйста . а как можно нескольким людям одновременно работать в одном мобильном приложении с разных телефонов — вообще в 1с такое реализовано или это пока что фантастика? Ну чтобы база лежала на сервере а к ней десять пользователей через мобилы с разными операционными системами одновременно подключались и что то делали — один накладные печатает. другой их правит. третий справочник корректирует и т.д. ?