Слайд шоу высокого качества на рабочий стол (3.2.0.1)




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?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='\

69 Comments

  1. alexk-is

    Добавил ещё вертикальное маштабирование. Для использования вертикального маштабирования необходим установленный Internet Explorer.

    Reply
  2. alexk-is

    Теперь не 30 или 60, а 100 слайдов высокого качества.

    Добавил удаление временных файлов и каталогов, которые создаются при показе слайд шоу.

    Reply
  3. SiAl

    Симпатично. Бухам понравилось. Плюсую.

    Reply
  4. rebuzx

    Классная задумка! +

    Reply
  5. CheBurator

    Ваще за такую разработку надо на! минусов наставить! Настоятельно рекомендую — на рабочий стол транслировать наиболее востребованные параграфы/положения ПБУ, НК, ГК, ПР — и чтобы !!! отключить нельзя было!!! а для начала работы — чтоб вводили ответы на вопросы из оттранслированного…

    .

    развлекатели, блин ;_)

    Reply
  6. Шёпот теней

    … категорически СОгласен с ЧЕ …

    … к тому же ТАКОМУ Мастеру как alexk-is не пристало заниматься таким юзабилити … хотя «отдыхать» всем хочется …

    … вот …

    Reply
  7. Арчибальд

    (5)(6) Че суров — видно, задолбали его юзвери. Однако ж сколько параграфов ни выведи на экран, читать их все равно не будут. А и прочтут — не поверят, и пользоваться будут информацией типа «одна баба из налоговой сказала».

    ТонЕе надо стричь, тонЕе ©

    Reply
  8. CheBurator

    (7) да не то слово! чем выше автоматизация — тем ленивее юзвери. да и фиг с ним — лишь бы освобождающееся время использовали с толком — неа…

    Reply
  9. alexk-is

    Мир это не только черное и белое, пользователи и программисты, работа и сон. Есть еще другие цвета, есть просто люди, и есть праздник (чай, обед, отдых).

    Взгляд на людей только как на пользователей слишком однобокий. Посмотрите на мир шире и возможно тогда вы меня поймете. Я вижу людей, и мне хотелось сделать людям что-нибудь приятное. Возможно, после этого они сделают что-то хорошее и для вас.

    Reply
  10. L_B

    Ну все правильно — нямочки на рабочем столе, кактус рядом с монитором, игры в майл.ру — это и есть счастливые юзвери — а работа… ну все же мы люди — зачем нужна такая работа, которая мешает быть счастливым 😉

    Reply
  11. alexk-is

    Работа должна приносить удовлетворение. Мне нравится моя работа. Мне нравится то, что я делаю.

    А вам нравится ваша работа?

    Reply
  12. Ish_2

    (11) Баловство.

    Алексей , ты же взрослый..

    Reply
  13. L_B
    Работа должна приносить удовлетворение. Мне нравится моя работа. Мне нравится то, что я делаю.

    Мне тоже нравится Ваша работа и Ваша разработка!

    Reply
  14. Akv@rel

    Очень мило!

    Reply
  15. Шёпот теней

    … нельзя ли получить «одну» обработку без слайдов (ужжж больно обЪёмно) … ? … вот …

    Reply
  16. alexk-is

    (15) Всего 10 Мб. Разве это объемно?

    Без слайдов будет тоже не менее 2 Мб из-за Image Magick.

    Reply
  17. Шёпот теней

    (16) … хм … и 1-2 Мб … это много для наших скоростей и выданных «обЪёмов» … вот …

    Reply
  18. alexk-is

    (17) Добавил «только движок» без слайдов. Я качаю из дома — там безлимитка.

    Reply
  19. alexk-is

    Новый более стабильный движок и новое слайд шоу «Снежинки».

    Reply
  20. RegrZ

    терминальным юзерам такое лучше не подключать 🙂

    Reply
  21. Abadonna

    (20) Да уж… 😀

    Reply
  22. alexk-is

    (12) Не скажи. Вот сейчас ваяю подсистему обработки сканов документов. Нужно на сложенных в каталоге отсканированных документах распознать штрихкод, а потом выполнить на основании полученных данных ряд манипуляций.

    Так вот, для повышения результативности и скорости распознавания штрихкода необходимо картинку предварительно обработать. За основу было взято именно это «Баловство» 🙂

    Средняя скорость распознавания 100 документов в минуту.

    Reply
  23. oleg1233

    Что-то «Снежинки» не скачиваются — вернее скачанная обработка — пустая… не замените, а то уж больно картинки понравились 🙂

    Reply
  24. alexk-is

    (23) Проверил. Всё скачивается и работает.

    Reply
  25. oleg1233

    (24) Странно, у меня все остальные нормально скачиваются, а снежинки — скачивается с размером в 0 байт, и соответственно не работает.

    Может выложите ее еще на какой нибудь файлообменник или на мой емайл пришлете мой ник майл ру? буду признателен за потраченное на меня время 🙂

    Reply
  26. alexdarkman

    Красиво.для поздравлений со всякими праздниками типа 8 марта искал для 8-ой платформы.Порадовало.

    Reply
  27. alexk-is

    (25) Сайт починили. Теперь должно скачиваться нормально. У меня теперь скачивается.

    Reply
  28. ARL

    Очень порадовала публикация, и позитивно, и примеры кодирования прекрасные. А перед новым годом и своих девушек — коллег порадуем 🙂

    Reply
  29. Makushimo

    Поставил свой каталог с картинками в настройках.

    что то не перекодируются картинки под размер рабочего стола -((

    Картинки должны быть одного размера (высота, ширина) ?

    Если экран 16:9, то и картинки должны быть с таким же соотношением сторон ?

    Reply
  30. alexk-is

    (31) > Картинки должны быть одного размера (высота, ширина) ?

    Нет.

    > Если экран 16:9, то и картинки должны быть с таким же соотношением сторон ?

    Любое.

    > что то не перекодируются картинки под размер рабочего стола

    Какая версия ОС? Какая версия IE?

    Reply
  31. Makushimo

    > Какая версия ОС? Какая версия IE?

    Windows7, IE 8.0.7600

    Reply
  32. alexk-is

    (33) IE подтормаживает. Добавил цикл с проверкой. Теперь должно работать.

    Reply
  33. anna_irk

    чем бы дитя не тешилось , только бы не работало…

    мне кажется это конечно интересно, но все таки лишнее

    Reply
  34. MrXaN

    Красивая и удобная вещица спасибо

    Reply
  35. alexk-is

    (35) Данные обработки демонстрируют один из вариантов работы с изображениями. При использовании полного пакета Image Magick форматы изображений могут быть любыми. Т.к. Image Magick это графический редактор, то возможности по обработке изображений почти безграничны. Сообветсвенно область применения тоже значительно расширяется. Показ картинок это только один из вариантов применения. Об ещё одном варианте применения я уже писал в (22)

    Reply
  36. fid77@mail.ru

    Классная штука, можно на праздники бухам ставить 🙂

    Reply
  37. MBG 2

    Здравствуйте!

    Установила себе обработку с кошками! Прекрасное качество! Великолепно поднимает настроение в перерыв! Спасибо!

    Reply
  38. Zoomby
    Эти обработки запускают слайд шоу на рабочем столе в любой конфигурации 1С:Предприятия 8.1 и 8.2 (толстый клиент)

    Прекрасная работа. Автору плюсик. 🙂

    Reply
  39. proger1c81

    новый вид придала обработка серым конфигурациям

    Reply
  40. n949eo

    Забавно. Спасибо

    Reply
  41. tadem

    Работать стало веселее! Теперь долгими ночами можно делать баланс!

    Reply
  42. Raminus

    Хорошая идея.

    Reply
  43. Foximus

    Тема. Спасибо 😉

    Reply
  44. yalo

    Не думала, что среди полезных вещей можно встертить и такие разработки. Очень мило ))

    Reply
  45. Den_Zenit

    Очень позитивно.

    Мои бухгалтера в восторге!!!

    Спасибо Вам от них большое, прибольшое!!!:)

    Reply
  46. xaker1C

    Спасибо большое

    Reply
  47. dtitov

    Забавно. С удовольствием плюсую!!!

    Reply
  48. Yury1001

    Клёва, +

    Reply
  49. Ibragimov

    Круто ++

    Reply
  50. matpukc

    (20) RegrZ, почему терминальным лучше не подключать?

    Reply
  51. svcoopers

    Сенкс!!!

    Reply
  52. _ink_

    Спасибо. Устрою праздник сотрудникам. Кстати, можно ли ставить определённым пользователям? Или всем подряд получится?

    Reply
  53. vaselin

    А разве эта программа не мешает работе с базой данных? Хорошая программа однако! Всем советую приобрести!

    Reply
  54. haous

    Все круто. Спасибо. Теперь среда 1С будет то что надо. А вот производительность не будет замедляться за счет этой фичи?

    Reply
  55. alexk-is

    (58) Преобразования идут параллельным потоком, не в 1С. Если поставить слайд шоу на паузу, то влять будет не больше статичной заставки на рабочем столе.

    Reply
  56. Вася_Пупкин

    Классно.Всем бухгалтерам понравилось (очень давно просили типа такой штуку!). Очень понравилась идея разработки. +

    Reply
  57. davydoff

    Не ну а мне интерестно, а обычная функция слайд-шоу в просмотре фотографий чем не устраивала. Много времени занимало, чтоб найти кнопку или ещё что нибудь?!?!?!?)))

    Reply
  58. davydoff

    Не ну а так класно выглядит. Не спорю. Да и ещё в управляемых формах… Круто)))

    Reply
  59. mapt

    Есть идея использовать слайд шоу в торговом зале на тонких клиентах, возникли следующие вопросы к автору:

    1. Слайд шоу автоматически запускается при простое?

    2. Можно ли настроить индивидуальные картинки для разных пользователей?

    3. При появлении активности со стороны пользователя, слайд шоу прекращается?

    Reply
  60. Angella

    Объясните, пожалуйста, бухгалтеру)))не программисту(( популярно и пошагово как это установить правильно. Через» сервис» «доп. отчеты и обработки» выдает ошибку…………….{Справочник.ВнешниеОбработки.Форма.ФормаЭлемента.Форма(189)}: Ошибка при вызове метода контекста (Создать): Ошибка подключения внешних метаданных: Ошибка загрузки документа.

    Внешняя обработка не может быть прочитана текущей версией программы. У меня 1С 8.2 бухгалтерия

    Reply
  61. alexk-is

    (73) Слайд шоу может использоваться в любой конфигурации 1С:Предприятия 8.1 и 8.2 (толстый клиент). Для запуска обработки под 8.2, обработку необходимо открыть в конфигураторе для конвертации.

    Reply
  62. alexk-is

    (72)

    1. Слайд шоу автоматически запускается при простое?

    Нет. Пользователь сам запускает Слайд шоу.

    2. Можно ли настроить индивидуальные картинки для разных пользователей?

    Пользователь может указать каталог из которого ему будут показаны картинки.

    3. При появлении активности со стороны пользователя, слайд шоу прекращается?

    Нет. Пользователь сам определяет период отображения картинок и может остановить смену картинок на любой из них или прекратить работу обработки (закрыть). Разумеется, что при выполнении запросов или других целостных операций смена картинок слайд шоу прекращается.

    Т.к. картинки формируются в параллельном процессе, то процесс формирования картинок почти не влияет на работу 1С:Предприятия.

    Reply
  63. Angella

    (74) спасибо))сейчас попробую :))

    Reply
  64. Angella

    (74) СПАСИБО____))))))

    Reply
  65. LND_gaz69

    Хороши картинки.

    Reply
  66. angele

    +1

    Reply
  67. a1ex4ndr

    (75)1. Слайд шоу автоматически запускается при простое?

    Нет. Пользователь сам запускает Слайд шоу.

    Может стоило бы автоматический запуск настроить? а то просто слайд шоу и без 1с легко запустить…

    Reply
  68. eugen91

    Отдел продаж будет рад))

    Reply
  69. Sanario

    Угу. Народ отвлекаться будет от работы

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *