<?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='\
Просто продублированы в «Delphi 5» несколько объектов «1С»: конфигурация, документ, запрос, справочник, регистр, список значений, XBase.
Пора в Delphi 7-й, 8-й и др. Пойду пробовать 1с за**ал.
Так этот набор я сделал в 2001 году. Тогда у меня был только D5 🙂
Ну как компоненты? Работают? 🙂
Просмотров: 183
Скачиваний: 7784
Прикольно… :)))
Пошла в тираж… 🙂
м-да… че-то никто не голосует… ничего не пишут…
видимо, бестолковая вещь 🙂
Пикольно! Кстати зря что бестолковая мне лично пригодится
Спасибо за отзыв 🙂
А проголосовать?!! 😉
я случайный посетитель, больше конечно сюда не зайду, но пожелание — переписать сие творчество под OLE без вызова русских методов, в d2005 они не работают
Очень жаль, что в d2005 не работают русские методы. Что мне понравилось в д5, так это то, что можно было свободно вызывать русские методы (мне показалось, что 1с-никам так будет легче воспринимать эти компоненты). Неужели d2005 (это версия?) менее способна по функционалу, чем ее более младшая версия д5? Обидно…
У них проблема с русским юникодом, причем установка всех обновлений не помогает, сейчас попробую реализовать свои наработки на англоязычных синонимах и getattrib
При вызове русских просто пишет метод *абракадабра* не найден
Плюсую рейтинг
Спасибо 🙂 Пригодилась?
Тоже плюсую рейтинг — очень профессионально сделано!
Рад, что пригодилось 🙂
Дамы и Господа! Оставляйте пожалуйста свои комментарии и не забывайте плюсовать рейтинг, если пригодилось 🙂
Ломает регистрироваться, а то бы поднял рейтинг
Очень жаль — не такая уж долгая процедура 🙁
+1 , афтару зачот… :-))
Спасибо! 🙂
Спасибо!
Спасибо всем, кто оставлял комментарии и плюсовал рейтинг 🙂
Если не в лом расскажи плиз как эти pas’ы подключить к дэлфушному проекту, чтобы их пользовать нормально, а тоя немного не пойму
2 Phoenix: Да сам уже несколько лет к Дельфям не подходил 😉 Насколько помню, ничего хитрого. Содать новую библиотеку в дельфях, добавить в нее все эти pas-ы, откомпилировать, получить новую закладку компонент «1C Servers», использовать невизуальные объекты.
ЗЫ: Создано на «Дельфи 5», на других версиях не пробовал.
2 Phoenix: Ну как? Получилось?
Добавлен файл с описанием библиотеки. Надеюсь, что описание несколько облегчит использование этой библиотеки компонент.
иожно ли получить результат системной функци Формат?
Можно, хотя, как всегда в 1С, через "одно место". Этот набор компонент не выходит за рамки стандартной работы с 1С через OLE.
К примеру, который находится в "подробном описании":
Показать полностью
Т.е. получить результат можно через функцию 1С-сервера «EvalExpr».
Эх, жаль нельзя всем, кто уже скачивал раньше, описание автоматически разослать или оповещение 🙂
для этого надо открыть скачивание только для зарегистрированных
2 support: Тогда появится возможность рассылать сообщения автоматически тем, кто уже скачивал раньше? Что означает «открыть скачивание только для зарегистрированных»?
Блин, надеялся, что наличие описания поможет в продвижении этой разработки по «лестнице» рейтинга, оказалось — фиг :)))
блин уже все удалил мож у кого есть поделитесь очень нужно!
(37) Хм… Ну а почитать файл?
http://www.1partner.nnov.ru/develop/opis180.shtml
Набор невизуальных компонент для работы с 1С 7.7 через OLE (Pascal, Delphi 5)
—
зы: чукча не читатель, чучка — писатель? 🙂 шутка, необидная 🙂
to wolfsoft спасибо!!! странно но вчера сайт их был недоступен….
Хм, вот не получается создать новый документ…. Может кто подскажет, и чтоб туда еще несколько значений добавить
>>В противном случае — при несоответствии рейтинга количеству скачиваний — доступ к обработке будет ограничен.
А что, если я скачал, а оказалась фигня, то я тоже должен «+» ставить?
(41) В этом случае, стоит поискать лес, потому что это — не фигня.
(42) Для начала подучите грамматику и смитиресь с мыслью, что мнений только же, сколько людей.
А данные по операциям из бух учета может выдергивать?
(45) maverick76, рад, что пригодилось.