<?php // Полная загрузка сервисных книжек, создан 2025-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)Здравствуйте, да, Вы правильно поняли. В таблице имеется колонка с признаком выполнения оплаты (на скриншоте видно), она не доступна для редактирования пользователю без назначенного права. Колонка заполняется автоматически после получения ответа от терминала, что транзакция прошла.
При этом, если пользователь нажмет отмену в форме оплат, то программа потребуется вернуть платежи по карте и не закроет форму.
Можно для тестового периода назначить право менять признак выполнения оплаты пользователю вручную.
Здравствуйте.
Не понял каким образом внести ваши изменения в стандартную конфигурацию? После обновления конфигурации не появился нужный функционал.
Добрый день!
Спасибо за Вашу обработку. Планируем использовать в продуктовом магазине, в РМК подключено две кассы, одна на ИП-продукты, вторая на ООО-алкоголь. Пока запустили в тестовом режиме, товары при закрытии чека разделяются по двум кассам, смены закрываются сразу по двум кассам или по желанию по выбранной кассе. Все работает как описано. Наконец-то сможем запустить магазин!!
(4) Спасибо за Ваш отзыв! Если возникнут вопросы или потребуется помощь — обращайтесь,не стесняйтесь, всегда будут рад помочь.
P.S. общая информация: недавно внедрял это решение в новую розничную точку с ККТ Атол и заметил одну неприятную вещь, он умеет печатать слип-чек общим текстом, а только построчно, поэтому немного доработал обработку сбербанка. Так же Атолу не нравится xml-символы в ответе слип-чека от сбербанка, тоже было доработано. Модифицированную обработку позже добавлю в архив, а всем тем, кто скачал данное решение, предоставлю по просьбе без проблем.
Пользователи, кто скачал версию 10.3.50.1 могут обратиться за за версией 10.3.50.2 бесплатно, так как 1С допустили ошибку в РМК для маркируемой продукции и исправили это в последнем подрелизе. Напишите мне личное сообщение, если потребуется новый файл.
(5)
Добрый день, а можно нам подправленную обработку для ККТ Атол?
Доброго времени суток, Подскажите пожалуйста.
Для конфигурации Управление торговлей 10.3.43.1, подойдет ли Рабочее место кассира УТ 10.3.44.1 для нескольких организаций + эквайринг сбербанка: .zip 10.3.44.1 36,44Mb ?
Конфа куда нужно встроить немного переписанная.
(8) Здравствуйте, архив содержит поставку, которая подойдет для обновления любой нижестоящей версии, но при этом ваши доработки затрутся, поэтому необходимо чтобы операцию установки доработок производил специалист, который объединит Ваши изменения с моими.
Получится ли запустить вот с этой обработкой обслуживания
https://infostart.ru/public/1060424/
(10) Если Вы хотите добиться от нее работы на две организации, то нет, так как по умолчанию в УТ 10.3 и обработках обслуживания такого функционала нет, мой функционал разработан индивидуально и для работы ingenico нужно так же подстраивать работу обработки (другими словами перепрограммировать) под данный функционал, и то, если у драйвера ingenico есть такая возможность, на моей практике общение со специалистом, кто обслуживал эти терминалы не смог дать мне внятного ответа на поддержку такой работы терминала, возможно такой был специалист.
Техподдержка ПромСвязь предлагает 1 терминал на 2 организации(МультиТерминал) Типа при печати будет выбор с какой организации проводить или же 2 терминал на 2 организации. Напишите в ЛС не получается вам написать туда
(2)Доброго времени суток!
У меня пару вопросов:
1.Почему вы не сделали самостоятельную поставку ( под своим идентификатором? )
https://its.1c.ru/db/metod8dev#content:2298:hdoc почему не выбрана именно такой формат?
2.Почему именно было необходимо исправлять Типовые формы ( Форма ) , а не создать свои ( со своим префиксом BD_Форма )
3.
4.Как вы дальше планируете поддерживать Типовую поставку в вашей интерпретации ? на текущий момент уже 10.3.55.1
+ это же не поставка УТ 10 и вы не Фирма 1С 🙁 но в сведениях о поставке об этом …. ничего не сказано
и не странно ли что 10.3.44.1 является обновлением для 10.3.45.1
(13)Здравствуйте!
1) Начнем с того, что я не позиционирую это как отдельный продукт, который я собираюсь распространять в виде «своей конфигурации», воспринимайте это как мою интерпритацию доработки типовых механизмов под нужды работы нескольких ФУ на рабочем месте. Доработка открыта и каждый может делать с ней что захочет, как реализовать интеграцию это уже дело вкуса, своей поставкой или дополнением типовой.
Второе, форму я использую типовую так как мне удобнее делать обновление и делать настройки объединения модулей в процессе установки новой поставки. Опять же обновления делают все по-своему, я предпочитаю не открывать сотни окон со сравнением/объединением, я делаю все в одном окне и на ходу, поэтому сравнивать формы поставщика, а потом переносить это все в новую форму мне не удобно. Опять — вопрос предпочтений.
По поводу поддержки, поскольку код открыт, любой человек, имеющий навыки специалиста 1С может самостоятельно обновлять конфигурацию на более свежие версии, либо заказывать эту услугу у тех кто умеет. Я периодически выкладываю новые версии, но это все по возможности, чаще всего по чьей либо просьбе, так как я не продаю это как коммерческий продукт с обязательной поддержкой, я предлагаю ознакомится с моим решением и дальше либо использовать «как есть» либо модифицировать под свои потребности. Плюс я считаю, что редакция уже изжила себя, в рознице 2.2 уже реализовано распределение продаж товара в типовом механизме и нет смысла по сей день использовать УТ 10.3 для розничной торговли, это больше для тех, кто вынужден подстраиваться, имея УТ 10.3.
По обновлению не путайте, если вы выбираете поставку в качестве файла обновления, то она готова загрузиться на любую версию, так как содержит в себе полную конфигурацию. Файл обновления в архиве подходит уже только на 10.3.44.1
Я рад что Вы проявляете такой интерес к данной доработке, но не оценивайте ее как какое-то отдельной готовое решение, в ней очень много чего можно оптимизировать/переделать/упростить так делалась изначально очень давно, именно поэтому она распространяется за стартмани, но и потрачено очень много времени, в том числе на «обкатку» в сети супермаркетов в свое время, поэтому это не 1, а 10 стартмани.
Спасибо за понимание.