<?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='\
Первым 5 скачавшим обновление бесплатно(Доработка до Проф версии).в которой:
1. Будет доработан функционал работы с уже перенесенными заказами в доставку.
2. Отправка СМС заказчику (Из шаблона) при переводе задания в состояние «Отгружен».
3. Отправка почты заказчику
…..
Пока не придумал что.
Возможно будет добавлен функционал просчета оптимального маршрута, но тут уже сами будите договариваться с Яндексом об использование геокодинга и API функций, они у него платные.
Подробнее тут
Готов новый релиз, в него добавлена возможность работы с СМС
(1)Э! ты так слона не продашь…
(4) привет, ну как тебе сказать, подскажи маркетинговый ход. я готовлю проф версию, уже за деньги, в нее сейчас добавлена работа с СМС, еще есть пара идей, время будет только к воскресенью.
(3) алгоритм работы описан здесьhttps://infostart.ru/public/951474/
чтобы понимать всю глубину проблемы посмотрите сколько подобных разработок умерло.
Я понимаю, и не претендую на первенство.
Этот проект зародился очень давно(года три назад), до реализации дело только дошло.
Хочется создать действительно нужный и полезный продукт, по этому пожелания и идеи будут приветствоваться
+ этого проекта — то что не трогается типовая конфигурация.
Из развития, я уже говорил, что будет формирование СМС сообщений(уже есть в версиях для скачавших), формирование почтовых сообщений.
Групповое выделение точек доставок по зоне доставке.
Визуальное закрепление зон доставки за определенными доставщиками, и в случае попадание адреса в полигон, автоматическое формирование задания на доставку.(можно тогда не заморачиваться с зонами в заказах).
Есть еще идея в заказах, автоматического определения зоны и стоимости услуги доставки, но это нарушает концепт (не трогать типовой функционал)
(5) Бесплатно основной функционал, платно (техподдержка) — плюшки
(2) Вот в это всё и упирается, а именно:
2. Карта должна быть размещена на сайте или в приложении, которые сможет увидеть любой человек: без платной регистрации и получения особых прав. Например, карта не должна попасть во внутреннюю сеть компании или на сайт, который доступен только по приглашениям.
3. API не будет использоваться для управления транспортом или мобильными сотрудниками.
Для проектов, в которых нельзя выполнить хотя бы одно условие, API будет платным.
При использовании API Яндекса в 1С, как раз эти два пункта не выполняются. Платное использование API стоит от 120 000 руб.
Мало кто захочет платить такие деньги, а нарушение по незнанию не освобождает от ответственности.
(10) ест идея перевести на бесплатный, типаhttp://openlayers.org/ но там хромает точность.
(11) Да, он половину русских адресов не находит(
(12) вот вот, в России проблема с бесплатным геоокодингом. по этому крупные агрегаты(яндекс гугл 2гис), или забивание адресов в формате 55.00863546;45.6456135, но там и построением маршрутов ЖП, не видит дорог
А реально сделать отслеживание GPS трекера в 1с?
(14) реально, только нужен платный api, только там доступен функционал, либо по запросу можно получать точки нахождения приборов, в любом случае нужен ответ с мобильных точек с передачей координат. Прорисовку тогда можно сделать и на бесплатной. а если хранить например точки и записывать их каждые 10 секунд, то можно и прорисовать маршрут
Выдает ошибку на Управление торговлей, редакция 11 (11.4.8.63)
{ВнешняяОбработка.РабочееМестоМенеджераПоДоставке.Форма.Форма.Форма(3895)}: Значение не является значением объектного типа (value)
Элементы.Эксплорер.document.getElementById(«WebClientOperation»).value = «Reset();»;
платформа какая?
если честно, у меня 11.4.6… полет нормальный, но ради эксперимента на выходных обновлю копию до 11.4.8
платформа 8.3.13.16хх
Добрый день. При открытии формы рабочего места выдает ошибку:
1С:Предприятие 8.3 (8.3.15.1565)
1С:ERP Управление предприятием 2 (2.4.6.200)
(19) прошу прощения под 8.3.15 не тестировалось.
Возможно изменилось что то в платформе по работе с html.(буду проверять)
Как совет, было подобное когда версия используемого ie была очень низкой, попробуйте запустить с другой машины.
запускаю с Windows 10, соответственно IE стоит 11, выше некуда)
Ждемс исправлений с нетерпением.
Спасибо.
(21) Странно вида то же 10-ка, тогда платформа.. надо будет ставить.