<?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='\
А СредстваМультимедиа.ВоспроизвестиЗвуковоеОповещение чем не устраивает?
(1) ну началось, Вы видимо не поняли смысл статьи.
Реальное использование например печать на ESC/POS bluetooth термо-принтере. На данный момент у нас свое android приложение на Java. Присматриваемся к мобильной платформе. Это как раз то что останавливало от ее использования.
(3) с такими принтерами не работал. у вас sdk есть по этой модели?
(4) У нас есть код печати в Java приложении который работает и печатает товарные чеки на данный момент. Предполагаем если вынести его в ВК то можно использовать его же в мобильной платформе. Принтеры Zebra и что-то типа ноунейм с aliexpress под оба разные языки печати.
(5) если у вас получиться переделать на ВК то можете статью тут накидать. я думаю многих такое решение заинтересует. а если исходники к статье добавите то от меня плюс(+)
(5) вы стандартные драйвера от 1С для работы с принтерами из мобильной платформы смотрели?
http://v8.1c.ru/libraries/celmob/mob_certified.htm
Описание есть (но оно не полное) тут
Лучше установите себе на телефон/планшет «1С:Библиотека подключаемого оборудования для мобильных приложений». (там сразу можно и потестить работу с оборудованием).
(7) Анатолий подскажите вы пробовали запустить данную библиотеку в работу? например для печати на принтере.
(8) Да, мы использовали драйвер «1С:Принтер чеков» для печати на bluetooth принтере ZEBRA EM220. (т.е. можно использовать бесплатный apk от 1С и не заморачиваться с разработкой собственного )
Надо сказать что с помощью «1С:Библиотека подключаемого оборудования для мобильных приложений» можно быстро протестировать работу оборудования со стандартными драйверами от 1С (и от др. разработчиков).
При необходимости за пару часов можно вставить код и в свое собственное мобильное приложение (пример работы опять же можно посмотреть в библиотеке).
Анатолий если не сложно может статью накидаете о своем опыте? я постараюсь интересные материалы собрать в нашей группе Мобильные приложения 1С (http://infostart.ru/community/groups/1185/)
(7) Спасибо, ранее когда обращали внимание в сторону мобильной платформы данного функционала просто не было. Да нам скорее всего подойдет драйвер от 1С ESC/POS по bluetooth
То что нужно, а то ЗапуститьМобильноеПриложение не совсем устраивает.
Может у кого нить есть пример работы со сканером штрих-кода на IOS вешняя компонента. Или кто может написать
(13) лучше в бирже заказов накатать заявку. там быстрее можете найти исполнителя.
Реквестирую вторую статью: как быстро скачать все что нужно и куда тыкнуть, чтобы собрать Helloworld.
Т.е. ваша статья классная, но ее бы дополнить именно организационными моментами, сделать реферат из различных документаций, ссылки на которые вы приводите. Чтобы можно было по шагам все скачать и настроить, а дальше приступить к ковырянию плюсов. (что все и так умеют делать, а вот окружение настроить — три дня убьешь)
Даешь вторую статью! 🙂
(15) я статью примерно оценивал на контингент который уже работал с native java и собирал проекты. а то получается человек понятие не имеет как работать с android studio то это лучше курсы пройти сначала и практику получить по программированию.
(16) позвольте не согласиться. Тут контингент такой, что хоть с чем сможет работать. И если будет статья для профи, но при этом в стиле Quick Start — контингент (в т.ч. и я) скажет огромное спасибо.
Возьмем абстрактного меня: я на чом хошь напишу, мне лишь нужна помощь по сборке Helloworld, а дальше сам.
И еще раз: статья отличная, еще бы таких побольше, побольше! 🙂
ладно попробую дополнить статью
Скачал с ИТС и установил приложение на телефон.
Тестирую — ничего не происходит.
Единственно при обращении к «ВК.ПолучитьТипДвижения» — выдает что типа обращение к процедуре как к функции.
Попробовал на 3 разных планшетах — одно и то же.
В чем может быть проблема — не подскажете?
Ваше скомпилированное приложение работает
Разобрался. Инструкция написана крайне неточно.
Надо будет править пути в хедерах. Описаны не все файлы, которые надо скинуть.
До кучи содержимое «ANDROID_MANIFEST_EXTENTIONS.XML» — с ошибками запостил.
Компоненту удалось скомпилировать, но в работе, при быстром нажатии кнопок, 1с крашится. Почему — не понятно.
(21) укажите что в хедерах не так. какие еще файлы скидываете? архив скинул с рабочего проекта.
В проекте от 1с доп классы прописаны по пути » Include» — у вас в «binder».
В «jni» не хватает «stdafx».
По хорошем — надо было указать, что все кидать по пути «appsrcmain», а то я по первости создавал указанные папки в корне проекта (ну нет у меня опыта).
И как, я писал, в «ANDROID_MANIFEST_EXTENTIONS.XML» закрывающие теги пропущены.
проект xcode мобильного приложения с вибрацией для ios с интерфейсом вк, как в статье
В шапке StepCounterClass.java
добавить
иначе
не взлетит
Народ, подскажите какая все-таки технология сборки примера ВК для мобильного приложения от 1C «StepCounter». Собирать проект нужно только в Visual Studio или Android Studio. Или и в том и другом?
Если в Visual Studio то какая версия должна быть? 2012 подойдет?
не нашел файлы AddInDefBase.h, com.h, ComponentBase.h, IAndroidComponentHelper.h, IMemoryManager.h, mobile.h, types.h в «VNCOMPSVNCOMP83exampleNativeAPIMobile».
Друзья, поделитесь пожалуйста рабочим проектом. Опыта в студии можно сказать почти нет, скачал данный шаблон, а оно не работает как по инструкции написано…
(28) И да, пытаюсь в студии запустить
(27)Коллега, у Вас получилось запустить данный шаблон в итоге?
(30) нет.
(29) Комрады получилось ли у кого собрать этот шаблон. если получилось скиньте исходники. Спасибо
(32)
И не получится. Он под какую-то устаревшую версию студии. Не компилируется в новой.
Плюс в проекте Андроид в манифест надо добавить право на использование вибрации:
<uses-permission android:name=»android.permission.VIBRATE»/>
Ребят, я только начал изучать эту тему. С внешними компонентами для windows разобрался. А вот для мобильной платформы не получается состряпать рабочую компоненту.
Скачиваю шаблон для мобильных платформ с ИТС, делаю новый проект, подтягиваю туда все необходимые файлы из шаблона (файлы .h и .cpp), собираю проект ARM, делаю .zip файл. Все четко по инструкции. Собираю, кстати, в Visual Studio 2019 Community.
Вообщем, при подключении 1с просто сворачивается на девайсе и всё. Мне кажется, дело в самой Visual Studio 2019. Может версия не подходит, ума не приложу.
В шаблоне ничего не менял, по идее компонента, собранная по пустому должна просто вернуть Ложь, а на деле просто крашится ((