<?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='\
Попытка реализации компилятора 😉
Проверка синтаксиса поверхностная, пока не заморачивался, как и все остальное, так что ошибки вполне могут выскакиват и в «рабочем» коде 😉
Василий, а где это можно применить?
(3) Пока нигде 😉 Как вариант далее — разбор того же epf-а, генерирование формы (уже windows-приложение, а не консольное), отработку событий. Ну и, теоретически, работа с данными в sql-ном режиме 😉 Предварительно, структуру метаданных получив.
(3) по секрету… в оконцове должен стать КЗК-8 😉
+4 ну ипользовать можно будет, когда работу с файлами добавлю — возможность писать на 1С-е небольшие утилитки, по обработке файлов 🙂 с компиляцией в самостоятельные приложения.
(5) Тссссс…. 🙂
Однозначно революционная вещь
Лучше бы генерил ВК(dll), exe то никуда не пришьешь.
(9) Да это не сложно 😉 В планах это реализовать.
Цитата с Bash.org.ru:
MerryMaker: Смотрю рекламу VoIP-провайдера: «Просто подключите стационарный телефон к интернет-шлюзу, и звоните без ограничений».
MerryMaker: 10 лет назад я выходил в инет через телефон, а не наоборот…
и гланды удалять можно через ж*** только зачем?!… неужели С++, Делфи да того же Бейсика для работы с файлами, SQL и прочего не хватает?
(11) Не поверишь! Мне — хватает. Я цели преследую совершенно другие.
=) тогда не вопрос) за идею однозначно +!
(9) И будет Golden Key…
А вообще, весчь не нужная имхо. Серьезный компилятор требует много мороки, функционал восьмерки достаточно обширен. А это — игрушка, не более. Списки и таблицы значений — это семечки. Вот когда встанет вопрос о привязки к метаданным, о транзакциях и разделении прав, то все и заглохнет, скорее всего. Лучше предложить нечто принципиально новое, как блокнот, в котором молжно еще и программировать. Как вариант — можно не парсить самому код 1С, а включить в состав dll от 1С, где это делается. Просто проработать вывод на экран альтернативный.
(14) А каков принцип работы гкея? Полноценное конвертирование кода 1С в язык высокого уровня или просто прятание модуля в глубь библиотеки?
Первое — КЗК. У меня — второе. Скажем, есть Ном=СоздатьОбъект(«Справочник.Номенклатура»); Я в модуле заменяю на Ном=GK(2313);
(16) Ну в целом понятно… Я полностью конвертирую код 1С в язык ВУ 😉
А заглохнет или нет — посмотрим 🙂
Класс !!!
(17) Если добьешь это до рабочей версии, то покруче разных формекс будет. Но работа — не на один месяц. Возможно, на годы. Стоит вспомнить, сколько разрабатывается любая новая 1С, и сколько чел. в этом принимает участие. ТЫ готов к этому? 🙂
(19) Я знаю, сколько человек разрабатывает платформу, и ты будешь удивлен этому количеству ;))
Я понимаю, что это работа не на 2 недели… Понемногу, постепенно… 🙂
не взлетит.. просто по опыту других разработок аналогичных еще для 7-ки… тогда было бы уже лучше сделать автономную среду разработки, которая бы заменила типовой конфигуратор 1С-ки…
(14) А на счет блокнотика я подумаю… Мой дебаггерский вариант примерно напоминает этот блокнотик 😉
(21) Я тоже думал на счет этой темы…
(20) Я не говорю о кодерах только. Их, как правило, не больше 2-х ))
(20) а сколько (для общего развидия:))
(24) Ну давай ориентироваться на кодеров 😉
(25) в (24) примерно угадал… Хотя сейчас, ситуация, конечно может быть другая… С учетом появления 8.2.
Прикольная игрушка! Душелов радует как обычно! ) Жирный плюс!
Но как я и говорил на форуме это возможно, но не реально. Написание полноценного компилятора любой обработки в EXE сопоставимо по трудозатратам с переписыванием всей платформы с нуля. Одному человеку это не по силам, даже если это Душелов! ))
Ставлю плюсик за одержимость идеей! :)) Молодчик! Чё сказать?.. 🙂
(27) Я знаю, что одному не под силу… Но никто и не говорит, что я буду один 😉
Идея есть. Возможность реализации в принципе есть… А там посмотрим 🙂
(0) плюс
(19) Не грузи Душелова. У него есть то, что теряют большенство программистов с возрастом. Это азарт и вдохновение. Те, кто хоть раз ощущал ЭТО, когда наплевать на деньги, на сон, на еду, когда не думаешь о том что получится или нет, когда не думаешь о признании, думаю поймут меня.
В общем Душелов красавчег.
(26) Не угадал, а знаю, потому что участвовал в разработках ПО (конечно, не 1С) Просто тянуть команду из более трех программеров, на самом деле, очень затратно: такие проекты требуют хорошей организации. Просто на каждого дополнительного программера требуется несколько менеджеров. На это тратится будет только Билл Гейтс. У нас рассуждают примерно так: «Какой отдел ПО?! Мы вон сейчас Шурику, сыну главбухши, дадим, он за месяц все напишет, лишь бы ему курсовую зачли».
(30) Ха. Мне не говори про потерю азарта и вдохновения. «С возрастом» оно лишь прибавилось. Но появилось и еще одно немаловажное качество: умение рассчитывать затраты. Потом, я не говорю, что проект обречен. Просто он очень затратен. Тут на одном вдохновение и азарте не выедешь. Все это исчезает при пятой, десятой, двадцатой серьезной затыке. Начинаются разговоры о нехватке времени, о глобальных катаклизмах и т.д. Кстати, кто-нибудь скажет, как поживает проект «Апельсин»?..
(29) А как ты собираешься реализовать работу с БД? Для такого компилятора жизненно необходимо ориентироваться именно на файловую базу (*.1CD) я считаю! А если тебе по силам организовать такое взаимодействие, то стоит не об этих игрушках, а о серьезных вещах задуматься!!! Например, альтернативный «клиент» для файловой базы. )
(33) С sql-ной версией в целом все понятно, а вот с файловой — тут уже надо ждать других специалистов, которые смогут разобрать этот файл.
(33) Это — как раз не вопрос. Можно пристегнуть любую имеющуюся.
(32) Затраты кроме моеги личного времени… Я просто люблю программировать и изучать что-то новое 🙂 И не я один… И с годами эта страсть все сильнее и сильнее… :)))
Может к теме вернемся? Кто-нибудь уже посмотрел? Попробовали что-нибудь набросать простенькое?
(33) Хм… Не сразу вьехал… А зачем 1CD не является защищенной авторским правом? Т.е. можно с ней работать вне платформы? Может, лучше собственную структуру данных иметь для собственного проекта?
А, забыл сказать, что для компилации требуется обязательно присутствие процелуры «ПриОткрытии()» — в качестве точки входа в программу.
(34) В том-то и дело, что такой инструмент имеет смысл только для файловой базы! Зачем чё-то компилировать под SQL-ную базу, если проще написать приложение непосредственно работающее с таблицами???
(35) Не согласен.
(38) Вот с авторскими правами косячек, я думаю, будет! )
Ого! (+)
Совет: чтобы не париться с синтаксисом и разбором кода, можно конвертить не исходник, а р-код, который 1С генерит при поставке без исходников. ИМХО так будет и в реализации проще, и надежней.
(43) Спасибо за совет, поковыряюсь!..
(30) > Те, кто хоть раз ощущал ЭТО, когда наплевать на деньги, на сон, на еду, когда не думаешь о том что получится или нет, когда не думаешь о признании, думаю поймут меня.
..да! это знакомое состояние… только вот семья как-то не сильно приветсвует…
(45) Жена сама из-за ноутбука или книжек не вылазит — ей удобнее, хоть от меня отвлечься можно, своими делами заняться :)))
(46) Я рад за тебя! это тебе с женой повезло! 😉
Качаю что попало.Зачем, к чему это приложить? Может потом пойму:)
Учусь,одним словом 🙂
Вот когда реализуешь работу с прикладными объектами вот тогда это будет ОГОГО. А пока что фигня какая-то
Вообщем, все новости и прочее, буду постить тут:http://infostart.ru/community/groups/36/
(48) угумс.. у меня тоже асяким барахлом род терабайт забито…
Молодец Василий! Ой не зря всё это затеяно — главное не результат, а динамика!
Если честно не понимаю за что плюсы?
Мож кто объяснит темному?
Не проще на языке высокого уровня сразу программу написать?
Этот компилятор даже к рукаву не пришьешь…
Базу 1С он умеет использовать?
Отчет на нем самый простецкий можно сконвертить?
А для того чтобы написать рабочий exe или dll надо практически туже платформу 1С написать только сбоку…
Темный я какой то…
Если не заглохнет, то… То это волшебно и революционно! Наконец-то можно будет писать независимые приложения, как в нормальной среде и языке разработки! Спасибо за подвижничество и героизм.
Мечтал о таком, но сам никогда б не взялся…
Может, тотализатор? 🙂
Ставлю 100 евров на то что загнется :)))))
Если Василий напишет работающую вещь то этих денег будет не жалко!!!!!!!!!!!!!
(0)
🙂
а вот интересно..
получится сгенерить файл монополия.epf?
(56) Загнется на каком этапе? 😉
(57) Это что? Игрушка что ли?
Если Василий напишет автономную среду разработки, поддерживающую работу в полном (или почти полном) объеме с md и +платформу исполнения (или в экзешник или как сейчас 1ска — по выбору разработчика) — то и мне, вообщем-то 100 евро не жалко…
(58) Это сложный вопрос… я вообще то думал что это шутка ;), но фиг его знает слово не воробей…
Например дается пол года.
Если будет возможность exeшнику обращатся с базой (чтение, запись) хотя бы по основным объектам метаданных использовать глобальные процедуры общих модулей. То я признаю поражение.
(60) Запись в бд — это вряд ли (самое трудное)… А вот хотя бы на чтение…. 😉
(59) Один я этого не напишу, тут помощники нужны…
— Ты за сколько времени карету починить сможешь?
— За два месяца
— А за три?
— Могу и за три
— А за шесть сможешь?
— Ну коли постараться и за шесть смогу
— А за год?
— Ну за год — это сложно, тут помощники нужны!
Пр: А за два?…
Стр: …
56. У него как-то сразу получаются работающие вещи ..). Мастер он.
Интересно, как это будет по размеру, надобность в кзк2 отпадет или как, получится ли коммерческий продукт и т.д. Во всяком случае хочется пожелать успехов в этом проекте.
(63) присоединяюсь…
(62) И я о том же…
+ Как к бесплатному(он же планируется бесплатный) аналогу отнесутся 1С, возможны палки в колеса, в этом я уверен.
Это реальный свободный проект типа openoffis.
Это круто и тут нужна серьезная организация действий…
Ищи единомышленников… Я бы помог, но знаю языки ВУ не на том уровне который здесь необходим… Возможно со временем 😉
(63) zaic вещь то неработающая, не разделяю оптимизма, пока это только баловство
Мне больше интересно, как у тебя, Василий, получается так «завести» людей, вызвать всеобщий психоз :)???
Поделись секретом 😉
(67) Какой психоз? Где? ;)))
Я просто реализовываю мечты, когда был чистым одинэсником… Хотелось этого, того и еще вот этого… А сейчас просто занялся реализацией 😉
Я так примерно и объяснил себе происходящее… Плюсуют мечты… ))))
Как сам то оцениваешь судьбу разработки? Как думаешь насколько тебя хватит?
(70) Как минимум — базовые возможности платформы- работа с файлами, xml, дбф, с инетом и прочее — что не зависит от конфигурации и данным можно будет в xml хранить.
К чему стремиться — разбор обработок(модуль и форму), разбор конфигурации и чтение из SQL — это все вполне реально.
Есть просьба выложить (тестовый).exe файл… Сдается мне, что даже в первом приближении компиляцией это назвать нельзя?! Если это DotNet то там предварительная компиляция в MSIL, а это увы не то же самое, что машинный код! Хотя посмотрим дизассемблером видно будет. Сам «скомпилить» не могу по тех. причинам! Да странное конечно желание у автора возникло… (Это всё равно, что назад на дерево:) Собственно не компилятор это думаю к интерпретаторам ближе, ну поправьте если что! А… автор ведь на шарпе пишет?! Ну так можно не смотреть там компиляция на стадии выполнения идет как и в Бэйсике.NET теперь…
(72) Так понятно же, что нужен .Net. 😉
А почему странное желание то?
Можно назвать и интерпретатором, хотя микрософт за компиляцию считает. 🙂
+73http://msdn.microsoft.com/ru-ru/vcsharp/aa336817.aspx
(58)
🙂
ну да
монополька
с анимацией
никаких чтений из БД
тем более записи…
поиском можно найти..
Компиляция это необратимый процесс перевода текста программы в машинный код… Байт — код как и на Яве не то! Окончательная компиляция на стадии выполнения идет. Именно поэтому некоторые части программы могут быть не скомпилированы совсем(За ненадобностью)! Странно потому, что надо наоборот подниматься по лестницы абстракции выше, тенденция такая вроде нынче! Или я не прав?
(76) Как бы спорить об определениях не вижу смысла 🙂
http://ru.wikipedia.org/wiki/Компиляция_(программирование)
Кому интересно, могут почитать
А что в целом-то не устраивает? 🙂
(75) Что-то не найду совсем.
(48)>Может потом пойму:)
Размечталась…
Почему не утраивает? Устраивает всё… Истину ищем! Про компиляцию.
Привет Abadonna! Старая школа с нами?! Что про компиляцию то думаешь?
(80) Ага, а 1С — язык программирования, и программисты 1С — программисты 😉
Тем для холиваров полно :)))
(78)
🙂
давай мылу
вышлю
(81)>Старая школа с нами?!
Открою секретик 😉 Нет ни старой, ни новой. Я инженер-механик, специалист по динамике и прочности машин и механизмов, большой любитель сопромата. Серьезно
(84)хорошо,что не компроматов!!
Да это не важно кто в какой садик ходил… Главное все здесь собрались… И любители сопро и просто мата… Правда иных уж нет , а те уже далече!
(85) И ты ошиблась :))))))) Я ж не Гений 1С, а просто гений. Одинаково хорош во всех областях :))))) (Фиксин, это не в твой огород, просто каламбур)
О и ты Оля!
У меня комп сгорел сегодня (один из трех, но основной), вот я и хохмлю, что б не плакать 😉
(83) vasil(сабака)dushelov.ru
(73) MSIL именно компилируется и именно в машинный код — при первом запуске на клиентской машине. Со всей возможной для данной конкретной машины оптимизацией.
(91) я для подобного native generatorom пользуюсь:http://msdn.microsoft.com/ru-ru/library/6t9t5wcf.aspx
идея хорошая +1
по крайней мере вижу вот такой вариант использования — компилим отчет, который ставим менеждеру(оператору… нужное подчеркнуть) не имеющещему необходимости в использования всей базы, а только конкретного отчета и вуаля
(91) Ну а я о чём? Только не весь он компилируется, это было бы слишком тормозно, в том и фишка! А «настоящий» экзешник скажем из С или Асма уже в «байтиках» скомпилен тоесть и весь… Чуете разницу?
Ну опять же оптимизация хоть и является неотемлемой частью современных оптимизирующих компиляторов (Intel C++ компилер мне очень нравится) но всё же кодер то тоже не лаптем щи хлебает… И может как помочь ему так и забить на это дело просто удалив дебажную инфу!
Кстати предлагаю автору сместить акцент в сторону метапрограммирования, мне кажется будет интересней. На одном языке высокого уровня пишем программу которая генерирует программы на другом языке… И может ещё что то! Ну так в качестве фантазий.
(96) А чем 1С не устраивает? 🙂
Так вроде я его и имел ввиду… Просто компиляции тут нет (Простите за занудство).
(30) Да ладно мне 52 годика, а энтузиазм еще не растерялhttp://infostart.ru/public/393228/