<?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) Посмотриhttp://www.infostart.ru/public/19232/
Хорошо.
Но есть замечания:
1. иногда возле бабочки могут появиться скролл-блоки. Возможно, после выделения мышкой.
2. Пользователей нужно как-то предупредить, что идет слайд-шоу.
3. Слайд-шоу не всегда удобно 🙁
По опыту знаю, что наши женщины любят повторно прочитывать и показывать соседям особо понравившиеся места.
Добавь, плиз, кнопочки Вперед, Назад, Пауза
Ура !
(3) Кнопочки добавил.
Я тоже заметил. Только мне кажется это не скролл-блоки. Это просвечивает предыдущая картинка при перерисовке. На экран изображение выволится не равномерно… 🙁
Для 8 платформы мне больше всего понравилась:http://infostart.ru/public/63428/ — Поздравление с Новым 2010 годом.
http://www.infostart.ru/public/66677/ есть почти копия этой обработки. Поэтому я её удалил.
Её легко переделать под любой праздник.
Моя
На работе женщины были очень довольны и в новый год и сегодня.
(5) Нет, это именно скролл-блоки — горизонтальный и вертикальный.
Последняя версия этой удачная. Жаль что вчера так не работало. Я бы эту своим поставил и не парился.
(7) Цветы бывают разные. Иногда ворованные. В этом есть особый вкус 🙂
(7) Хм… Странно… Попробовал на разных мониторах с различными разрешениями. Везде одинаково. Скролингов нет.
В 1.2.2.1 есть закомментированные строки. Если с них снять комментарии, то при смене слайдов накрывающие фоновый рисунок элементы будут на время скрываться. Может быть это решит проблему?
Для 11 года есть заготовки? 🙂
(11) 2011 год — это год кота и кролика. Эта сборка для 2011 года.
Вот молодец — позитив на лицо. С Новым Годом !
(15) Как скажещь, дорогой.
Хотя в этой публикации тоже реальные обновления. Теперь слайды формируются на 20% быстрее, а при повторном просмотре на 70% быстрее.
alexk-is, как проггера, я очень даже уважаю. Но прямо руки чешутся поднять вопрос о отнесении слов «Перенумератор» и «Поздравление» с разряду нецензурных и отсекать обработки с такими словами прямо на стадии опубликования. Достало!!!!
(18) Если я соглашусь с таким предложением, то могут расценить как борьбу с потенциальными конкурентами 🙂
Правда свой «перенумератор» я ещё не опубликовал, а этой публикации уже скоро год будет.
Почему макеты распаковываются в «C:slideshow» ? И обработка реально виснуть начинает через некоторое время…
(20) «C:slideshow» каталог для ImageMagic. У некоторых программных продуктов всё ещё есть проблемы с национальными символами в именах файлов и каталогов.
Макеты распаковываются в каталоги:
мКаталогКонвертатора = КаталогВременныхФайлов() + «SlideShowImageMagick»;
мКаталогСлайдов = КаталогВременныхФайлов() + «SlideShowimg»;
Начинает виснуть на каком слайде?
(17) Еще раз: Маньяк, деньги и их заработок — это твои проблемы, а обновления на сайте — личное дело каждого автора.
Не нужно учить других пользователей, для этого есть другие ответственные люди, ты в их число давно не входишь.
Делаю предупреждение как МОДЕРАТОР.
(21) У обычных пользователей терминального сервера «обычно» нет доступа к диску «С» ))
У меня на 14-м слайде фон под кнопками переключения становится черным и картинки далее не переключаются …
(23) Код открыт. Путь можно написать любой. Единственное функциональное ограничение — отсутствие кириллицы.
По поводу зависания даже не знаю что подумать. Все действия выполняются для всех слайдов одинаковые. Если для 13 слайдов выполнились, то и для 14 тоже должны выполняться, и для остальных слайдов тоже.
Многие спрашивают.
С удовольствием отвечаю.
Чтобы использовать свои картинки для подложки необходимо заменить Макет2. Для этого необходимо создать архив ZIP c картинками JPG и в конфигураторе 1С:Предприятия загрузить этот архив в Макет2.
(28) Спасибо. Получилось.
ММММ! какая прелесть, а то наши бедные бухгалтера кроме работы ничего не видят, а тут такой приятный сюрприз! спасибо огромное за идею, и за реализацию!
Огромное спасибо. Порадую своих девочек в праздник.
Интересно, не за горами этот священный праздник, будет чем порадовать любимых сотрудниц. Спасибо.
🙂 подготовка к 8 марта идет круглый год
Наконец то наши любимые дамы будут работать в 1С с улыбкой на лице! Спасибо большое!
Спасибо огромное! а то поздравления в Outlooke как то приелись))
(1), (3), (5), (30) Обратите внимание еще на одну прошлогоднюю поздравлялку.
http://infostart.ru/public/82288/
в ней реализованы кнопочки «вперёд-назад», генератор случайных чисел, в статье описана интеграция в систему с запуском женщинам (пол физлица).
что-то похожее я уже видел тут. Но бухам наверное понравиться
Огромное спасибо. Собрался сам писать, а тут такое! Порадую свой женский коллектив.
Спасибо за сей труд!В работе пригодится! 😉
Бухи порадуются! Спасибо!)))
что-то похожее уже было. Но жен. понравиться однозначно
Спасибо! Качаю. Как раз, то, что надо!
Спасибо!!! Пусть менеджеры порадуются)))
Красиво ))
Очень кстати
Спасибо за обработку и за проделанную работу. Таким оригинальным способом поздравим наших женщин с их «профессиональным» праздником.
Заметили что память, занимаемая 1с-кой растет с каждой новой картинкой на 3-5 Мб. Получается после показа картинки 1С не освобождает память, а все равно держит её в памяти. Даже когда круг пройден, и картинки начинают показываться с самого начала, то память всё равно растет т.е. изображения заново помещаются в память.
Немного решает вопрос изменение расширения итогового файла с bmp на jpg.
После показа такого шоу с интервалом 15 секунд, в течение 4 часов и количеством пользователей около 100 терминальный сервер начинает тормозить.
Это надо учитывать, особенно на слабых серверах 🙂
P.S. Автору большое спасибо, сразу видно: грамотная работа!
Спасибо! Поздравлю бухгалтерию)
Отличная обработка — поздравление.Сделал у себя автоматический запуск
1) Вставил обработку в конфигурацию
2) Прописал в модуле приложения в модуле обычного приложения в конце процедуры ПриНачалеРаботыСистемы()
И правда память съедает очень сильно…
Кто знает в чем дело ?
(55) Murom, макеты, формы, временные файлы?
Жрёт память именно при открытии формы?
Спб, за поздравление.
только есть замечание, исправь
РабочийКаталог = Лев(мКаталогКонвертатора, 3) + «SlideShow»;
может
РабочийКаталог = мКаталогКонвертатора + «SlideShow»;
Получается пишет на диск С:SlideShow, а только не всегда пользователи могут туда писать (работа в терминале), и женщины не увидят поздравлений, программисты снова облажались. У нас так и получилось :).
Поддерживаю (57)
Тоже в спешке тщательно не проверил и на терминале(простой пользователь) получил ошибку при создании папки в корне диска.
Поправил, но эффект уже не тот =(
(53)(55)(56) Этот эффект наблюдается только в 8.2, в 8.1 всё нормально. Возможно это «особенность» платформы 1С:Предприятия 8.2. Этого не происходит, если закомментировать строку
Панель.Картинка = Картинка;
Пока не придумал способа обхода…
Всех девушек участников данного ресурса с прошедшим праздником.
(59)
Да я тоже это заметил про
Панель.Картинка = Картинка;
Пытался перед обновлением картинки присваивать пустую картинку — не помогает. Видно на уровне приложения не происходит освобождение памяти.
1 раз в году обработка особенно актуальна) Спасибо!
Слёзы, сопли, куча радости, от казалось бы такой мелочи, и как то несправедливо не вам они, но пересылаю как могу….
Превосходная идея с imagemagick и наложением текста на картинку!
Но.
Imagemagick не понимает руских букв. Если профили пользователей названы по-русски, ничего работать не будет.
И, как сказали выше — обработка пытается содать в корне диска С папку Slideshow, из-за чего у пользователей также ничего работать не будет (если только у них нет прав администратора).
Так что утро у наших женщин было омрачено сообщениями одинэски «Недостаточно прав» и т.д.
Да, и еще — у пользователей необходима роль «Право работы с внешними обработками»
Обойти проблему с русскими символами можно, получив короткое имя папки. Как-то так:
И обязательно не забыть проверить работу обработки под пользователем с ограниченными правами.
А память не до бесконечности растет, после показа всех картинок стабилизируется на одном уровне…
Много лет назад, делал подобное для 1с7, можно было получать текстовые сообщения, показывались статичные картинки, а так же флешки, прикольно было наблюдать, как сотрудники бегали к друг-другу смотреть у кого что)))
Надо будет выложить авось пригодится кому
Добрый вечер,
Очень заинтересовал Ваш движок для слайд-шоу.
Но я не часто брожу по форумам и поэтому еще не заработал денег.
Я сейчас делаю слайд-шоу, используя макет Active Document и презентацию PowerPoint.
Хочу сделать подобный движок, чтобы все параметры для PowerPoint задавать в 1С, вплоть до формирования из 1С в PowerPoint самой презентации. Т.е., не притрагиваясь «руками» к PowerPoint.
Если всё-же у Вас будет возможность и желание скинуть на мыло «anatol.goncearenco@mail.ru» Ваш движок, буду очень признателен.
Анатолий
Спасибо, красота, порадую женщин.
Можно ли как то сделать, чтоб один раз проигралось и закрылось?
т.е., при запуске программы запустилась обработка, раз прошлось по всем картинкам с поздравлениями и завершилось, чтоб сервер с терминалами не загружать работающей по кругу обработкой?
Спасибо, все хорошо.