<?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='\
Я собрал себе простую табличку в мементо — и достаточно )
Работает в разы быстрее 1с, чего и требуется от подобного функционала..
(1) AlX0id, ради интереса установил. действительно шустрее работает. но вот с точки зрения удобства… на вкус и цвет)
надеюсь, что в следующих версиях повысят скорость работы мобильной платформы
(2)
Не, ну спора нет — 1ску кастомизировать проще.. Но за это так круто приходится расплачиваться производительностью, что я уже яву начал осваивать )
Может, на планшетах и более мощных телах и ничо будет, но с планшетом немного кто в магазы ходит )
Каким образом может жена набрать список покупок и отправить телефон?
Где название и марки товаров, ориентировочная цена. Такое впечатление, что вы не женаты и не разу не ходили за покупками по списку и на вопрос «есть такой же халатик, только без перламутровых пуговиц, будете брать?» отвечаете утвердительно, а не «нет у меня по списку халат с перламутровыми пуговицами!».
Пользуюсь Google Keep. Там какие хочешь списки (и не только) можно хранить, да еще и с фотографиями.
(3) AlX0id, у меня MTC 972 брал за три тыщи в их салоне. У него андройд 4-й и оперативой не обижен. На нем производительность 1С вполне на уровне!
Delphi XE5 — он умеет компилить под андро .
ЗЫ. Если ява — сложно, то можешь попробовать
Проблема в другом — на мобильном не очень удобно именно набивать тексты… Но в гугл можно попробовать функцию распознавания речи…
Имеет смысл сделать серверную часть и SOAP-синхронизацию. Вот тогда будет красота и энтерпрайз, как у больших дяденек.
(7) asved.ru, было в планах, хотя на энтерпрайз и не думал претендовать)
(4) pumbaE, женат) про пуговицы — смеялись с женой от души)
Долго пытался приучить отправлять мне списки (в других программах) — не хочет, ей удобней на листочке написать. А я уже потом с листочка забиваю в телефон…
Названия и марки товаров, ориентировочная цена — это как раз то, что меня отпугивало в других программах. Хотелось максимальной простоты.
(6) DrAku1a,
Не то, чтобы 1С не тянула, но по сравнению с Ява будет уступать еще очень долго.. Одно лишь наличие в памяти 180 метров 1С будет означать постоянное ее выбрасывание из памяти менеджером андроида при функционировании других приложений.. Ну или я что-то не так делаю, что она столько весит 🙂
А Ява освоить не проблема.. В сети очень много доступных материалов — в те времена, когда я учил бэйсик и паскаль, было гораздо сложнее %)
ЗЫ. А какие проблемы с набором текста? У меня стоит клавиатура TouchPal — за женой спокойно записываю, а за счет интеллектуального ввода иногда даже быстрее 10-пальцевого ввода получается %)
Мучаюсь с мобильным приложением. Уперся в очень элементарный вопрос, который не могу решить. Мне нужно указать файл (точнее путь к нему). В обычном режиме делается через
ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие)
Но в мобильном приложении НЕТ такого. И никак не могу найти аналог. Как все-таки поступить???
интересен процесс реализации, но ожидал увидеть связку 1с PC — 1c android. не увидел, посему приложение не очень актуально. Но все равно автору +.
можете помочь? пожалуйста.
Сборщик = Новый ЗаписьТекста(РабочийКаталог+»make.bat», КодировкаТекста.OEM);
выдает ошибку на ету строку можете помочь
(13) Davidmad777, а какая хоть ошибка?
подозреваю, что проблема может быть с русским языком в пути к рабочему каталогу. Можно его переопределить — использовать только латинские символы в пути.
1c Вылетает
1c has stopped working
(14)
1c Вылетает
1c has stopped working
Вот Скрини
а вот log
Log Name: Application
Source: Application Error
Date: 03.09.2014 12:06:32
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: Davit
Description:
Faulting application name: 1CV8C.exe, version: 8.3.4.482, time stamp: 0x535f2a9f
Faulting module name: ext.dll, version: 8.3.4.482, time stamp: 0x535f3285
Exception code: 0xc0000005
Fault offset: 0x000036c0
Faulting process id: 0xb80
Faulting application start time: 0x01cfc7458fd32616
Faulting application path: C:Program Files (x86)1cv88.3.4.482in1CV8C.exe
Faulting module path: C:Program Files (x86)1cv88.3.4.482inext.dll
Report Id: d541a513-3338-11e4-a0f6-005056c00008
Event Xml:
<Event xmlns=»http://schemas.microsoft.com/win/2004/08/events/event»>
<System>
<Provider Name=»Application Error» />
<EventID Qualifiers=»0″>1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime=»2014-09-03T07:06:32.000000000Z» />
<EventRecordID>1738</EventRecordID>
<Channel>Application</Channel>
<Computer>Davit</Computer>
<Security />
</System>
<EventData>
<Data>1CV8C.exe</Data>
<Data>8.3.4.482</Data>
<Data>535f2a9f</Data>
<Data>ext.dll</Data>
<Data>8.3.4.482</Data>
<Data>535f3285</Data>
<Data>c0000005</Data>
<Data>000036c0</Data>
<Data>b80</Data>
<Data>01cfc7458fd32616</Data>
<Data>C:Program Files (x86)1cv88.3.4.482in1CV8C.exe</Data>
<Data>C:Program Files (x86)1cv88.3.4.482inext.dll</Data>
<Data>d541a513-3338-11e4-a0f6-005056c00008</Data>
</EventData>
</Event>
Problem signature:
Problem Event Name: APPCRASH
Application Name: 1CV8C.exe
Application Version: 8.3.4.482
Application Timestamp: 535f2a9f
Fault Module Name: ext.dll
Fault Module Version: 8.3.4.482
Fault Module Timestamp: 535f3285
Exception Code: c0000005
Exception Offset: 000036c0
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 1067
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Отличное прилжение, то чего так мне не хватало в магазине. Автору +
а вот log
Log Name: Application
Source: Application Error
Date: 03.09.2014 12:06:32
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: Davit
Description:
Faulting application name: 1CV8C.exe, version: 8.3.4.482, time stamp: 0x535f2a9f
Faulting module name: ext.dll, version: 8.3.4.482, time stamp: 0x535f3285
Exception code: 0xc0000005
Fault offset: 0x000036c0
Faulting process id: 0xb80
Faulting application start time: 0x01cfc7458fd32616
Faulting application path: C:Program Files (x86)1cv88.3.4.482in1CV8C.exe
Faulting module path: C:Program Files (x86)1cv88.3.4.482inext.dll
Report Id: d541a513-3338-11e4-a0f6-005056c00008
Event Xml:
<Event xmlns=»http://schemas.microsoft.com/win/2004/08/events/event»>
<System>
<Provider Name=»Application Error» />
<EventID Qualifiers=»0″>1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime=»2014-09-03T07:06:32.000000000Z» />
<EventRecordID>1738</EventRecordID>
<Channel>Application</Channel>
<Computer>Davit</Computer>
<Security />
</System>
<EventData>
<Data>1CV8C.exe</Data>
<Data>8.3.4.482</Data>
<Data>535f2a9f</Data>
<Data>ext.dll</Data>
<Data>8.3.4.482</Data>
<Data>535f3285</Data>
<Data>c0000005</Data>
<Data>000036c0</Data>
<Data>b80</Data>
<Data>01cfc7458fd32616</Data>
<Data>C:Program Files (x86)1cv88.3.4.482in1CV8C.exe</Data>
<Data>C:Program Files (x86)1cv88.3.4.482inext.dll</Data>
<Data>d541a513-3338-11e4-a0f6-005056c00008</Data>
</EventData>
</Event>