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




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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 не будет опубликован. Обязательные поля помечены *