<?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='\
Добрый день!Есть ли такая обработка для УТ 11.3?
(1) Есть, но она не проверенная. Можете написать мне в личку Ваш e-mail я отправлю, проверите и отпишитесь мне))
(2)
спасибо заранее,буду ждать,она нам очень необходима сейчас.
Добрый день. Добавил обработку в внешние формы но в документе РТУ в списке печ форм не появляется в чем может быть проблема БП 3,0,50,18
(4) во внешних печатных формах ее и не должно быть)) Посмотрите на скриншоте, там кнопка «Заполнить» выделена красным квадратом
(5))) скрины та и не глянул , ок спасибо
На другой модели ккм атол будет работать?
(7) Теоретически должно, но у меня не было возможности проверить. Если будут проблемы, напишите, посмотрим.
по стандартной форме выходит на печать через поступление наличных а через вашу обработку не выходит.
(9) все верно, потому что моя обработка для печати чеков из документа «Реализация товаров и услуг». Из ПКО можно печатать типовым функционалом.
все правильно, только не могу понять почему с сервера печатает по вашей обработке все замечательно, а на стороне клиента нет.
уходит в возврат либо
// занимаем порт
ECR.DeviceEnabled = 1;
Если ECR.ResultCode <> 0 тогда
возврат;
либо
// получаем состояние ККМ
Если ECR.GetStatus() <> 0 тогда
возврат;
если бы вы помогли советом был бы очень благодарен.
хотя кажется я понял скорее всего в первый раз обработку нужно запускать под административными правами на систему. по результатам отвечу в первый рабочий день
(9) это я неправильно понял фразу ))
итого на том же компьютере под администраторской учетной записью виндовс в 1с все работает как надо а под пользовательской учеткой операционной системы нет в 1с не работает.
(14)
Какая версия Windows?
тест драйвера работает из под пользовательской учетной записи?
Сможете отчет без гашения сделать из под пользовательской учетки в родном Тесте драйвера Атол?
Какая версия драйвера у Вас установлена?
с родными драйверами все хорошо из под пользовательской учетной записи работает
а с ваша обработка только под администраторской учетной записью ОС работает. хорошо работает). ОС Вин7 64 1С Бухгалтерия предприятия, редакция 3.0 (3.0.50.12) серверная
лечиться следующим образом, Пользователю даешь админские права, переустанавливаешь все драйвера устройства, перенастраиваешь именно под пользователем, забираешь админку.
Присоединяюсь .Добрый день!Есть ли такая обработка для УТ 11.3?
Мне тоже нужно для УТ 11.3
Есть ли обновление обработки под драйвер fptr10_1c_win64_10_4_1_0.dll версия 10.4.1.0
работала по драйвером FPRNM1C.dll версии 8.14.2.0
Под новые драйвера обновление не писал, так как данный функционал уже реализован в типовых конфигурациях УТ 11 и Бух 3