<?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Су встроить можно? У адобы есть активикс свой.
(2) фоксит .. можно.:)
Блин.. нет ставить на сервак неохота 🙁
Ладно, попробую потестить на на локальной тачке..
Но если ужо быстрее адобе, то +
А в 7.7 ведь можно просмотреть пдф без активиксов, через картинку. В чем плюсы использования активикса автора?
(5) Как?
На таблицу помещаем рисунок, в свойстве Текст пишем
ПриВыводеКартинки(Таб.ТекущийОбъект,Файл) , где Файл — переменная хранящая путь к пдф, в модуле соответственно процедура:
Процедура ПриВыводеКартинки(Картинка,Файл)
Картинка.РежимРисования(1);
Попытка
Картинка.Загрузить(Файл);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Код не мой, рабочий.
(7) Гы.. Какая наивность…
+8 Сам то хоть раз пробовал ?
:))))))))))))))))))))))
Я наверное что-то упустил в 7.7…
(10) Нет. Штатно pdf не вывести.
супер!
предложение — сделать масштабирование (100%, по ширине, страница целиком)
(12) Автомасштаб автоматически работает при растягивании формы.
Добавил свойство «Масштаб» для ручной установки масштабирования.
(13) Мот добавишь метод LoadFromFile … ?
чтоб при открытии формы сразу открывался нужный pdf…
Ё… уже добавил …скоростной.
Спасибо
Классно!
Есть предложение — добавить функции редактирования файла pdf, или программно заполнять определенные поля в pdf
(9) Ага, не загружает. Плюс автору.
(17) Для редактирования берем активикс от адобе (про версии) и читаем мануал по его методам.
Клево, спасибо, плюсую
(19) а где взять то активикс от адобе (про версии)???
(21)http://www.adobe.com/ru/products/acrobat/
Просто спасибо!!!
(2)На фига «погремушка», если пишете , что она фиговая?
(24) Какая такая «погрумушка» и где она «фиговая»?
* погремушка
Ошибка лезит на WinXP SP3
для iPhon`а точнее для одного из его прибабахнутых приложений на ПК нужен framework 3.5 sp1 так вот эта штука жутко ругается на компоненту
Попытался поставить начала ругаться, у меня стоит 3 net. Но вопрос не в этом у меня задача простая надо сделать импорт из pdf файла обшарил все что можно это единственная компонента которая хоть как-то работает. Может кто подскажет команду чтобы через shell сразу конвертнуть в txt. Программ таких куча, но вот не задача все они крайне плохо переводят в текст. Если это делать руками в adobe reader то получается гораздо лучше. Есть ли возможность сделать это через эту компаненту но автоматизированно а не по нажатию кнопки сохранить как текст
не могу понять как повесить на форму. Вродь все поставилось все прописалось в реге но работать не хочет. 1С 7.7 релиз 27. Может кто кинет .ert с кодом подкльчения!!!!???????
не могу понять как повесить на форму. Вродь все поставилось все прописалось в реге но работать не хочет. 1С 7.7 релиз 27. Может кто кинет .ert с кодом подключения!!!!???????
не могу понять как повесить на форму. Вродь все поставилось все прописалось в реге но работать не хочет. 1С 7.7 релиз 27. Может кто кинет .ert с кодом !!!!??????? Очень надо, стоит работа.
Есть такие пожелания, думаю несложные для доработки, но полезные:
1. Добавить свойство в котором хранится полный путь к загруженному файлу.
2. Добавить метод СохранитьДокумент() для программного сохранения в нужном формате.
Windows 7 32 bit не подключается. Несколько раз пробывал регистрировать, не получилось. Что делаю не так?
вот такая ошибочка. что может означать
мПутьКФайлу — тип строка, путь к файлу
мПолеКартинки.ЗагрузитьДокумент(мПутьКФайлу);
Произошла исключительная ситуация (Dushelov.PDFViewer1C): Object reference not set to an instance of an object.
какбэ есть соображения на тему?
(38) DemonFM, Возможно нужно из под Админа. Могу ошибаться
(38) DemonFM, Возможно нужно из под Админа. Могу ошибаться
Пробывал не проходит. Даже вручную из консоли пытался зарегистрировать, два экрана ошибок….
На Win Server 2003 x64 зарегистрировалась, но вызывает ошибку как в сообщении (30). Net FrameWork 3.5 удалять не планируем.
есть решение проблемы?
Вообще теоритически вещь нужная теперь пробую как подключть к своей базе
(39) 1cmax? вы решили эту проблему?
Уже не помню.. )))
Win 7 x64: вываливает ошибки при переходе по закладкам документа.
Программного метода Найти() нет.
Не подошла.
P.s. за 5 лет ни одного коммита?
(46) Автора нет в живых уже давно. Коммитить некому
🙁
(46), (32)
Немного доработал. Добавил программный поиск. Добавил пример использования под 7.7
Поиск:
мПолеКартинки.Найти(СтрокаПоиска, Сначала, ТочноеСовпадение, ПоВсемуДокументу, Следующий, ОбратныйПоиск);
исходники на GitHub —https://github.com/DmitryDreytser/Dushelov.PDFViewer1C
(49) спсб!
Скачал Dushelov.Pdf1C.zip, запускаю reg.bat, появляется ошибка:
RegAsm : error RA0000 : Could not load file or assembly Dushelov.PDFViewer1C.dll or one of its dependencies. Operation is not supported…
Подскажите в чем может быть ошибка?
И вопрос к MadDAD. Как с Вами связаться, чтобы получить от Вас помощь… Пробовал написать Вам через этот форум но сообщение не отправляется!
(52)
Я тут не часто бываю.
Что-нибудь конкретное про зависимости пишет?
В комплекте идет библиотека «PDFLibNet.dll» она должна располагаться рядом с «Dushelov.PDFViewer1C.dll»
Т.е. нужно весь комплект полностью распаковать в один каталог.
А можно Ваш e-mail? Я бы хотел за денежку к Вам обратиться чтобы добить этот вопрос, для терминальных юзеров очень бы хотелось иметь просмотр pdf внутри 1с, без запуска внешних приложений…
Распаковывал всё содержимое папки, и в C:WINDOWSsystem32 клал… при любых вариантах возникает ошибка: RegAsm : error RA0000 : Could not load file or assembly … or one of its dependencies. Operation is not supported.
На других форумах прочитал, что это может быть связано с контролем имен на .NET3.5 и 4. Пробовал разными способами делать «disable strong name verification». Еще много чего попробывал, но ничего не помогает.
Вобщем нужна профессиональная помощь…
PDFLibNet.dll для работы требует MSVCR90.dll, MFC90.dll, MSVCM90.dll
нужно установить —Microsoft Visual C++ 2008 Redistributable Package (x86)
А так же нужно снимать «блокировку файлов скачанных из интернета», это тоже мешает их регистрировать.
Запускаю батник, появляется ошибка:
Installing ActiveX…
—————————————————
Microsoft .NET Framework Assembly Registration Utility 4.7.3062.0
для Microsoft .NET Framework 4.7.3062.0
© Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
RegAsm : error RA0000 : Не удалось найти входную сборку «Dushelov.PDFViewer1C.dl
l» или одну из ее зависимостей.
Microsoft ® CLR Native Image Generator — Version 4.7.3062.0
Copyright © Microsoft Corporation. All rights reserved.
WARNING: This syntax is deprecated or you mis-typed your command. Run «ngen /?»
to display a list of the currently supported parameters.
Error: The specified file or directory «Dushelov.PDFViewer1C.dll» is invalid.
—————————————————
Done.
WServer 2012 R2
Делал:
Устанавливал Microsoft Visual C++ 2008 Redistributable Package (x86)
microsoft visual c++ 2015
.NET3.5
Файлы все в одной папке на диске C:PDFViewer
(57) Правой кнопкой мыши по файлу -> Свойства -> Внизу нажать «Разблокировать»