<?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='\
Сетевого принтера у меня нет так что не проверял и не заполнял эти данные
Но подбор не работает нн в УТ 10.3.6.8 Демо ,ни в Комплексной автоматизации
1.04 Демо
Кнопки командной панели вообще не доступны: Количество по остаткам , Установить количество
(1) Подбор работает. Делал как раз на этом релизе УТ 10.3.6.8.
Значит у вас не заполненны штрих-кода. Было ограничение на печать только внутренних ШК, те у которых два первых символа «20», возможно из-за этого.
По поводу кнопок, они будут доступны после заполнения таблицы.
Ограничение на печать внутренних ШК убрал.
Да заработал, только Вашу версию я уже не могу скачать по статусу:
мне можно качать обработки только 1 раз в день
заккоментировал вот эти строчки:
|ГДЕ
|Номенклатура.Ссылка В ИЕРАРХИИ(&список)
//|И ВЫБОР
//|КОГДА (ВЫРАЗИТЬ(Штрихкоды.Штрихкод КАК СТРОКА(2))) = «»20″»
//|ТОГДА ИСТИНА
//|КОНЕЦ»
|»);
(4) и правильно ))) …
К сожалению, непонятно, для какого принтера формируются коды печати.
(6) у себя использую зебру Штрих-м
Никак немогу разобраться с параметрами..
в комментариях описано частично..
есть ли ссылка на описание формата файла?
у меня принтер zebra lp 2824
«размер буфера», «высота секции», «разрыв»
Ар1,р2,р3,р4,р5,р6,р7,р8 — параметры строки?
upd: разобрался вроде.. спасибо за идею
Для каких версий ЭТО???
{Форма.Форма(178)}: Поле объекта не обнаружено (ТипЦен)
ЦенаПр = Ценообразование.ПолучитьЦенуНоменклатуры(стрТабл.Номенклатура,,глТекущаяОрганизация.ТипЦен,ТекущаяДата());
СокрЛП(стрТабл.Номенклатура.Модель)???
Если это для конфигурированной УТ, так неплохо бы написать об этом.
ну и как указать размер этикетки?
Исправил ошибки, перезалил.
Дико извиняюсь, не было времени. Если будут еще ошибки пишите, обязательно исправлю.
а на hp1320 пойдет?
Автор подскажите пожалуйста как правильно указать принтер Lp 2824
что с принтером делать?
у меня локальный
Каким образом заставит ее работать на 8.2 или скачать доработаннуюhttp://infostart.ru/public/75613/
В УТ 8.2 ред 10.3 когда делаешь из документа «Поступление товаров и услуг» почему то не выводит еденицу измерения и кол-во. Хотя под 8.1 работает отлично. Конфигуратором сконвертировал.
(19) Ivan_82, Конечно можете взять доработанную. Не зря же её дописал автор! )
Если уж совсем ничего не получить тогда обращайтесь, сделаю лично для вас )
Можно как-то комментировать формирование строк, параметры и тп? Я не знаком с EPL, но у Вас этикетка классная получается, компактная и много информации, хотелось бы адаптировать под свой размер.
(22) rvk68, Я давным давно эту обработку скачал также. Настраивал методом «тыка», т.к. EPL тоже не знал )). Смотри каким шрифтом и как позиционируются строчки и поиграй настройками.
хоть бы предварительный просмотр сделали ато неясно что и куда печатается — зря рейтинг использовал на это
(24) mmx2003,
Первое: в описании есть картинка этикетки.
Второе: В описании написано «Данная обработка отправляет данные для печати напрямую в порт, куда установлен ваш принтер.».
Читайте внимательно описание!
Обработка отличная, заменил ею стандартную. Но есть один минус, обработка не имеет макет чем усложняет редактирования под личные цели… Спасибо.
Обработка очень помогла, как то давным давно печатал на COM порт что на много удобней и работает стабильно надеюсь что этой обработкой можно и через USB передавать на печать. Спасибо!! Спасибо!! Спасибо!! Спасибо!! Спасибо!! Спасибо!! Спасибо!!
Никто не пробовал тестировать данную обработку на 8.2 Комплексная автоматизация? Если обработку подключить к документу «Поступление товаров и услуг» будет ли она брать номенклатуру из табличной части документа и печатать штрихкод?
Проверяли в КА 8.2 ?
неплохо бы добавить отбор из документа