<?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='\
Именно лень движет прогресс, АднАзнАчнА 😀
А использование специальной конструкции
#ЗагрузитьИзФайла g:1 декабряЗапись из текстового файла в ertМодульВыгрузки.txt
уже не комильфо?
(2) Я правильно понимаю, что такая конструкция есть только в 7.7. В этом случае не комильфо: замена модуля обработки происходит из базы Конвертация данных на 8ке.
(3) ert-файл и есть 7.7. Один раз прописываешь путь и все.
А модули для восьмерки хранятся в правилах обмена.
А так не спорю, может и полезная программа
не программа то пригодится (например держу выгруженные модули например для массовой замены определенных параметров) приходилось извращаться .. лови плюса..
Мой древний вариант дял КД через GCOMP 😀Отладка обработчиков в КД
Правда, для последней КД не переделывал
А для 8-ки кто нить подобное делал?
(7) В 8 тексты обработчиков в правила в строены, а отладку недавно сделали через внешние обработки. В обработке УниверсальныйОбменДаннымиXML достаточно подробно пояснено что делать при отладке.
Чтобы не спорили, как лучше, быстрее и т.д. 😉
http://infostart.ru/public/15043/
Просто дернул кусок из своего
В результате трудозатраты составили 30 минут на поиск подходящей иконки для программы
(2)
#ЗагрузитьИзФайла g:1 декабряЗапись из текстового файла в ertМодульВыгрузки.txt
В анонсе ж написано: для ОСОБО ленивых.
На флеху если копировать, аж ДВА файла придется 😉 Да еще можно и забыть текстовик скинуть.
… что? … используем принципы двойных стандартов …
… это я по поводу оформления обработок … ???
… ужжж … молчу по поводу содержания …
… ВОТ …
п.с.1. а вроде САМ — сам модератор … иииих … всЁ как в ЭрЭф-ии … ё …
п.с.2. … и даже наш прнципиальнейший носитель-прекрасного (артбир) отметился плюсом … нууу, до чего чУден и НЕОдназначен мир …
… простоВОТпросто …
(11)Ежели честно — ни фига не понял.
Надо было скриншот программы, у которой вообще окна нет выложить? ❓
Чего там не хватает в содержании?
+(12) Шепот, что предлагаешь добавить к исчерпывающим строчкам:
(2) Для локальной отладки такой вариант, конечно, работает.
Но если идти на другой комп, вариант становится нерабочим.
Поэтому его сложно назвать универсальным в отличие от сабжа или решения на Gcomp из (6)
(6) Так я же переделывал на последнюю для 8.1, не для 8.2
У тебя в комментах выложил доработку 🙂
(11) Тут фактически командная строка, что еще добавлять-то? описание КД 🙂
… дорогие ! (я не шучу … я серьёзно … ИС без вас малоПредставляем) …
1. читаем правила офрмления обработок … сверяем — удивлЯемся …
2. что ? показать некоторые обработки — где они охаены и поставлены минуса — за те же самые «одна» строчка и не указанные платформы, например, … и излишнюю простоту …
п.с.1. … смЕЕЕшно-с …
п.с.2. … всё больше и больше ИС напоимнает «РАВНЫХ» среди «равных» … может нам поставить «мигалки» на некоторых товарищей … а что ? … и прикольно и «новая форма» повится … опять же знак РАЗличия ! ..
… вотЗАмолк …
(15)
Какие на фиг платформы? Это, как и написано, программа Windows. И никакие одноэсовские платформы её не колышат.
И никакие 1С (… непечатные слова…)конфигурации я специально не указывал. Это моя принципиальная позиция.
Я, кстати, чуть не морду бью тем, кто посмеет меня назвать 1С-программистом 😉
(16) … и где.жжж тогда дисциплина на ИС … если такие модераторы … ? …
… анархия «РАВНЫХ» и демократия «равным» …
… вотДЕВИЗис …
(15) Сань, ты чё? Плохое настроение? Я честно говоря недоумываю, что можно еще добавить к описанию. Может разве написать: запускать только под Windows. Под VMS, Ubuntu и иже с ними даже не пытайтесь. Тогда с платформой будет все ОКеюшки.
PS: Аркадий, допиши еще пожалуйста — «в сеть 200В НЕ ВКЛЮЧАТЬ!!!»
Обрати внимание на красный квадратик на рисунке. Почему оно в заголовок не попадает — вопрос к Доржи, однако
(19) см. 18
… с моими «отцами» — я категорически СОгласен … и спорить не буду даже …
… я высказал своё личное мнение, оно может быть и НЕправильным … кто хочет увидит … кто ЗАхочет поддержит … кто не согласен — выскажется …
… вот …
(21) Сань, без обид. Вот ты лично что бы еще добавил к описанию?
Приведу пример: есть у меня приблуда (как раз Абадонны — по моему заказу сделал) запускается без окошек, в ини-файле всего три строчки (но тем не менее чрезвычайно полезна функцией, которую штатными средствами ну никак)- и какой скрин для нее выкладывать? Другой вопрос, что Аркадий считает такие вещи мелочевкой и вряд ли ее выложит здесь, а я уже ее у 5 клиентов поставил 😉
Насчет
Один бывший ярый сионист окрестился и свалил из Израиля. Одной из причин было то, что на попытку жить «по демократическим принципам» ему
там ясно дали понять:
— Ты что, — дурак? Это ж для внешнего употребления.
Вот так, дорогой ты наш демократ 😉
… и был ЗАбит камнями ОН … ))) … и как дружно … как дружно … ))) … и даже израиль прозвучал — типа международный масштаб у нас однако …
… зато теперь данная обработка станет «эталоном» — и ВСЕ за неё проголосовавшие и её прокоментировавшие — наверное станут «эталонами» оценки других авторов — пишушие подобное …
… вот …
(14) Конечно я помню 😀 Но, на последнюю мы не переделывали. Хотя я тут встречал пару раз мою обработку под другим именем с переделкой. Один, правда, на источник сослался.
ЗЫ Я считаю что это тоже вариант, хоть и не универсальный, но имеющий право на работу поэтому и поставил плюс.
(0) Я как обстоят дела с именами с пробелами, а то у GCOMP-а были с этим проблемы?
(25)
В КАВЫЧКАХ полные пути, как и написано в описании и примере
В общем, КГБычно, как бы и в *.bat писал
Очень бы такое согрело, написанное под 8.1. И к тому же в обе стороны: выгрузка модуля epf в текстовый файл и загрузка из текстового файла в модуль epf
… И Шепот теней про двойные стандарты на ИС реально насмешил. Почитай сперва свои комментарии, чтобы говорить о каких-то форматах изложения мысляф… мыслей … мыслев … 😀 ВооОООоооОООооооотттт ведддьььь…..
не люблю exe-шники 🙁
(29)
Готовить их не умеешь.
согласен, но все равно не люблю 🙂
(0) Приветствую! Прошу прощения, что вопрос по другой теме. Не могу написать тебе в личку. Занимался ли ты чем-нибудь подобным (?) :
http://demo-ma.1c.ru/trade/ru/ — имеется в виду созданием общей для всех разработчиков и открытой для доступа базы?
http://infostart.ru/public/81148/ и пока горячо хотел узнать твое мнение.
Я поднял тему
(32) Ответил в личку
Удобная вешь, сразу ert получать. Правда я использую вариант отhttp://forum.infostart.ru/forum24/topic36874/message403826/#message403826
Был у меня вариант:
Но админы права порезали. 🙂
Спасибо тебе за другое решение.
(35)
Не пущать — это их работа. Их на@@ать — наша :)))
(2) Serj1C, Спасибо. Это тоже работает: #ЗагрузитьИзФайла C:….ACC77_KA11_UPP13.txt
У меня пару минут тормозит только. И даже отладчик 77 вытаскивает такие модули, но тоже тормозит несколько минут.
Спасибо, вещь действительно очень полезная!
Спасибо, сэкономил кучу времени и нервов!