<?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='\
Буду очень рад увидеть ваши комменты… 🙂
Расскажите про случай, если USB сканер (например, Symbol LS2208) не создает ком-порт, выбирается только «в разрыв клавиатуры». Возможно ли его настроить, чтобы он вызывал «ВнешнееСобытие» ?
(2) В семерке я делал так:http://infostart.ru/public/75804/
Возможно в восьмерке можно сделать по аналогии
Кроме атол, кто еще выпускает драйвера для 1с?
Вы сами пробовали настраивать сканер в терминале?
(2) ставьте драйвера от Атол. Версия 6.5 (кажется) еще была бесплатной
usb я настраивал как обычный com, только в подборе приходиться каждый раз нажимать f7, а далее обычная обработка(сразу не скидывает в табличную часть документа).
Кроме Атол и 1С кажется еще есть драйвера от Рарус.
кстати, +++++++ если можно…:)
Последние бесплатные уже не подходят, говорит что староваты..:)
(7) вроде-бы под 8.1 нормально работают, хоть и ругаются
Господи… Кто мешает настроить нормальную трансляцию портов в терминальном режиме?
И атоловские дрова и одинэсные нормально со всем работают. Это проблема не дров, а настройки терминального клиента. И change port тут нахрен не нужен. Что мешает прсто проверить автоопределение сканера?
Жду описание проблемы подключения денежных ящиков. Они же напрямую с 1С взаимодействуют — получают информацию, сколько денег в них сунут…
Давай про весы и про кассу 🙂
Кстати, забыл написать. В настройках подключения по терминалу необходимо поставить галочку «последовательные порты»
(4) Астор например.
Есть у меня для длл и обработка обслуживания для 7.7 (сам писал).
Но она как и scanopos не поддерживает усб сканеры.
Насчёт подключения торгового оборудования все понятно, но хотелось бы узнать. Если бы была статья, что необходимо для автоматизации маленького магазина с одним ПК. Например хватит ли сканера и принтера для начала, или чтобы продавец (кассир) работал сам и обязательно для этого иметь фискальный регистратор. Ну по проще.
А то все говорят про оборудование, а че с ним делать, просто туман какой-то… ❓
берите сканер в разрыв клавиатуры и не ….те мозг
Хотя условия задачи бывают разными, но не стоит забывать о простейших решениях
Сканеры в терминале подключил, один из четырех оказался USB, прокинул его на COM все заработало, только СОМ оказался №5, а остальные живут на 2. Посему в торговом оборудовании две строчки для двух моделей сканеров.
Вопрос как привязать торговое оборудование к пользователям (компьютерам) в терминальном режиме?
Пока проблему решаю так: заходим вначале там где стоит USB ставим галку против его сканера, выходим из программы, заходим снова, все работает, но что бы другие зашли без проблем переключаем галку на СОМовские сканеры. Галка осталась включена, заходит пользователь без сканера, и ему во всех формах где может работать сканер ругается, типа не могу сканер подключить, раздражает однако.
Спасибо!
И ещё. С необязательностью применения фискального регистратор для ИП по ЕНВД. То, можно обойтись без ФР и денежного ящика. И оставить только сканер, ПК с 1С и принтер, так как к продавцам недоверия нету.
Например, на принтере печатаю этикетки и если потребует покупатель можно ему чек распечатать, а на ПК и в 1С7.7 (ТиС) можно права ограничить.
Тогда мне эмулятор ФР нужен для принтера или нет.
(13) очень рад за вас что все понятно. Однако подключить сканер что бы 1С отлавливало событие сканирования не так то просто. Все сканеры разные и стандартные драйверы к ним зачастую не подходят. Так что подключить грамотно сканер тот еще секас. А примитивно нажимать в 1С «F7» и в эту срочку сканировать каждый может. А вот иметь или не иметь фискальный регистратор вам в налоговой разъяснят — в зависимости от системы налогообложения и типа деятельности. Вообще принять от розничного покупателя деньги не выдав чек выйдет дороже покупки фискальника.
Стандартный Сканер от 1С вполне нормально работает.
(2) Serj1C, Можно, Атоловские драйвера отлично работают со сканером в разрыв клавиатуры, перехватывая по префиксу штрих код и генерирую ВнешнееСобытие. Вот только с определнных пор они стали платными, но последняя бесплатная версия драйверов нормально работает со стандартной обработкой из пакета обработок 1С, нужно только закомментировать проверку версии.
(19) Комментировать надо не проверку версии, а строки обработки обслуживания, содержащие слово «Чувствительность», бо в версиях 6.5 и менее регулировать её нельзя, и нормально работают дрова вплоть до 5.5.5.0 (меньше просто не попадались, так что не знаю). Для отключения проверки версии в параметрах торгового оборудования есть табличка «Совместимая версия», куда и требуется добавить ту, которая есть. Но это для старого механизма, как оно в УТ11 и прочих обстоит — не знаю пока.
еще есть на просторах рунета волшебная библиотечка rs_232.dll которая работет как часы. Но для нее приходится править ручками конфигурацию.
при подключении к локальному компу все просто, а вот через терминал надо порты пробрасывать, словами не напишеш, надо брать и делать
подключил сканер через эмуляцию Com порта
У пользователя 1с, который работает со сканером все ок, а вот у остальных пользователей выходит ошибка подключения торгового оборудования..
подскажите как сделать так чтобы этот сканер был привязан только к одному пользователю, а не ко всем..
Подскажите, пожалуйста, как решить проблему:
а) Есть сканер ШтрихКода Symbol DS9808 USB для использования в конфигурации УПП.
http://support.symbol.com/support/search.do?cmd=displayKC&docType=kc&externalId=12593&sliceId=&dialogID= 194616748&stateId=1%200%20194610670) .
Установлен с эмуляцией COM-порта. Драйвер (эмулятор) взят с сайта Моторолы (
б) После установки отсканены управляющие ШК Эмуляции COM-порта и
http://www.atol.ru/support/encyclopedy/tech-articles/peripherals/periph-scanners/symbol-LS9208/ и сводится к явному указанию сканеру передавать суффикс программированием кода <DATA> <SUFFIX> из мануала«. Источник: http://kb.mista.ru/article.php?id=26.)
в) установки суффиксов 13 и 10 (дабы избежать проблемы сканеров Symbol: »
Проблема с подключением к 1С обусловлена тем, что по-умолчанию в сканерах данной модели отключена посылка суффикса в порт ПК. Решение описано в
Результат: Сканер виден в виде COM-3 с такими настройками: 115200, 8 бит, 1 стоп, контроля четности НЕТ.
г) Сканер внесен в ТорговОборудование и настроен в соотв с COM-3 (115200, 8 бит, 1 стоп).
д) Используется 1С-овский (не Атоловский) драйвер сканера ШК.
е) Сканер успешно проходит тест в обработке Подключение и настройка ТО, выдавая при сканировании результат в виде <Сканируемый штрихкод> ‘CR’ ‘LF’.
ж
жж) В самой базе 1С при сканировании любого ШК не происходит НИКАКОГО результата. Точки останова, расставленные в ОбработкеВнешнегоСобытия, и ОбработкахСобытия объектов скучно зевают.Что это может быть, кто сталкивался, какие ваши соображения и как это побороть?
Сканера QUANTUM T нет в списках 1с и Атолл. Можно ли его подключить? Я пытался — не сканирует последний символ.