<?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.4 работоспособность пропала
Обновил
Спасибо на 11.4.3.115 работает!
Это нужно делать на каждом клиенте?
Какие права нужно дать кассиру чтобы заработало?
(6)
Добрый день. Обработка запускается без проблем под стандартным профилем продавца-кассира ККМ. В общем случае, пользователю необходимо иметь следующие права:
— Добавление изменение кассовой смены
— Добавление изменение отчетов о розничных продажах
— Использование подключаемого оборудования.
(7)тогда подскажи как её правильно установить, может я не то делаю, база подключается по сети(расшариная папка). Устанавливал её на сервере, надо ли её ставить на ПК кассира?
(8) устанавливаете под любым пользователем, которому разрешено подключение расширений конфигурации (права админа, как правило). Применяется для всех пользователей базы, для установки нет необходимости заходить специально под кассиром
(9)странно что ничего не работает, сверка не проходит, через Казначейство-сверка итогов все норм работает. Ошибок никаких нет
(10) Попробуйте под админом закрыть смену, сформировать и провести отчет о розничных продажах
Попробую, отчёт у нас автоматически формируется и проводится при закрытии смены.
А может кто-нибудь подсказать по УТ 11.3.4.227 ? В конфигураторе нашел что в справочнике Подключаемое оборудование есть форма УправлениеЭквайринговымТерминалом , через которую можно выполнять команды сверки, отмены платежа и тд. В общих командах есть команда для открытия этой формы, но не могу в рабочем интерфейсе найти эту команду? Каким образом вызвать эту форму?
(13)
Добырй день! Команда вызывается из списка сервисных команд раздела «Продажи». В прикрепленных изображениях указан алгоритм добавления команды. Желаю успехов!
Антон, добрый день, напишите мне пожалуйста в личку или на почту devyadg@ ya. ru
Вопрос по обработке
на 11.4.6.230 выдает ошибку «АвтоСверкаИтоговЭТ (2.0): Критичная: Значение контролируемого свойства РежимСовместимости у объекта не совпадает со значением в расширяемой конфигурации»
(16)Обновите пожалуйста под 11.4.6
(17)Не пойму, вышло обновление для 11.4 или нет? Кто скачал?
(18) обновил
(17) обновил
будет ли данное расширение работать на Комплексной автоматизации 2.4.7.151?
(21) На 2.4.7.127 работает
Антон, напишите контакт dompostamp@mail.ru