<?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='\
(0) На такой маленький текст 10 ошибок 🙁
(1) 😀 Да, невнимательный и в торопях писал!Все исправил можно перечитать )))
Интересно. Попробую прикрутить к 7.7
(3)Дерзай, должно получиться! 🙂
Ещё бы транслирование on-line для других пользователей было. Вот было бы здорово! 🙂
(5)Покупай ip Камеру и можно транслировать и управлять ею 🙂
(5)http://rumlin.narod.ru/WME.htm — вот что-то подобное на машине с камерой (без участия 1с), на клиентских машинах просто проигрывать видео в 1с (через эту компоненту или через тот же miracle)
(6) я вот тоже себе домой хочу wifi ip камеру…
(8)Было бы не плохо )))
А на чем это? А код как посмотреть? Точнее, нет: как можно заинтересовать автора, чтобы посмотреть код? 🙂 Сигнал с камеры через winapi функции ловится?
(10)А зачем Это тебе? :)))
(11) Хочу использовать в своей разработке одной, но нужно доработать функционал.
(12)В инете полно примеров реализации сигнала с камеры через WinAPI!!!!
В 8.1 работает!!! Проверено!!!
Класс! В 7.7 прекрасно работает(с использованием 1С++). Спасибо. Прикольно получилось.
Теперь осталось придумать для чего его испоьзовать 😀
(15) 🙂
(15) фотография посетителей для СКУД системы, фотографии для пропусков, фотографии для справочника физ.лица
(18) или регистрации факта передачи товара например или фото покупателя в кассе или фото буха при схождении «благодатного» баланса.
P.S. надо религию придумать с тезисами типа «Нерасходящийся баланс» и «Милость налоговая по отношению к мученикам-бухгалтерам». И налоги потом не платить и на государство плевать.
Набросал обработку для сохранения в справочник «Физические лица»
У меня вылетает ошибка .. 8.2
Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)
…………………..
ПолноеИмяФайла = РаботаСФайлами.УдалитьЗапрещенныеСимволыИмени(ПолноеИмяФайла);
{Обработка.CamX.Форма.Форма.Форма(14,19)}: Переменная не определена (РаботаСФайлами)
ПолноеИмяФайла = <<?>>РаботаСФайлами.УдалитьЗапрещенныеСимволыИмени(ПолноеИмяФайла);
Что не так? Компонента зарегистрирована!
(20)В модуле (РаботаСФайлами) не находит функцию (УдалитьЗапрещенныеСимволыИмени), или просто нет модуля . можно просто убрать эту строку:
«ПолноеИмяФайла = РаботаСФайлами.УдалитьЗапрещенныеСимволыИмени(ПолноеИмяФайла);» и все будет работать. Вот держи, уже с убранной строкой!
(19) Похвально :), уже свои обработки выкладывают с применением моей компоненты 🙂
(22) это даже не свои, просто переделанная обработка в (0) + мысли из (17), а уж техники то нам не занимать 🙂
(23)Ну все же 🙂
(24) думаю, можно даже (19) в (0) прилепить в качестве примера, не делать же отдельную публикация из-за 3-х строк кода :), а так хоть возможно польза кому-то будет.
А кстати оно в png умеет сразу сохранять?
(26)Как сразу? Устанавливаешь параметры в функции и сохраняешь.
Например:
//SaveBitmapToFile(Путьсохфайла, 1-BMP 2-JPG 3-PNG, качество JPG(0-100) сжатие у PNG(0-9))
ЭлементыФормы.WebCam.SaveBitmapToFile(«C:Снимок.png», 3, 9);
Чо-то я не нашел в описании такого 🙂 Или это в примере было? В общем описание бы подправить чтоли
(28)Есть в обработке примере )
(29) не, так не канает, а если я хочу сам что-то написать? Нельзя так руки связывать 🙂
(30)Что-то я тебя не пойму! Что не канает?
(31) понимаешь хочется ведь не лазить по исходникам, чтобы понять как оно работает, а чтоб была readme, и чтоб там было написано:
SaveBitmapToFile и описания всех параметров и как оно работает
Еще вебкамерой можно управлять через WIA (Windows Image Acquisition), если поддержка (у камеры) есть. У меня работает примерно так:
Инициализация:
Device = СоздатьОбъект(«WIA.DeviceManager»);
CamDevice = Device.DeviceInfos(1).Connect();
Video = СоздатьОбъект(«АктивИкс»);
Video.УстановитьАтрибут(Форма, «АктХ»);
Video.СоздатьЭУ(«WIA.VideoPreview»);
Video.УстановитьФокус();
Фото:
Dev = Video.Объект.Device;
Item = Dev.ExecuteCommand(«{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}»);
Image = Item.Transfer(«{557CF401-1A04-11D3-9A73-0000F81EF32E}»);
Image.SaveFile(ФотоФайл);
(33)Можно и так ) А можно и вот так ) я так раньше делал ))) но захотелось большего )
Процедура КнопкаВыполнитьНажатие(Кнопка)
Попытка
УдалитьФайлы(«c:Documents and SettingsAll UsersApplication DataMicrosoftWIA»);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Image = Новый COMОбъект(«WIA.ImageFile»);
DevManager = Новый COMОбъект(«WIA.CommonDialog»);
Попытка
Image = DevManager.ShowAcquireImage();
ИмяФайла = ПолучитьИмяВременногоФайла();
Image.SaveFile(ИмяФайла);
Кар=Новый Картинка(ИмяФайла);
ЭлементыФормы.ПолеКартинки1.Картинка=Кар;
Исключение
//
КонецПопытки;
КонецПроцедуры
(34) в моем примере инициализация проходит при открытии документа. ActiveX подключается с помощью 1c++. прямо в документе идёт предпросмотр видео с камеры. при нажатии кнопки, фото сохраняется
Как бы еще к IP камерам прикрутить это счастье, было бы шикарно…
(36)Извини, но IP камеры у меня нету! Если была то давно бы уже написал компоненту ))
А разрешение фото менять можно?
На Win7 не регистрируется компонента
(39) поставь в свойствах файла для C:windowssystem32
egsvr32.exe, эмуляция запуска под winXP. И все нормально зарегистрируется.
(38) нет.
(39) У меня под Win 7 нормально зарегестрировалось. Сделал bat-файл, в нем прописал ПОЛНЫЙ путь к компоненте и запустил от имени администратора (по правой кнопке мыши). Все работает. Напиши как регистрируешь?
Подскажите, если подключу компоненту к компу в котором Розница, Веб-камеру, я смогу удаленно наблюдать через интернет за торговым залом? Или нет? Если нет то что для этого надо? Если надо допилить компоненту то буду выступать в роли заказчика, с оплатой соотвественно.
(43)Пишите в личку, договоримся!
Image = Новый COMОбъект(«WIA.ImageFile»);
DevManager = Новый COMОбъект(«WIA.CommonDialog»);
Попытка
Image = DevManager.ShowAcquireImage();
ИмяФайла = ПолучитьИмяВременногоФайла();
Image.SaveFile(ИмяФайла);
Как камеру в даном случае подключить? А то сканер цепляется.
(45)Воспользоваться моей ActiveX компонентой 🙂
в управляемом приложении нет возможности создать элементы типа АктивИкс 🙁
в управляемом приложении нет возможности создать элементы типа АктивИкс
Есть…
http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=557640
Возможность-то есть… только снимок в файл сохранить таким образом не получается. А ведь запись видео и создание снимков и есть то, ради чего нужна эта компонента. Не любоваться же самим собой хорошим? )))
(49)
Image = Новый COMОбъект(«WIA.ImageFile»);
DevManager = Новый COMОбъект(«WIA.CommonDialog»);
Попытка
Image = DevManager.ShowAcquireImage();
ИмяФайла = ПолучитьИмяВременногоФайла();
Image.SaveFile(ИмяФайла);
Не это?
Я имею в виду штатные функции данной ActiveX-компоненты. Если ее подключать обходным путем (указан выше) в управляемой форме — сохранить снимок в файл — возможности не представляется.
Если есть обходной путь (скриншот области формы или что еще) — буду рад.
(51) сразу не увидел. В 14 версии платформы вроде что-то намутили со скачкой ActiveX на машину пользователя.
Так проблема не с установкой ActiveX, а с тем, что браузер не позволяет ей работать с файловой системой. Исходя из того, что типовая компонента «Расширения для работы с файлами» это умеет, считаю, что в принципе это возможно.
У меня почему-то даже в 1С77 сохранять в файл не хочет. Пишет что метод не SaveBitmapToFile не найден. И в объект-браузере SaveBitmapToFile идет как свойство, а не как метод, в отличии скажем от Play. Видео показывает, сохранять не хочет…. У кого есть пример удачного сохранения картинки из 1С77?
Удалось разрулить. У меня на форме объект WebBrowser, в нем HTML-страничка, на страничке два контрола <object> с содержимым WebCamX. Из тела страницы яваскриптом сохранение не хочет идти, видимо действительно есть какое-то ограничение по безопасности браузера. Путем долгих экспериментов удалось найти рабочий вариант, с сохранением из 1С77:
Результат=Браузер.Объект.document.webCam1.SaveBitmapToFile(«c: est1.jpg»,2,80);
Результат=Браузер.Объект.document.webCam2.SaveBitmapToFile(«c: est2.jpg»,2,80);
(46) Возможно ли прикрутить к WebcameraX управление из вебкамеры, т.е. на вебкамере есть кнопка чтобы при нажатии ее происходило событие, например сделать снимок?
(56)А что тебе мешает это сделать программно?
А как из 1с перехватить нажатие кнопки на вебкамере, я так думаю это только через драйвер вебкамеры возможно.
(57) А как из 1с перехватить нажатие кнопки на вебкамере, я так думаю это только через драйвер вебкамеры возможно.
(59)да только через драйвер
(60) А через WIA.ImageFile в 1с можно перехватить нажатие кнопки на вебкамере?
У меня вот камеры почему-то по WIA не перехватываются, возможно не поддерживаются, а возможно заморочки Win7. К тому же если камера уже отображается в ActiveX, то вряд ли ты ее чем-то еще перехватишь.
Может кто то знает какие веб камеры еще поддерживаю WIA, так как у меня управляемое приложение нормальных способов кроме использования WIA я не нашел
т(с испо
Удалось разрулить. У меня на форме объект WebBrowser, в нем HTML-страничка, на страничке два контрола <object> с содержимым WebCamX. Из тела страницы яваскриптом сохранение не хочет идти, видимо действительно есть какое-то ограничение по безопасности браузера. Путем долгих экспериментов удалось найти рабочий вариант, с сохранением из 1С77:
Результат=Браузер.Объект.document.webCam1.SaveBitmapToFile(«c: est1.jpg»,2,80);
Результат=Браузер.Объект.document.webCam2.SaveBitmapToFile(«c: est2.jpg»,2,80);
А можно пример у вас взять для управляемого приложения, очень надо.
У меня нет примера для управляемого приложения. Писал под 1С77, обошелся использованием этого ActiveX, но пришлось дополнительно в свойствах обозревателя (IE) разрешить использование ActiveX без запросов и блокировок, тем самым снизив уровень безопасности браузера. В данном случае было допустимо.
В HTML-документе вставил типа:
В коде 1С:
Думаю, что для режима управляемого приложения, если рассчитывать на массовое использование без изменения настроек браузера, будет правильнее использовать решение на Flash. Я пробовал, получалось всё замечательно, но локальное сохранение работает долго, для быстрого — необходимо формировать POST-запрос к веб-серверу с передачей «сырого» изображения, и уже в серверной части производить сохранение. Я брал пример отсюдаhttp://www.xarg.org/project/jquery-webcam-plugin но переделывал его для использования без фрэймворка Jquery, а кроме того менял и перекомпилировал SWF для сохранения в разрешении 640х480 (по умолчанию 320х240).
Спасибо вам огромное, буду использовать веб браузер, будет использоваться не на производстве, поэтому опасности нет 🙂
Это конечно хорошая попытка, но как писали выше работать с чем угодно (сканер, камера, веб-камера) довольно просто через WIA, и не нужно регистрировать дополнительные компоненты ActivX.
Это конечно хорошая попытка, но как писали выше работать с чем угодно (сканер, камера, веб-камера) довольно просто через WIA, и не нужно регистрировать дополнительные компоненты ActivX.
Пробывал я, но увы новые веб камеры уже не имеют WIA. Вот у меня к примеру встроеная веб-камера, и вот только через эту компоненту мне удалось ее подключить. Кому интересно могу дать пример обработки на управляемой форме.
Вопрос на засыпку…1с 8.2 веб-клиент…натолкните на мысль как организовать получение снимка с веб-камеры???
P.S.пробывал через WIA.Devicemanager — пишет что не видит ни одну камеру (камера на ноуте встроенная), ОС Windows 7.
пример кода —
ВременныйФайл = ПолучитьИмяВрФайла();
Device = Новый COMОбъект(«WIA.DeviceManager»);
Сообщить(Device);
DevCount = Device.DeviceInfos.Count;
Сообщить(DevCount);
Image = Новый COMОбъект(«WIA.ImageFile»); //создаем объект «Изображения» в WIA для дальнейшей работы с ним
Сообщить(Image);
DevManager = Новый COMОбъект(«WIA.CommonDialog»); //а это диалог сканирования
//DevManager.ShowSelectDevice(,Истина);
Если DevCount>1 Тогда
Image = DevManager.ShowAcquireImage(,,,,Истина); //записываем сканированное изображение
Иначе
Image = DevManager.ShowAcquireImage();
КонецЕсли;
IFP = Новый COMОбъект(«WIA.ImageProcess»); //создаем фильтр для сохранения изображения
IFP.Filters.Add(IFP.FilterInfos(«Convert»).FilterID);
IFP1 = IFP.Filters(1);
Для К = 1 По IFP1.Properties.Count Цикл
Если IFP1.Properties(К).Name = «FormatID» Тогда
IFP1.Properties(К).Value = «{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}»; //конвертируем в PNG
Прервать;
КонецЕсли;
КонецЦикла;
Image = IFP.Apply(Image); //применяем фильтр на изображение
Image.SaveFile(ВременныйФайл);
Спасибо большое, даже не могла представить, что можно совместить работу 1с с веб-камерой!
Добрый день.
Скажите пожалуйста можно ли протестировать Вашу обработку ActiveX компонента WebCamX для работы с веб-камерой», возможности скачать у меня к сожалению пока нету, если возможно и вас не затруднит выслать обработку мне на почту: seron@inbox.ru
Спасибо, буду очень благодарен
Я снял видео с помощью компоненты, нажал проиграть — и потом хотел сделать снимок
выдало ошибку.
Возможно ли:
1. делать перемотку видео файла вперед назад
2. делать снимки с отснятого видео
Если да — то подскажите как это сделать
(69)
Я делал для управляемых форм…еще год назад. Причем на самоисной компоненте. Если найду — подскажу.
(69) нашлось решение проблемы?ибо у меня что то похожее: Win7,камера(встроенная) включена, но Device.DeviceInfos.Count = 0 . не могу найти косяк(
Обработке +, т.к. в моем случае помогла.
(54) maljaev,
[+] [−]
У меня аналогичная проблема.
Только нет никаких Веб-браузеров, тупое заявление, что метод SaveBitmapToFile не найден.
Победил.
Показать
А чем отличается от обработки Душелова?
ааа незавимо от .net все понятно
Интересует расширение возможностей компоненты WebCamx, а именно сохранение в файл снимка с различным разрешением. Готов обсудить условия доработки — ton-a@yandex.ru
(80)Мне кажется что три типа файла достаточно для дальнейшей обработки снимка!
мне не тип файла важен, а разрешение картинки- по умолчанию 640 на 480 и никак не изменить это
ну не придерайтесь
Возможно ли наложение произвольного текста на видео поток?
(84)Да, возможно! Но только при помощи другой компоненты!
(85) Кинте мне пожалуйста тестовое письмо на емайл fortlabs(sobaka)yandex.ru, есть предложение.
Спасибо.
То что доктор прописал.
(85) компонента интересная! но под управляемой формой показывает только видео. фото сделать не получается, выдает ошибку Метод не найден «SaveBitmapToFile», с чем может быть связано? Не пробывали ее сами под управляемой формой?
еще вопрос а у компоненеты VideoGraberX есть возможность сохранение фото?(85)
Спасибо, вопрос стал не актуален. Нашел сам решение.
скажите а возможно ли каким то образом распознавать видео-картинку ?
(91) olo_lo4, разумеется, ведь 1С как раз создана для захвата, анализа и обработки изображений и видео. Можно номер авто заляпанный грязью распознать, можно посчитать сколько людей в толпе, можно по фотографии найти человека среди посетителей — всё что угодно, притом средствами платформы.
А если серьезно — то такую задачу способны выполнять только весьма дорогие системы видеонаблюдения, да я и сам бы не поверил что такое возможно в принципе если бы не столкнулся с ними по работе.
Прошу Помочь, c IP камеры(Поддерживаемые протоколы IPv4/v6, HTTP, UPnP, DNS, NTP, RTSP, DHCP, TCP, UDP, IGMP, RTCP, ICMP, ARP) из потока http получить снимок и сохранить в файл при нажатии сохранить документ.
Нужна процедура.
Если есть у кого опыт, прошу отзываться, поток в 1с получаем, нужно сохранить картинку.
(38)(80)(99)(100)Появилась возможность менять видео формат(разрешение)! Файл для скачивания WebCamX2.rar.
(68) yus12, Мне интересно. Скиньте пожалуйста.
(34) автор большое тебе спасибо, за пример WIA отдельно — очень помогло!
+1
(130) Светлый ум, архив с компонентами: WIAAutSDK.zip
Здравствуйте.
В windows 7 не хочет работать, библиотека регистрируется, но при вызове обработки пишет «{ВнешняяОбработка.CamX.Форма.Форма.Форма(3)}: Метод объекта не обнаружен (GetCountDivice)
Кол=ЭлементыФормы.WebCam.GetCountDivice();»
Такое ощущение, что не хватает какого-то драйвера, кто-нибудь встречался с таким?
(91) Можно. Как раз такую готовлю штуку
(93) Если еще интересно, то вот —https://infostart.ru/public/715497/