<?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='\
Отличная обработка то что надо.
Только не понял как настроить ширину чека?
К примеру у меня чекопечатающая машинка с шириной ленты 56мм
Ещё хотелось бы чтоб товарный чек отображался как кассовый с той лишь разницей что в нём присутствовала надпись «Товарный чек» , сумма прописью, место под подпись и печать.
Неплохо было бы вынести кнопочку товарный чек в главное меню.
В остальном всё устраивает.
Скажите пожалуйста, будет ли эта обработка работать на базовой версии УТ 11?
(2) ferasinka, Да, конечно. На базовой версии можно запускать любые внешние обработки. Собственно эта была сделана как внешняя примерно для тех же целей, чтобы можно было на типовой УТ использовать новый функционал.
Обработка не работает в УТ 11.1 (11.1.10.86) в клиент-серверном варианте
(4) lartnec, Пришлите скриншот ошибки. Постараюсь поправить.
Скачал версию 1.1, ошибка при подключении обработки(скрин во вложении), просьба исправить и оповестить об исправлении! Спасибо.
(6) sasha123super1, Нигде и не написано что она должна была подключаться. Добавил эту функцию. Теперь должно быть все нормально.
Рабочее место кассира УТ 11 с печатью чеков на нефискальный windows принтер v1.2
Ошибка на УТ 11.1.10.86
НА УТ 11.1.7.49 — работает
На УТ 11.1.9.66 не работает
ошибка
(9) andrewa, До конца недели постараюсь проверить работу обработки на самом последнем релизе УТ 11. Скорее всего немного изменилась структура данных в новых релизах. Потому и не работает. Если нужно срочно — обращайтесь.
Прошу решить проблему с обработкой v.1.2 на УТ 11.1 (11.1.10.86). Спасибо.
Ошибку исправили? 🙂
Нет, ошибку не исправили 🙁
Работает 🙂
Проверенно на Управление торговлей (базовая), редакция 11.1 (11.1.10.138)
Здравствуйте, Релиз 11.1.6.24. Скачал версию 1.2 и 1.3 Обе не работают.
На версии 1,3
дает ту же ошибку, что и предыдущих постах.
На версии 1,2 как во вложении — версия 1.2.jpg
(15) edpipiya, У вас похоже слишком старый релиз УТ. Обработка создана на базе типовой из конфигурации, поэтому там используется много внутренних механизмов УТ, а они от версии к версии сильно изменяются. Поэтому либо обновите конфигурацию, либо могу по отдельной договоренности адаптировать обработку под вашу базу.
(16) Мне бы хотелось оставить мой УТ как есть. Как с вами договориться?
(16) отличная работа! Однако,будет ли добавлена работа с характеристиками?пока они не печатаются.
(18) rafaiil, характеристики добавить не сложно. обращайтесь в личку.
Спасибо за обработку.
А подбор, то что сразу закрывается и в документ переносит, так специально сделано? Вроде удобнее когда наподбирал несколько, а потом в документ передал.
(20) FreeArcher, смотря для каких целей подбор работает. В типовом варианте, на мой взгляд, лучше всего пользоваться сканером штрих-кодов для добавления товара в ТЧ. А формой подбора пользоваться только если нет штрих-кода или он не читается. Если стоит задача всегда подбирать товар через форму то логичнее, конечно, подбирать сразу все в форме. Если это нужно, то можно доработать, не сложно.
(3) Скажите, пожалуйста, можно как-то поменять реквизиты которые печатаются в чеке?
какие применить настройки, что бы чек не обрезался по надписи «Спасибо за покупку» (параметры печати выставлены как на Вашем скриншоте)?
Заранее благодарю!
Да уж ,не понимаю ,в УТ 10 можно было самому написать и подцепить epf для работы с торговым оборудованием и как результат твори там ,что хочешь . А тут… . И Спасибо за обработку , забрал макет и его заполнение .
(22) Гильермо, В обработке есть кнопка для настройки печати. Параметры на скриншоте ни образец для подражания. Надо добиваться нужного вида печати на вашем принтере индивидуально (по ширине страницы, отступы по краям).
(22) Гильермо, Реквизиты вроде все из вашей базы берутся (названия организации инн и тд). Что то можно прямо в макете подправить.
(3) Здравствуйте. Подскажите пожалуйста как настроить обрезку чека после печати. Принтер эту функцию поддерживает.
УТ 11.1.7.49
При нажатии на кнопку «Расчет» ничего не происходит. В чем может быть дело?
Здравствуйте, нажали на кнопку скачать файл, вышло окно «Бесплатно для новых юр.лиц. Получите файл бесплатно, если ваша компания у нас еще не зарегистрирована.
Введите ваш корпоративный e-mail
Ввел корпоративный e-mail нажал отправить файл, вышло окно регистрации, заполнил все поля, но почту так файл и не пришел. Может что-то не так делаю. Спасибо
подскажите почему не отображается наименование товара в чеке?
УТ 11.1.10.173
и как сделать чтобы она автоматически запускалась в программе?
Очень жду ответ!
(30) alexandrit,
подскажите почему не отображается наименование товара в чеке? — скорее всего такого просто не предусмотрено. Добавить строчку с наименованием товара не сложно. Но это надо в коде исправлять.
и как сделать чтобы она автоматически запускалась в программе?
Есть как минимум 2 варианта:
1 Можно внести изменения в конфигурацию. Тогда можно заложить практически любой алгоритм поведения обработки. Но тогда все таки придется вносить изменения в конфигурацию и при обновлении могут быть проблемы.
2. Можно написать bat файл, который будет как ярлык на столе, но при нажатии будет запускать 1С и сразу открывать обработку нужную. Это вроде бы самый простой и легкий способ.
Могу сделать все вышеперечисленное, но не безвозмездно. Обращайтесь в личку.
(31) как не предусмотрено, а смысл тогда вообще в вашей обработке?
в чеке должно выходить название товара и его цена. вместо товара стоят скобки ()
напишите пожалуйста електронку, сообщения вам почему-то не отправляются
Оказалось все просто — нужно чтобы было заполнено Наименование для печати. Для того кто с этим столкнется.
Еще есть вопрос: при открытии обработки стала появляться ошибка :
«Недостаточно прав для работы с таблицей. Справочник. Горящие клавиши»
Можете подсказать что ей не хватает?
(33) alexandrit,
Спасибо)
(34) alexandrit,
Релиз какой УТ? Поставьте полные права для этого пользователя. А чтобы пользователь лишнего не открывал можно просто из интерфейса убрать все лишнее.
(36) УТ 11.1.10.173
В том то и дело что ребята шустрые очень) открывают сами себе все что как раз нельзя. Разрешаю им только кассира и обработки
(25) подскажите как реквизиты подправить в чеке? нужно чтобы название брал не из базы, а то что напишем в макете чека. Очень жду ответ!
(38) alexandrit,
Если знать как то там на 5 мин делов. Заходите в конфигуратор, смотрите макет чека, ищите нужный реквизит, затем идете в код самой обработки и ищите этот реквизит в коде. И меняете существующий алгоритм вывода на нужный (можно подставить просто строку).
Ну или обращайтесь в личку, подправлю.
Добрый день! На 11.2 планируется?
(39) нам требуется такая обработка для версии 11.1.9.61
обе версии и 1.2 и 1.3 работают с ошибками
свяжитесь с нами для возможности платной доработки
lsv1978@mail.ru
А для УТ 11.2 не планируется адаптация обработки?
И обрезки бумаги нет, как я понимаю. Вобще возможно сделать обрезку в обычной печатной форме?
(45) FreeArcher, В 11.2.3 в подключаемом оборудовании появились Принтеры чеков
(46) Появится то они появились и по моему раньше были, но в РМК но возможность печатать на них в РМК отключена, включается небольшими доработками.
(35) Здравствуйте приобрели вашу обработку (Рабочее место кассира УТ 11 с печатью чеков на нефискальный windows принтер v1.3 для УТ 11.1.10.145) . Проблема в том что у нас УТ_11.2.3.101 . скажите пожалуйста когда вы будете писать обработку под это версию ?
(48) n.melnikov@turkmen-tranzit.com, Добрый день!
Обработка под каждый релиз УТ создается по сути заново (т.к. в УТ 11 от версии к версии сильно меняется структура данных). А это довольно трудоемкая задача. Поэтому обновления выходят так часто, как находится кто то, кому очень нужна новая версия обработки и кто готов заплатить за эту работу. Если Вы готовы проспонсировать прогресс, то буду рад помочь. Пишите в личку.
(49) я вам не могу дописаться в личку . вы не могли бы написать мне на почту m.mikheew@turkmen-tranzit.com
Здравствуйте!
Также хочу купить/получить данную обработку под последнюю версию УТ 11.2.
Готов с кем-нибудь вместе сложиться и оплатить написание.
Автору в личку написал, пока ответа не получил, очень жду ответа
Привет нужно срочно поправить для релиза 11.2.3.138
Готовы купить обработку и оплатить адаптацию под наши задачи. Как с вами связаться?
Здравствуйте Тоже хотелось бы обновленные выпуски данной обработки у нас ошибка
В справочнике нет УпраковкиНоменклатуры а вместо него вот это
как исправить ошибку с упаковкой, аналогичная проблема