<?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) Nurbek_EkipazhKZ,
Добрый день. видимо устройство у вас по другому настроено, смотрите там в коде есть строчка
Команда = «cmd.exe /c » + linco_exe + » -B 32 -C 2 -R 44100 | » + lame_exe + » -r — » + out_mp3
для утилиты linco.exe есть параметры командной строки:
-B, —bits Set number of bits per sample.
-C, —channels Set number of channels.
-R, —rate Set number of samples per second(sample rate).
-D, —duration Specify maximum record duration(h:m:s).
-dev, —device Specify the sound device to be used for recording.
-lsdev List the installed sound devices and exit.
-ff Support «flag-files».
вам нужно из командой строки запустить linco.exe с параметром lsdev и посмотреть какие устройства у вас в системе определены и затем в строчку в 1с добавить — dev 1(или номер устр-ва которое есть у вас).
файлик linco.exe прикладываю
А какие бывают сценарии применения звукозаписи в 1С?
(3) kuzyara,
ну например звукозаметки к справочники (контрагенту, номенклатуре).
а также если звуковая карта поддерживает стерео микшер, то можно записывать разговоры со скайпа, ip телефонии — т.е. весь звук с компьютера и например прикладывать его к заказам, счетам и т.д.
(4) отличная идея, при выставлении счета за телефонные консультации. Браво. Не забудьте предупредить абонента что «для повышения качества бла бла, все разговоры записываются». Осталось как-то это дело импортировать с моего сотового 😀
(3) kuzyara, ну для людей с ограниченными функциями зрения очень даже может помочь. Для Linux можно реализовать через sox — там функций очень много, включая запись с того момента, как что-то сказали и до момента окончания реплики — даже кнопку «стоп» не надо.
Подскажите пожалуйста, скачал эту обработку, но мне нужно записывать не только микрофон, но и наушники (стоит гарнитура). Мне нужно для целей ip телефонии. что можно сделать?Стерео микшер включал, но тогда вообще ничего не записывается (назначал микшер устройством по умолчанию). Тестировал на win7
(7) outs1deR, если гарнитура юсб то не все звуковые карты будут через стеремикшер писать звук
(8) спасибо большое что ответили! Но теперь проблема другая — стерео микшер настроил, все работает, но мой собеседник на другом конце провода слышит сам себя с задержкой, то есть как будто эхо. Видимо звук от него передается ко мне в наушники и потом передается обратно ему же. И похоже что это никак не поправить. Если отключить микшер, то записывается только звук с микрофона, то есть запись того, что сказал собеседник не ведется. Даже уже не знаю куда копать. В теории нужна какая то компонента, которая будет писать микрофон и линейный вход, объединять потоки и создавать итоговую запись. Где такую найти — ума не приложу, не подскажите, библиотека LAME такое умеет?а то описания ее нигде не найду
(9) outs1deR, LAME пишит звук с устройства которое ему казать. как вариант попробуйте настроить звонилку, указать на выходе микрофон а не стереомикшер. как то так.
Попробовал обработку. Как раз, то что искал.
Спасибо за решение!
Добрый день! Пробовал вашу разработку и столкнулся с интересным моментом: несколько дней назад запись шла хорошо, файл после прослушивал и все было замечательно. Хотел показать коллеге данную разработку, начал демонстрацию и получил странный результат: файлы записываются в замедленном виде, при прослушивании на разных плеерах голос очень замедлен. Не могли бы подсказать в чем может быть дело?
Добрый день. Как вариант поиграться параметрами записи библиотеки. Ссылка выше была
(12)
Добрый день.Обработка у меня работает.Но хотелось бы ещё узнать возможно ли дописывать в существующий файл?Или например ставить запись на паузу?