<?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='\
Упреждающие ответы:
— ну конечно это не Конфигуратор;
— да, epf/1cd скорее всего будут, но пока что только cf;
— зачем нужно? гм… особой практической пользы нет — посмотреть структуру, распечатать, сохранить в файл быстрее чем из 1С;
— редактирование модулей есть, но пока недостаточно протестировано и по этой причине отключено;
— ну да, маненько глючный, но ведь версия только 1.0.0.1 да и денег с вас никто не просит.
Сделаешь com-сервер?
Открывается пустое дерево конфигурации: только предопределенная структура, а самих объектов нет.
В чем может быть дело?
(Zigbee) А слева внизу перестал мигать значек выполняющейся обработки? Велика ли конфа? Можешь ее выложить на какой-нить файлообменник (up.spbland.ru slil.ru … )?
Re MMF: Все, я увидел! Просто у меня значек не мигает, а надпись «определение версии» я не заметил.
Два небольших вопроса :
1. Реквизиты и табличные части объектов будут видны (в будущих планах) ?
2. Можно ли для «отсутствующих» модулей вывести байт-код или, хотя бы, image в 16-тиричном виде ? 😎
(Ghost mail) 1) да 2) да
2 MMF У меня тут завалялся плаг М. Ускова cfviewer.wlx. Тебе не попадался?
Но у того как-то скорость открытия не отличается практически от открытия в Конфигураторе
Проверил работу плагина на Демо-конфигурации 1С 8.2. Работает !!! 🙂
Только не видит модули менеджера объекта (это новый вид модулей в 8.2) 🙁
Abadonna
Но при этом сваливается он через раз. А, главное, разработка прекращена, насколько я понимаю 🙂
(10) Ну вот, значит этот надо качнуть, хоть мне пока без надобности 😉 Щас проверим
(8) Это он и есть =)
Подтверждаю: стопудово лучше cfviewer.wlx. +1
Неплохо бы сделать вывод «определение версии» позаментнее, на иконку в углу внимания первоначально не обращаешь и создается впечатление, что открылась пустая конфа
(12) Что MMF Михаил — вижу, неужто еще и Усков?
Жду 1cd и возможность использовать из 1с.
(14) 🙂 угу, cfviewer я писал
v1.0.0.2 багофиксы, добавлен просмотр и сохранение общих картинок.
К сожалению, часть картинок в каком-то странном формате, хотя 1С говорит, что это bmp, но обманывает 🙁
v1.0.0.3 серьезный багофикс, решил, что стоит сразу же обновить. Из-за него часть модулей не показывались на двойной клик
(16) На заре Инфостарта, когда я только положил свой плагин, Кушнир посоветовал мне познакомиться с неким Кучером А.А. с инфостарта :))))
Ситуевина почти повторилась
(17) В 7-ке картинки тоже в bmp, НО:
1. их надо распаковывать из потока
2. даже в распакованной нормальный bmp начинается в 8-го байта, т.е. первые 0-7 надо просто отбросить
возможно что-то в этом роде и тут
v1.0.0.4 Добавлена информация о реквизитах шапки и табличных частей документов и справочников, значениях перечислений, просмотр справки по справочникам и документам, примитивный инспектор свойств
Даешь скриншотов!
1. Странно, в новой версии перестал открываться .CF файл версии 8.2 (который в первой версии плагина открывался) 🙁
2. Можно ли для «известных» модулей видеть исходный байт-код (сейчас показывается декомпилированный). Например по какой-нибудь кнопке ??? Пожалуйста ! 🙂
(Ghost mail) 1) можешь выложить куда-нить этот cf? у меня 8.2 нет. 2) Будет и декомпиляция образов модулей, со временем.
MMFВыложил .CF файл от демонстрационной конфигурации для 1С 8.2 _http://rapidshare.com/files/76051734/1C82Demo_1_0_1_1.rar_
Если не сможешь скачать, вдруг, в личке отправил тебе мой е-мейл адрес для контакта.
2) Как раз хотелось бы иметь оригинальный байт-код (хотя бы как опцию), потому как декомпиляция может не всегда работать 🙁
v1.0.0.5 Модули объектов в дереве получили различные иконки (обычный текст, образ, образ и запароленный текст), добавлен дизассемблер байт-кода. Выполняется расшифровка мнемоники команд и декодирование операндов
ты бы версию куда нить вынес повыше, а то комменты лопатить для этого не очень удобно
Прикольно, очень даже прикольно!
Еще бы сделать контекстную подсказку тут, и супер было бы ))
Просто супер! Однозначно + Еще бы плагинчик для просмотра *.epf 😉
Есть небольшая ошибка (плагин v.1.0.0.5, cf от 1С 8.1.10) :
Если у какого-либо справочника или документа есть макет(ы), то ветки «Реквизиты» и «Табличные части» справочника (документа) показываются как подчиненные последнему макету объекта, а не самому объекту 🙁
v1.0.0.6 Добавлена поддержка epf для версий 8.0 — 8.1. Переработан инспектор свойств объектов. Багофиксы
Планируется следующий Roadmap:
1) поддержка 1CD 2) просмотр форм 3) просмотр макетов.
Задачи примерно равные по трудоемкости. Могу изменить очередность, если будут пожелания
Вопрос:
-Как посмотреть модуль приложения, внешнего содинения, сеанса?
Пожелание:
-При открытии файлов в плагине не блокировать их. А то:
—————————
Кофигуратор
—————————
Ошибка совместного доступа у файлу ‘blah-blah.epf’
—————————
ОК
—————————
Замечания:
-Если при просмотре epf нажать кнопку Save:
—————————
Message
—————————
Plugin Error:
Access violation at address 0138D73B in module ‘ViewV8tc.wlx’. Read of address 00000000
—————————
ОК
—————————
-После комбинации символов (* весь последующий текст отображается как комментарий. Например:
Показать полностью
(32) >-При открытии файлов в плагине не блокировать их
А вот это очень сомнительно, что можно реализовать.
Да и на фиг одновременно в плагине и Конфигураторе открыть?
Поддерживаю предыдущего оратора в отношении блокировки 🙂
(32) «-Как посмотреть модуль приложения, внешнего содинения, сеанса?» — забыл про них :-(, добавлю. Баги — исправлю, благодарю.
Что-то у меня не получилось открыть «известный» модуль. Может я что-то не понял?
А так несомненный +
(35) ээээ… (чешу репу), кто такой «известный» модуль?
v 1.0.0.7
Добавлены модули задачи — приложения, соединения, сеанса пользователя, справка. Исправлены ошибки при сохранении на диск модулей.
Что-то не хочет он epf у меня открывать….
Заработало. установил плагин в другую папку
Скриншотов бы еще =)
Извиняюсь, разобрался. Но он почему-то не хочет показывать байт-код модуля который запаролен.
Или я что-то не так делаю?
v.1.0.0.8 Добавлен просмотр набора прав выбранной роли
MMF, при просмотре закрытого модуля часто выскакивает подобная ошибка:
Неверный символ в потоке: [,] [«S»,»,NULL КАК Измерение_»]
Ошибка происходит, когда строковая константа начинается с запятой.
(43) учту, спасибо
v.1.0.0.9 Отсортировано дерево объектов в просмотре прав. В дерево метаданных включены последовательности, нумераторы, веб-сервисы, регламентные задачи, подписчики событий. Добавлен просмотр rls запросов.
v.1.0.0.9 Просмотр свойств конфигурации: описание полное/краткое, поставщик, версия
(46+) пардон, 1.0.0.9 читать как 1.0.0.10
(MMF) Михаил, а нет ли у тебя утилитку ком.строки для разбора внешних файлов (epf, erf) на текстовые?
Нужно для организации текстового репозитария внешних обработок, которые не включаются в конфигурацию.
Поможешь?
(48) такой утилиты у меня нет. А как ты предполагаешь в текстовом виде хранить включенные в отчет макеты с двоичными данными или даже просто моксели?
(49) Да, с макетами проблема, но думаю, что это не столь важно.
Главное, все равно логика, ну и формы также было бы удобно хранить.
А макеты и двоичные виды можно хранить как бинарника.
В семерке так и делаем 🙂
(50) 1) если разбираем, то нужно еще и собрать как-то 2) в чем тайный смысл разбирания внешних отчетов? Если в отношении cf это понятно — организовать одновременную работу разработчиков с минимальным траффиком в CVS, то обработки и так невелики по размеру и к тому же одновременно их править вообще никому в голову не придет. 3) хранить их централизовано — это да, нужно, но в собранном и готовом к использованию виде
(51) Нужна история изменений, возможность сравнения со старыми версиями и т.д. и т.п., т.е. многие фичи репозитариев 🙂
Также возникает ошибка при просмотре закрытого модуля
—Неверный символ в потоке: [.] [«N»,29.4]
при использовании числовых значений, типа
СреднееКоличество = 29.4
v.1.0.0.11 Исправлены ошибки парсера. Благодарю den_valley, awa.
При чтении закрытого модуля начинает что то выводить, а потом виснет наглухо.
Может можно какой нить прогрессбар присобачить? а то значок мигает минут 10, а ничего не происходит…
ЗЫ Так же очень жду возможность работы из 1Ски…
(52) дак это в SQL сделать проше пареной репы может в 5 версии Ei сделаю
При чтении закрытого модуля начинает выводить, а потом дает ошибку: List index out of bounds (3) — и все пропадает. Если можно исправить — очень нужен байтовый код…
(57) выложи куда-нить, попробуй посмотреть
Вся конфа — очень здоровая (25 метров) а отдельный кусок из нее вырезать — не знаю как.
может в парсере поправить — после ошибки пусть оставит то, что уже вывел?
а исходники где? может развивать проект и появиться новые предложение!!!
(61) дай пару ссылочек на выложенные тобой исходники чего-либо.
Добрый день!
Вырезал я кусок, на котором у меня ошибка вылетает.
Дайте, пожалуйста e-mail, куда его можно вам бросить.
Заранее благодарен за помощь.
v.1.0.0.12 Просмотр состава плана обмена. Багофиксы в ПодписчикахСобытий, РегламентныхЗаданиях,ПланахВидовХарактеристик.
УПП долго открывает
1С-ом быстрее ;(
Установил v 1.0.0.12, а по кнопке i показывает v 1.0.0.11
Может покажешь исходники и будем вместе развивать проект?
ionlupascu@gmail.com
v.1.0.0.13 Уменьшение времени открытия конфигурации.
(66) исходники не планирую выкладывать
(65) попробуй с новой версией
Есть предложение импортировать конфигурацию в C++/Ultimate++ (http://ultimatepp.org) .
Предлагаю соединиться. Кого интересует (ionlupascu@gmail.com)?
(67) Может все таки не будем жмуриться?
Полезно…. при быстром взляде на только что скаченную обработку
Приятно, но .erf у меня не открывает…
(70) под erf понимается epf? Если да — выложи на какой-нить файлообменник неоткрывающуюся обработку
(71) в 8.1 раздели отчеты и обработки. Как раз отчеты и идут с расширением erf. Отличаются от обработок наличием макета Компоновки данных. Да и структура у них разная. Если просто переименовать отчет с расширением erf на epf и даже если отчет будет обычным — без Компоновки, при открытии такого файла в конфигураторе 1С — он откроется «пустым».
*(72) раздели — разделили
При выводе байт кода закрытого модуля выводит ошибку
List index out of bounds (0)
А можно приделать настройку, чтобы функции и процедуры не группировались (не свертывались)?
(75) а когда группируются, то хотелось бы, чтобы группировались и комментарии
Кстати внутренний парсер языка чувствителен к регистру букв, например «КОнецПроцедуры» помечает как не правильную конструкцию и группировка «Процедура КОнецПроцедуры» — в этом случае не работает.
А что в 13-м релизе с закрытыми модулями?
Качал в своё время только самый первый релиз и что было в других не знаю, но читаю комментарии ниже — вроде что-то должен показывать. Открываю — пусто, даже байт-кода нет.
А чего Far обижаем?
v.1.0.0.14 Введена конфигурационная настройка «Сворачивание кода»
MMF, сколько времени (денег) может потребоваться написать IFilter (для файлов 1С 8) для поиска через Windows Desktop Search?
(81) Да. Даешь API. Хотя бы за бумажки.
Хотелось бы скачать, дабы проверить. Не получается…
а будет в плагине добавлена возможность восстановить текст запароленых модулей по байт-коду?
(84) это же безнравственно и аморально, к тому же его сразу удалят с Инфостарта
(84) А нафига? ) Для декомпиляции кода утилиты есть, а плагин хороший действительно отсюда удалят в таком случае…
Не работает по F3 и По F4 . Может что не так настроено нет времени копаться
(87) Передвинь его в списке плагинов TC наверх, проверь работу, ну а затем подкорректируй позицию в списке плагинов под себя.
(71) Уважаемый MMF, будет ли осуществлена возможность просмотра *.erf файлов?
Если автор еще поддерживает разработку, то, может быть, обратит внимание на одну странность: при открытии файлов типовых конфигураций ЗУП 2.5.23.4 и УПП 1.2.29.1 при развороте ветки документа АнкетаЗастрахованногоЛица, его реквизиты и табличные части оказываются подчиненными макету ФормаАДВ_1, а не самому документу. Хотя, конечно же, это косметика.
А в целом разработка хорошая и полезная.
Классный плагин! Спасибо. 😎
кто знает чет декомпилировать CFG и CF файла 1C 8.1 и 8.2 а также 1CD файл??????????
Да да спасибо стало намного удобней и функциональней работать в любимой программе
Полезная вещица Спасибо
Спасибо, то что нужно..
А что, удобная вещица)
А если типовую бухгалтерию открывать не работает:( Релиз 2.0.27.8 Платформа 8.2.14.519 наверное из за платформы 🙁
Большое Спасибо!
Очень полезная обработка