<?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='\
аа..хорошая вещь, как то рисовал ей, хотя помню были какие то неудобства связанные с эргономикой.
Скриншоты!!!
Как в старом добром Access
А ничего так…
Дык это ж в каком году всё было еще реализовано то ?
С антрессоли достал ? :)))
Или просто под снеговик решил переделать?
(5)Да без малого 2 года назад. Просто вчера обнаружил тут свою разработку которую вообще в 2001 начинал делать — людям понравилось, они ее выложили. я так подумал а чего бы и мне пылью не тряхнуть 🙂
А под восьмерку она изначально была сделана. Ни чего с тех пор и не изменилось. Просто были мысли и наброски как ее развивать, наверное долгими зимними вечерами займусь 🙂
На Win2003 R2 инсталятору не удается зарегать ActiveMD
А самостоятельно-вручную тоже скорее всего не получается?
АктивМД нужен только для прямого доступа к МД. имхо более удобно чем заморачиваться с выгрузкой структуры в xml.
Для v8 работа через обработку — единственный путь.
(7) на Win2003 R2 у меня вывалилась ошибка при установке, но программа работает.
(0) не хватает автоматического построения по всей конфигурации
«не хватает автоматического построения по всей конфигурации» — именно так и написано? Исходники дома не смогу глянуть.
Работа через МД или xml — Что за конфа? Если ХМЛ — может вышлешь файлик на grayt DOG front.ru — постараюсь посмотреть вечерком чего и как
тьфу блин, запарился — думал у тебя ошибка такая вылазит 🙂 Притормозил малость :))
Авто построение по всей конфигурации — практически не выполнимая, да и не нужная вещь
во-первых встают вопросы размещения объектов и трассировки связей чтоб они в глазах не мельтешили и не сливались (не выполнимо)
во-вторых Это будет абсолютно не информативно. Разве что только для микроскопической конфиги сгодиться (потому и не нужно). Можно подумать за подсистемы конечно. Но все равно — обилие связей приводит к то му что приходиться формировать несколько диаграмм — для каждого конкретного случая. Да и размещать объекты приходиться в зависимости от того какую подсистему хочешь реально изучить/запротоколировать 🙂
(12) Тогда скажу по другому: было бы удобно если можно было сформировать ближайшие связи объекта, т.е. передащил документ а программа сама вытащила и разместила используемые справочники. Количесвто колен связи можно настраивать.
Там по второй ссылке лежит еще одна программа — первый вариант. Вот там реализовано то что ты просишь (если я тебя правильно понял). Но там вместо практически полноценного графического редактора используется excel 🙁
А так из рациональности там достаточно интересным (имхо) было дерево связей и возможность автоматического построения. Правда на практике я дальше 2 уровня прослеживания связей не использовал — потом просто уже невозможно разобраться.
Хелп… Чего то по Висту Актив МД не устанавливается пишет что ошибка памяти
Виста зло 🙂
А если серьезно — мне даже попробовать негде на висте 🙁 Но если ты так говоришь — значит скорее всего так оно и есть…. Я уже писал по поводу АктивМД. во-первых он только для семерки. во-вторых активМД заточен под оперативный учет и накладывает ряд ограничений (не все объкты конфигураций вытаскиваются)
То же на висте с activemd проблемы, правда на хп сп3 то же, пишит что конфа под паролем, а пароля и нет..
Ну делаю вывод что с АктивМД явные проблемы начиная с SP3 🙁 Что то там не так. То что с паролем не работает — там на самом деле все просто — если активМД не смог открыть МД-шник, считаю что это пароль….
Прикольная штучка)))
Вот только, неудобсто.
Нарисовал картинку и можно только распечатать, а скорировать ее в Ворд, Визио или прочий буфер обмена?
В этом случае практическое применение насколько ограниченно.
а можно последнии скрины выложить? для 8.1
Плюсану за ActiveX
отсутствие сохранения в другие форматы делает данную обработку бесполезной, идея хорошая, но это только логическое представление базы данных, а где физическая структура, как ErWin???
«Плюсану за ActiveX» — за какой из двух? 😉 Там их два и надо признать — оба не мои.
http://www.script-debugger.com )
ActivteMD (автор Павел Бычковяк если не ошибаюсь) и Pro Grapher (сайт первоисточник молчит к сожалению
Что касается других форматов. Так понимаю что речь идет о векторных форматах. С этим проблемы — у используемого АктивХ нету функции экспорта в вектор 🙁
Что касается физической структуры. Ну во-первых повторять ЕрВин ни кто и не старался. Смысл рисовать физику? Программа задумывалась именно как инструмент анализа, изучения и документирования логических связей.
(35)>(автор Павел Бычковяк если не ошибаюсь)
НЕ ОШИБАЕШЬСЯ 🙂
у мну не работает. при попытке загрузки из MD или из XML вылезает access violation.
>>Что касается других форматов. Так понимаю что речь идет о векторных форматах.
>>>С этим проблемы — у используемого АктивХ нету функции экспорта в вектор 🙁
Ну векторы это круто конечно, но хватило бы
>>>Pro Grapher supports:
>>>Export to the .BMP, .JPG, .PNG and .EMF formats;
«у мну не работает. при попытке загрузки из MD или из XML вылезает access violation.» хм… скриншот можешь сделать? И выслать xml файл — попробую у себя.
АктивХ Pro Grapher нормально установился?
—————
>>>Export to the .BMP, .JPG, .PNG and .EMF formats;
Ну прикрутить экспорт в растровые форматы не проблема — сделаю на досуге 🙂
УРААААА
«+» однозначно.
Выгрузка в другой формат очень бы даже не помешала — постоянно делать скриншоты с экрана не очень хочется.
Плюс. Очень полезная вещь.
А на УСН 7.7 не пойдет? Ошибка: ‘0,001’ is not a valid floating point value. 😥
(43) В какой момент такая ошибка возникает?
Сразу при запуске((((( а программка ну ооооочень нужна.
Операционка какая? Если сразу при запуске то УСН тут не причем. Видимо проблемы с АктивХ графическим 🙁
очень нужна данная обработка, но почему то не могу ее скачать…((
есть другой ресурс, где это выложено?
Добротно, и качественно, рад
Как то потыкался — потыкался ошибка через ошибку лезут… аж расстроился…
Большое Спасибо!
Очень полезная обработка
очень помогло, спасибо
При первом запуске выдает ошибку:
0.001 is not valid
Потом при открытии ошибки не выдает
Пытаюсь загрузить XML описания конфигурации — пишет что поддерживается только формат версии 1.
Какой версии конвертации данных его можно сделать ?
Начало XML Файла выглядит так:
<?xml version=»1.0″ encoding=»UTF-8″?>
<Конфигурация xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» Имя=»Acsyst»>
<CatalogObject.Конфигурации>
<Ref>c589adfc-36cd-496f-99c7-f740fc1e918c</Ref>
<IsFolder>false</IsFolder>
<DeletionMark>false</DeletionMark>
<Parent>00000000-0000-0000-0000-000000000000</Parent>
<Description>Trading-Figeding</Description>
<Имя>Trading</Имя>
<Синоним>Конфа (Trading-Figeding 8.1)</Синоним>
<Комментарий/>
<Версия>8.1.01.01</Версия>
<ДатаОбновления>2011-12-09T18:06:50</ДатаОбновления>
<Приложение>Предприятие81</Приложение>
</CatalogObject.Конфигурации>
<CatalogObject.Объекты>
А откуда вообще этот XML файл взялся?
http://infostart.ru/public/101036/
И еще — может стоит посмотреть вот на это —
правда она под 8.2