<?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. Если не работает на конкретной платформе, то можно покопаться в документообороте и найти другую версию компоненты. Вот только не факт, что заработает.
3. Не сталкивался, но подозреваю, что должны быть права на установку компоненты на клиентских компах, возможно также не на всех версиях винды это будет работать.
Кстати, о форматированном документе. Все — таки, каким-то образом, штатная вставка картинки из буфера ctrl+v,работает, без всяких компонент. Но я не могу, понять причины.
Т.е. на одной и той же платформе, одна и та-же серверная база, оба сеанса на тонком клиенте.
На локальном компьютере с win7 — вставка не работает ни в какую.
На сервере, в сеансе через rdp — все работает.
Думал может из-за браузера, на сервере internet explorer по умолчанию. Сделал на локальном тоже его, настройки браузеров сравнивал. Но вставка так и не заработала.
Если кто-то, вычислит что именно влияет на работу форматированного документа, почему на одних компьютерах штатная вставка работает, на других нет, поделитесь информацией.
П.С. С компонентой, как я описал в статье, пока работает везде, но лишние познания в тайне работы форматированного документа — не помешают )))
В «Управление ИТ-отделом» есть подобная компонента. И я реализовывал функцию вставки картинки в форматированный документ. Кстати, в 8.3 у меня PNG-картинки (скопированные из программы PicPick) — вставлялись и стандартно (через CTRL+V), но при этом они вставляются в «тело» документа как BASE64-строка, и такие картинки не отображаются встроенным же в 1С полем HTML-документа. Приходится перекодировать в обычные картинки.
Послушайте, у меня была задача вставки картинок, я тупо попробовал вставить из буфера обмена в поле форматированного документа, и картинка вставилась.
Также я пробовал тупо перетаскивать картинку мышкой в поле форматированного документа, и картинка вставилась.
Это на 8.3.10
(5) я в (3) сообщении об этом написал. Дело не в платформе, а в каких то настройках винды или каких-то программ. Но каких именно, я не смог найти. Показывал нашим админам, тоже потыркались — не поняли причины. на одном компе работает, на другом нет. Платформа одна и та же, база одна и та же, клиент одинаковый, тонкий.
Надо в 1с вставить картинку из буфера обмена ? Работать с изображением из буфера обмена в 1с версий 8.1 , 8.2 , 8.3 из Windows XP- windows10?
Пока возможно скачать разработку 2010 годаhttps://infostart.ru/public/19932/ без списания стартмони в 2018, 2019, 2012 году бесплатно. В макете обработки есть dll-ка clipboard.dll 511кб ( 523264б ), версия 1.0.0.5
Возникает ошибка 80004005 при регистрации ( c:Program Files1cv82>regsvr32 clipboard.dll ) в командной строке?
Попросту, надо запустить cmd «Командная строка (Администратор)» и зарегистрировать библиотеку
Очень простой код
Показать
Тип не определен (Addin.Clipboard) ? Понадобиться запустить cmd «Командная строка (Администратор)» и зарегистрировать библиотеку
regsvr32 «c:Program Files1cv82clipboard.dll»
В итоге, в рунете появятся бОльше качественных и полезных фото))
В целом, для тех кто не в пожизненной теме — C# . Кто с уважением посматривает на кнопку «Заказать установку этой обработки». На дворе 2018год. Уже Python as an Excel scripting language Для 1с+Python from PIL import Image и subprocess.Popen в помощь! 🙂
Спасибо большое!
Почему при вызове компоненты вываливается ошибка Тип неопределен (AddIn.ImageFromClipBoard.AddInNativeExtension)?
Дело точно в платформе на 8.3.13 — все работает прекрасно
а на 8.3.14 и 8.3.15 — не работает — как исправить может кто знает ?