<?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='\
Вобщем-то всё верно, если исходить из того, что это защита ОТ ПОЛЬЗОВАТЕЛЯ. В остальных случаях всё это бесполезно, так как обработки для просмотра исходных текстов модулей (запороленных или скомпилированных) есть в свободном доступе, в том числе и на этом сайте.
Так же хочу заметить, что представленную «систему защиты» можно обойти, если кроме «перевода стрелок» стереть темповые файлики или просто зайти в 1С под другим пользователем.
В целом плюс за пример реализации ШТАТНОЙ защиты.
К сожелению не встречал, инструментов для открытия запороленных обработок, на основании чего де — юре полагаю , что данная защита надежна.
не сочтите за труд и просто укажите подобную нароботку, повторю, что открыть нужно не базу данных, а именно обработку.
Дополнительно, хотелось бы сказать, что если на предприятии имеются люди столь искушонные в программировании на 1С то для чего заказывать программу стороннему разработчику.
Писал такую-же защиту по времени.Действенно…Но как вот ее удаленно отключить после оплаты??))…Может на обработке проведения платежного поручения исходящего добавить проверку на контрагента (т.е. себя ) и устраивающую сумму))
Очень сомневаюсь, что закрываемый код является шедевром или ноу-хау. А вот что он содержит невыявленные ошибки уверен почти наверняка. Стоимость имеет не код, а его сопровождение. Я со сторонними разработчиками работаю только при условии предоставления исходных кодов и никогда не соглашусь по-другому.
По-моему, тема штатной почти не раскрыта.
1. СохранитьЗначение и ВосстановитьЗначение — это слишком дико.
2. Нет блока получения лицензии, который штатными методами сделать достаточно просто
ну что же, спасибо за критику. Мною была представлена на суждение не панацея, а лишь альтернатива которая просто имеет место и право быть, и в случае определенных ситуаций может быть использованна.
Всем приходится с чего то начинать, и если говорить о сопровождении, то зачем поддержить законченное решение которое удовлетворяет требованиям заказчика, и опять возникает ситуация (самому писать лень, мы лучше покритикуем или наверняка в вашем коде имеются ошибки), но это просто глупо передавать клиенту код который не работает. Никто не спорит если вы хотите работать с исходниками, программистов тем более на 1с заботит свой, личный так сказать шкурный интерес. И код обязан передоваться когда работа закончена и проведены все расчеты с программистом. И словом о ноу — хау программист имеет право считать то что считает по своему личному мнению.
и уж ни в коем случае не соглошусь с определением *Стоимость имеет не код, а его сопровождение* так как оно СОПРОВОЖДЕНИЕ зачастую отстает от профессионального уровня программиста, Ни кто не спорить что программные продукты обязанные быть актуальными не должны поддерживаться, но что один называет сопровождением другой назовет простой тратой денег. Но что хотелось бы просто донести до читателя это аксиома: законченая работа должена быть оплачена!
И если человек лучше спит по ночам, если его машина на стоянке или на сигнализации это его право , и кто его осуждает видимо делает это не просто так!
(2) Вот EI вроде можетhttp://infostart.ru/projects/782/ ну и есть ещё ДекодированиеМодуля.epf
Много раз уже обсуждалось, что штатная защита восьмерки обходится без проблем…
А вообще, я за открытый код (если говорить про 1С, так как это одно из важнейших её достоинств), никогда не понимал людей которые покупают решения с закрытым кодом…
Мнение от противного:
двайте на эту ситуацию посмотрим и со стороны покупателя… Вы заказали, оплатили, получили программу а через некоторое время оказалась, что она 1-ое даёт ошибку; 2-ое требует доработки по той или иной причине; и 3-е и 4-е и … как быть… ? кто прав кто виноват… в итоге, я думаю, пострадает авторитет программиста..
(10) Тут еще хуже: а если «сопровождающего» кондрат хватит или трамваем переедет? И песец вашей норке…
Какое-то веяние пошло выкладывать примитивный код с патетическим описанием 🙁 сайт для ламо коматозных
(10) считаю, что программы без ошибок не существует. При получении программы перед оплатой заказчик имеет право ее потестить и сказать работает она или нет, и если он говорит(подписывается), что работает, то за любое дальнейшее появление ошибок(особенно если они повились через месяц или год) программист отвественности не несет, и кстати гарантия на програмные продукты не распространяется… нормальные фирмы просто предлагают бесплатно исправить свои(!) косяки в течении гарантийного срока, который определяют в договоре. Если продукт требует доработки через полгода — то это уже другая работа, которая и оплачивается отдельно. естественно, что в договоре по сопровождению может быть много чего описано-но он не является обязательным. (че то много букоф получилось, а смысл думаю никто не поймет =( )
(12) » Дело в том, что самые интересные и изящные научные результаты
сплошь и рядом обладают свойством казаться непосвященному заумными и
тоскливо-непонятными. Люди, далекие от науки, в наше время ждут от нее
чуда и только чуда и практически не способны отличить настоящее научное
чудо от фокуса или какого-нибудь интеллектуального сальто-мортале. Наука
чародейства и волшебства не составляет исключения. Организовать на
телестудии конференцию знаменитых привидений или просверлить взглядом
дыру в полуметровой бетонной стене могут многие, и это никому не нужно,
но это приводит в восторг почтеннейшую публику, плохо представляющую
себе, до какой степени наука сплела и перепутала понятия сказки и
действительности. А вот попробуйте найти глубокую внутреннюю связь между
сверлящим свойством взгляда и филологическими характеристиками слова
«бетон», попробуйте решить эту маленькую частную проблемку, известную
под названием Великой проблемы Ауэрса! Ее решил Ойра-Ойра, создав теорию
фантастической общности и положив начало совершенно новому разделу
математической магии. Но почти никто не слыхал об Ойре-Ойре, зато все
превосходно знают профессора Выбегаллу. »
(Понедельник начинается в субботу)
—————————————————————
Так что привыкай ;)))
(14) ИМХО в (12) говорится о том, нафига люди выкладывают такую «мелочь» и какое повышенное внимание подобным «мелочам» уделяется 🙁
А ещё в последнее время я начал замечать, что те самые технологические ноу-хау создают разработчики которые предпочитают OpenSource.
Это не система защиты, а цирк. Клиент умеющий пользоваться гуглем вломает за пару часов.
🙂 Обязательно вЛомает, просне не может не вЛомать!
Крамольный вопрос… (философский) ?:
Ну почему русскому гражданину надо всё обязательно взломать… откуда это неуважение к чужому, частному… мы так наслаждаемся заграницей и её восхищаемся… а у себя все тырим и тырим…. что за «онанизм»… одни шариковы… видимо … все преображенские давно в париже…
русская халява попахивает душком-с….
отсутствие принципов — главный наш принцип… бей своих…. лучшее — делается только вопреки…
«Ну почему … откуда это»
—
Есть такой рассказик, очень старенький, повесть временных лет называется.
Там одна РУССКАЯ княгиня сожгла город, закопала живьем представителей населения… РУССКУЮ землю собирала… и так тысячу лет.
Естественно, местное население уходит в альтернативу, в «воры». А у воров отношение к своей собственности очень жесткое, знаетел и. Друг у дружки воровать остерегаются.
(20) маленькая ремарка…. вот воровать-то мы и не умеем только «спиз—-д—-…-ь»…. да и то, только, что плохо лежит…!
Как сказал Высоцкий: «Настоящих буйных мыло вот и нету вожаков»…
Переменовал, тему. Особо рьяные ждут чуда и видимо сильно переживают от того что оно не происходит, и если кто работал с реестром Win из восьмерки отзовитесь, будет полезно пообщатся.
(22) А что интересует? Можно через WSH, можно через WMI. WSH — проще, WMI — больше возможностей. Выбирай…
учитывая что критика воспринята конструктивно, плюсую…
опять философский вопрос?
почему мы, пользуясь ворованными программами так заботимся о своём мимолётном труде… понятно, что он именно «МОЙ» а те ворованные разве не надеются на честный бизнес… почему такая несогласица в нашим головах…? своё — ить не кому… и дай бог своруют… а чужое, да ради бога… Вор это звучит гордо… Не дал — это звучит гордо… Ребята, а что собственно мы защищаем — свои разработки стоимостью в копейки… и не получается ли, что на защиту мы тратим больше чем на саму программу…
если только сама защита не является программой….. дык и её то же своруют… а если не своровали … дык ваша программа просто никому и не нужна… такая вот логика получается…
во-о-о-от такое невесёлое мнение…
(22) просто кусок кода, для развития темы о защите.
Заботиться о своем — в природе вещей, ок?
Не заботиться о чужом — тоже не противоречит, и даже подозрительно.
Тогда вопрос (25) звучит типа «почему мы не любим друг друга?».
Может быть, потому, что законы «о защите интеллектуальной собственности» не имеют в природе своей любви.
Может быть, законы вообще не могут иметь любви в своей природе.
(27) Заботиться о своем — в природе вещей, ок? — поддерживаю…. только сразу же задаём себе вопрос — что является для меня своим…? что является для меня моим…? ну и из этого сразу будет следовать, что для нас является чужим…. вот и получается, что для нас всё является чужим… если оно ворованное… значит чужое … возьмите все на чём мы работаем и в масштабе рабочего места, ПК + ПО, получится что на всём варованном мы делаем «типа» законно чистый продукт…?
у законв природы нет человеческих законов, мы ведь не её проблема… она наша… но у неё есть свои законы… и яблока в верх не падает… а у нас очень даже может быть…
во-о-о-от….
Спасибо tango… удачи…
(28) Один человек, сказал что «считать полностью своим можно лишь то, что можешь в любое время продать», и если рассуждать далее по твоей теме то и даже твоя жизнь не твоя, а следовательно как и мысли в не твоей голове.
поэтому все относительно!
(29) делаем вывод: что нас ограничивает во взглядах на мир только частная собственность… ведь продать можно только то, что тебе, по закону является твоим… и окружающие признают этот закон… ведь если они не признают… и если они не признают… ну, тогда…? то можно и в милицию пожаловаться…. хи-хи… опять побежим хоть и к плохому но закону… значит плохой закон лучше хорошего хаоса….
ну а если всё относительно тогда чего обижаемся, что нам не заплатят деньги за наш «честный» труд… кажется ведь с этого начинается наша тема разговоров….
воо-о-о-от…
гм… вот есть старая киевского происхождения присловица:
«я бы продал родину, да не покупает никто».
современно я бы перефразировал:
«… да все уже без меня.»
э, нет, в сабже не было самоопределения «честный»
в сабже вообще не было о труде.
сабж — «дэнги, дэнги давай, да?», — а это нетленка
вау, какая мадера 1998! коктебель… в корпоративных отмечалках есть свои плюсы, несомненно
Все это — разговоры в пользу бедных. Против защиты выступают те, кого еще жареный петух в пятую точку не клевал. Но как только их много месячный труд отказываются оплачивать, при этом активно используя, они сразу же забывают о пренебрежительном «нетленка» и судорожно ищут способ обезопаситься от очередного кидалова.
Понятно, что если чел занимается исключительно обновлением типовых или сидит на фикси на поддержке пары конфиг, то он так и будет всю жизнь с пренебрежением сплевавать на тех, кто действительно разрабатывает что-то свое и не желает отдавать это на халяву.
(34) как мало прожито — так много пережито…
всякое действие рискованно… если уж кинулся зарабатывать деньги…
вопрос не о том нужна защита или нет… нужна… только от чего, кого и каково её моральное обоснование…
и во вторых нарушаешь чужое право, почему не даешь нарушать свои права другим… это ведь справедливо… или… как…?
воо-о-оот такое мнение….
Ребяты 😉 А объясните мне, убогому, что там в 1С-ке можно интеллектуального понаделать, чтобы защищать? 🙂
Пока либов туда не напихаешь — ничего путнего и сотворить-то нельзя. Вот творческие люди и пишут либы, и лежат они на том же Инфостарте: качай не хочу. А так.. ну конфигурация, ну документики, ну справочники… Труд — да, творчеством и не пахнет!
+(37) Это я к тому, что заголовок лучше бы было сделать «защита своего труда», или, еще лучше «защита от кидалова» 😉
А то понахватались американских словечек «хай», «вау», да еще «интеллектуальная собственность» :)))
ой блин обозвал я не так тему, видно не в «тему» совсем давай те все понатыкам автору тычков 👿 мы же такие умные, библиотеки пишем, мы капец какие крутые бобры.
Любой хороший программист исходит не из своих выпендрежей а из максимальной рациональности кода, тем более в обсуждалась проблема общения программиста и не программиста, я не преследовал целью закрыть все и вся для программиста, а только по глупости своей поддержать начинающих программировать людей.
а по поводу словечек, я считаю это дело каждого что помещать в свой лексикон что нет, и как говорится если автор не хочет что бы была «запятая» то он ее просто не ставит.