<?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='\
круто,
ээ че то маловато даже для начала
(2) Согласен! по тихонько будем дальже копать!
Уважаемый! У вас русский язык в школе проходили? 🙂
(+4) Сорри.. только сейчас доходит, что Вы, скорее всего, иностранец.
Угу, и точно не англоговорящий.
(4) не все изучают русский язык в школе! что-то самостоятельно изучает!
(7)что-то= некоторые
что-то = кто-то 🙂
succeful = successful 😉
(9) ок исправлю!
(10) исправил!
Если есть предложение, буду рад их услышать!
Какие другие этапы планируются?
(12) Планируется разбирать распакованный файл! декодировать base64 формат, показывать данные в более в приятном виде!
(13) Тогда с нетерпением ждем! 🙂
(0) теперь все будут DT распаковщики писать?http://www.infostart.ru/projects/2217/ — этого недостаточно? Или этим просто свое «Я» удовлетворено? Ну мол «Я тоже смог» распаковать DT. Честно говоря такого рода утилиты начинают быть похожими на «Консоль запросов», «ОСВ» и т.д., которыми завален портал.
http://www.infostart.ru/projects/2217/ . Судя по комментам еще у автора алгоритм клянчил.
Ей богу это перебор. Ну научился ты DT распаковывать глядя
как это делает
Ты сначала доделай утилиту, а только потом выкладывай. Добавь возможности которых нет у уже имеющихся утилит. А сейчас это просто EXEшник который распаковывает DT в txt, который требует дальнейшей обработки. т.е. толку никакого…
(15) >>Судя по комментам еще у автора алгоритм клянчил.
ага было дело. расспрашивал 🙂
Тоже не понимаю что толку все с начала начинать
(15),(16) По прозьбе(http://www.infostart.ru/projects/2217/index.php?p=5&id=2217%2F#comm) Sol(http://www.infostart.ru/profile/3125/) Добавил то что у меня «Работает»!
Круто: «Возможен распаковка *.dt файлы без программы…»
— Нужно программиста звать, конфигурацию править…
— Э-э-э… Пачему праграммист звать канфигурация править, когда возможен распаковка dt файлы без программа!
в продолжение к (18)
Гром гремит, земля трясЁтся
эт DT распакуЁтся 🙂
(0)>Я не англоговорящий и не рускоговорящий!
Если не секрет: а на каком именно «говорящий»? 😉
Накинулись все на человека 🙂
А может быть просто начать работу над своим проектом?.. К примеру, я знаю кучу возможностей, которых нет в 1С:Предприятии, но знаю, как их реализовать. Я один. А если собрать коллектив из нескольких программеров?..
(22) Ну а поподробнее? 😉
(23) о чём подробнее? 🙂
(24) > я знаю кучу возможностей, которых нет в 1С:Предприятии, но знаю, как их реализовать
(25) ну щас! Взял и рассказал тебе и всем ;)))) Неужели никого не раздражало в 1С-ке то, что там какой-то мелочи, которая так и простися, НЕТ. Не реализована. И хрен когда эти возможности реализуют. Например, СКД пришёл на смену построителю отчета, но лучше стало лишь местами (обыкновенно — задними). Я и сейчас часто пишу на построителе. Потому, что СКД не поддерживает сложные расчеты в итоговых полях. Значение одного поля недоступно в расчете другого. Ну и можно писать и писать…
(26) у всех есть что-то нового предложить есть, что 1С еще не имеет! но для начало надо правильно строить скелет (архитектуру) а потом добавить все возможности!
Может выложим все на бумажку и проголосуем?
Народ! Действительно непонятно, это что, какая-то профессиональная ревность?
Уважаемые (мной во всяком случае) люди подняли хай, из-за того что проект пока мал и из-за того что есть другие параллельные проекты?
Или из-за того, что кто-то влез на их территорию и к тому же выкладывает исходники? Что за мелочная ревность? Никто не умаляет Ваших заслуг — они велики, откуда такие эмоции?
Во всяком случае это не очередной Ренумератор, написанный в n-сятый раз, а инфа по теме внутренностей Платформы. Не так уж много инструментов в этой области, а открытых — и пальцев одной руки не надо, чтобы пересчитать.
Человек, как уже упоминалось выше, спросил — ему отказали. ОН что-то накопал — САМ. И поделился, по первой просьбе.
Это вызывает уважение, вне зависимости от знания человеком русского (английского или любого другого), а также того, много он там накопал или ещё нет.
а где в исходниках 1Cv8Api.h и пр.
(29)В 1Cv8Api.h разрабатываю работа с 1С… но еще сырой и не имеет смысл ставить! если хочешь могу ставить! ничего интересного пока еще нет!
(26) (27) О каких скелетах и возможностях платформы идёт речь?.. Я никогда не лез в файл формата DT. И никогда не полезу. С таким же успехом и в файл RAR можно лезть. А зачем? Это пакет данных. Нет в нём никаких возможностей платформы. Я даже не утруждал себя скачиванием приведенных здесь материалов. Я нахожу это глупым занятием. Ни о какой ревности и речи быть не может.
(30) ставь, пригодится.
(31) > Я даже не утруждал себя скачиванием приведенных здесь материалов. Я нахожу это глупым занятием.
А я нахожу «глупым занятием» заходить в ветки, которые мне не интересны и высказывать мнение, что «мне это не интересно», но учить никого не буду.
И минусы ставить «в отместку» тоже 😉
(33) я не говорил, что ветка мне неинтересна. Так что — высказывание не ко мне. И минусы не в отместку ставлю — за содержание, за мысль.
1. Возможен распаковка *.dt файлы без программы 1С:Предприятие 8.0, 8.1.
Возможна распаковка *.dt файлов …
2.
3. Выложыл первый этап программы для открытия *.dt файлы.
Выложен первый этап, программа для открытия *.dt файлов.
3. Исходникик могут быть скомпилированны под Windows и Linux.
Исходные коды могут быть скомпилированы под Windows и Linux.
4. Как IDE и библиотеки использовал Ultimate++ что позволяет писать программы с единном кодам для Windows, Linux и MacOS. Делает программирование с++ в удовольствие а не в Ад как делает остальные IDE. Последний build u++ можно скачать здесь.
Как IDE и библиотеки использовал Ultimate++, что позволяет писать программы с единным кодом для Windows, Linux и MacOS, делает программирование с++ в удовольствие, а не в муку, как делают остальные IDE. Последний build u++ можно скачать здесь.
5. Прозьба ПРИСОЕДЕНИТЬСЯ и поппытаться вместе копать а не по одиночестве! таким образом мы будем в разы быстрее прийти к цели.
Просьба ПРИСОЕДИНИТЬСЯ и попытаться вместе копать, а не по одиночке! Таким образом мы сможем в разы быстрее прийти к цели.
6. Моя цель: по больше узнать из нутри 1С (после годы программирования в 1С) и попытаться портировать 1С кофигурации в свободный проект что будем разробатывать вместе.
Моя цель — побольше узнать изнутри 1С (после лет программирования в 1С), попытаться портировать 1С кофигурации в свободный проект, что будем разрабатывать вместе.
(Это десяток человеколет — вы в своём уме?)
7. Многие спрашивает. ЗАЧЕМ? Отвечу: когда дело косаетья допольнительные возможности каторые 1С не имеет и финансы .. тогда есть смысл.
Многие спрашивает. ЗАЧЕМ? Отвечу: когда дело касается дополнительных возможностей, которых 1С не имеет, и финансов… тогда есть смысл.
8. 30.12.2008 Добавил Linux (Ubuntu 8.10) бинарникик!
30.12.2008 Добавил Linux (Ubuntu 8.10) бинарники!
9. Я не англоговорящий и не рускоговорящий! если находите ошибки просто скажите и я исправлю!
Я не англоговорящий и не русскоговорящий! Если находите ошибки — просто скажите и я исправлю!
10. (15),(16) По прозьбе Sol Добавил то что у меня «Работает»!
(15),(16) По просьбе Sol добавил то, что у меня «Работает»!
(35) Спасибо!
Не понял одно о означает слово «человеколет». Если это человеко-лет, то думаю что это не займет столько времени!
(36)(35) Спасибо!
Не понял одно слово «человеколет». Если это человеко-лет, думаю что это не займет столько времени!
(37) Вы проекты сдавали готовые? Внедрений и других? Если решаетесь — будьте трезвы, не как студент, не расписывающий проект до конца по срокам.
Цитата о Bitrix (это только web-сайт, совместимый с 1С):
Мы на сегодняшний момент потратили на продукт, грубо говоря, 200 человеко-лет, наверное даже больше. Сколько реально ресурсов можно потратить на разработку системы? Заказчик может оплатить от 1-го до 12-ти месяцев работы команды, составом от 1-го до 3-х человек.
По моим оценкам 1С 8 как завершённая платформа имеет сложность порядка 500 человеко-лет.
Для отмерки возьмём ReactOS (клон windows):
http://www.reactos.org/ru/about_roadmap.html#10
Windows 2000 — 5000 человеко-лет.
Они брали исходники других проектов (wine и др.) и не реализуют большое количество компонентов (Internet Explorer, mfc и другие), так что сокращаем до 500-1000.
«ReactOS does not support MFC, we could potentially do so in the future if someone were to implement it. Of course, one would have to be thoroughly familiar with MFC to do so. »
Итак. 400-800 человеколет и уже 6 лет интенсивной разработки коллективом (выход в «издание» будет через ещё 4-5 лет).
Следует быть трезвым. Ваш проект очень похож на ReactOS по трудозатратам. И это — 10+ лет труда коллектива, а не одного человека!
Благодарю, да, действительно «человеко-лет».
Где взять файлик 1Cv8Api.h, а то в исходниках его нет…
(40) Согласен 100%! потому и вызываю на Помощь!
(41) файл у меня… но интересного там ничего нет!
Потребовалось проверить, есть ли в файле 1Cv8.dt какие-либо данные, и наткнулся на эту «программу».
Спасибо автору этой программы за открытый исходный код. Он помог мне ответить на простой вопрос — как этот файл запакован. Оказалось, что содержимое файла сжато используя алгоритм deflate. Шапка файла 9 байт (1CIBDmpF1). После этого набросал небольшой скрипт для распаковки файла (нет желания скачивать Ultimate++ и компилировать программу, если быстрее написать скрипт) и решил поставленную мне задачу.
По существу. Данный проект (изучение структуры хранения данных в 1С) действительно сложен в реализации. Потребуется оптимизировать работу с памятью как при распаковке файла (самое простое, но в исходных кодах не реализовано), так и во время представления конечного распакованного файла в памяти программы (задача не из тривиальных). После представления данных в памяти их можно будет экспортировать в удобном для дальнейшего анализа виде. Некоторые данные в распакованной структуре сначала сжаты deflate, а затем base64 (например, макеты).
Поэтому без конечной задачи, решение которой действительно востребовано и не может быть решено средствами 1С:Предприятия, браться за такую задачу не рекомендую. Хотя, конечно, программировать ради программирования никто не запрещает.
«Попытаться портировать 1С кофигурации в свободный проект, что будем разрабатывать вместе.» — утопия, если речь идет о написании своей программы аля «1С:Предприятие».
С огромным удовольствием присоединюсь к отрытому проекту. (открытому*)
❗ ошибка
на win2003 64bit из dt от демобазы типовой БП 1.6
cf создался 2,7 ГБ
Под Win7x64 ошибка
Отличная вещь. как обстоит дело с новыми версиями?
Супер!
долго искал.
Здравствуйте, возможно ли восстановление информации в битом dt файле?
В результате заражения вирусом в dt файле оказались уничтожены 256 кб. в самом начале и в самом конце. Сам размер dt файла около 5 Гиг.
Такой большой размер базы обусловлен в основном картинками, которые особой важности не имеют.
Можете ли вы помочь восстановить информацию? Какова будет прибл. стоимость восстановления?
Если не сможете восстановить — какую информацию реально из этого dt файла вытащить?
P.S. Есть рабочая копия базы 3-недельной давности. За эти 3 недели было добавлено ок. 50 новых документов.
Спасибо,