<?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) coolseo, нет, сайт использую для получения картинки PDF417.
(2) зачем? 1С сама умеет формировать pdf417
Добрый день, скачали вашу подсистему, установили, но она как-то не правильно работает, заключается это в то что акцизы выводятся на печать не в pdf417? а в виде обычного штрихкода, и соответственно не читаются. Подскажите куда копать. Платформа 1с 8.3.9 Розница 2.2.4 (последний релиз)
Заранее спасибо.
С уважением.
(4) Modeus, ок, проверю!
Как успехи с проверкой? Тоже скачали, установили, не работает печать штрихкодов, если в ручную запрашивать картинку и печататьPDF417 то нормально сканируется
(4) Modeus, (6) codename-s, весьма странно… Еще раз тестировал на УТ 11.2.3.200 и Розница 2.2.4.25 и 2.2.4.30 — формируются PDF417
Высылаю вам скрины пройденной операции и ручного запроса. Розница 2.2.4.30
(8) codename-s, а пробовали считать акцизную марку с 3 скрина в блокнот? Там другой код что ли зашит? И что в Excel-файле, не открылся он у меня…
Пробовал, не хватает 2-х последних символов, код везде один и тот же, эксель исправил.
У меня формируются так-же как у codename-s на 3 скрине
(10) codename-s, (11) Modeus, вернул формирование марки с помощью сайта, вышлю конфигурацию в личные сообщения
Автор, подскажи как пользоваться твоей подсистемой?
https://yadi.sk/i/CnA4unMs333MDG нписано получен штрихкод, но поле штрихкода пустое:
https://yadi.sk/i/gpGf4U1H333MoQ
Создал документ запрос акцизныз марок:
как правильно сделать?
Не работает подсистема, документ висит со статусом передан запрос, при нажатии «выполнить обмен с УТМ» вываливается ошибка «Индекс находится за границами массива» и документ остается висеть со статусом «передан запрос».
В общем разобрался, автор, извиняюсь сам затупил. Не верно вводил тип марки. Нашел в отладке комментарий «Акцизная марка не прошла проверку» .
Спасибо за подсистему и +
Печать штрихкодов отрабатывается некорректно
Ещё раз обращаюсь к разработчику о ошибке печати акцизных марок.
Жду ответа
(17) Здравствуйте! Прошу прощения, действительно пропустил добавление картинки в макет. Исправлю!
Спасибо, теперь всё корректно распечатывается.
Добрый день! Поставил Вашу подсистему. Новый штрих-код приходит и записывается, а на печать не выводит. Как быть?
Спасибо за подсистему, отличная работа!
Есть только один вопрос, а расширением не проще было бы сделать?
(21) спасибо за отзыв! Изначально хотел расширение сделать, но потом решил, что неплохо было бы сохранять данные о запросах и номерах марок в базе, а расширение не позволяет добавлять справочники, документы и т.п. А так есть у меня обработки, где также присутствует функционал запроса марок
Добрый день
В описании написано:»В случае новых акцизных марок вы можете воспользоваться сканером штрихкодов: после считывания DataMatrix-кода будет автоматически создан новый элемент справочника «Номера акцизных марок» (если он не найден).»
Сканирую марку в документ- вторая колонка «номер» не заполняется. В самом справочнике номеров ее тоже нет.
В чем может быть проблема?
Розница 2,2,5,22
(kepka)Поддерживаю, приходится вручную с бутылок вводить алко код, а так же серию и номер.
(23), (24) прошу прощения за поздний ответ, в связи с изменениями в обработке событий пришлось немного переделать конфигурацию.
Из полученного штрих кода потом можно получить алкокод чтобы получить по нему номенклатуру?
(26) в данной подсистеме нет, а вообще можно будет
(27)В дополнение к предыдущему вопросу хотелось бы ещё чтобы было сопоставление «Тип марки» к «Виды алкогольной и спиртосодержащей продукции» и/или брать информацию из карточки номенклатуры. Залежалый товар всегда есть в базе и данная подсистема помогла бы вернуть его в продажу после повреждения штрих кодов марки…
А если в НСИ-Штрихкоды можно будет добавлять через Вашу подсистему «Акцизные марки» штрихкоды марок то вообще великолепно 🙂
Жаль что ценник растёт быстрее чем функционал 🙁 Приходится пока пользоваться бесплатной демо-версией «Трезвый Декларант. ЕГАИС» длярешения проблемы нечитаемых акцизных марок
(28) не очень понятно пожелание: что изменит связь с видами АП?)
(29) а кто сейчас запрещает?) Только вот для чего это нужно?
(31) Есть марки с оторванной головой где указано, для примера, что это «АМ. Вина виноградные до 0,75» а в базе есть эта бутылка с соответствующим проставленным видом АП.
(29) Ну пока только методом копипастить, а нужно для других обработок где акцизки берутся из соответствующего справочника.
(32) понял вас, но это будет актуально только для старых марок+надо искать связь между типом марки и видом АП.
(29) да у меня постоянные мои «любимчики» вечно вместо штрихкодов забивают марки в регистр «Штрихкоды», так что тут опять вас не пойму)
Срочно нужна помощь, установил данную доработку на конфигурацию Розница, редакция (2.2.5.22), попробовали отправить запрос все пришло, распечатали несколько акциз для проверки.
Смутило куча запросов в протоколе обмена ЕГАИС, куча пустых строк в секунду по несколько раз, решил что просто это ваше регламентное задание так работает. Не придал значение этому.
Но сегодня сотрудник пришел на работу зашел в базу, а она жутко глючит и вылетает с ошибкой что размер базы превышен.
Посмотрел в итоге база с 1гб выросла на 5.5 гигов (делал копию перед обновлением).
Что делать? Может эти запросы забили базу?
(34) хм, вообще после удачной загрузки из УТМа удаляется ответ с марками и при повторном чтении ответов записи в протокол не должны идти. Да и подозрительно часто идет запись. Еще раз попробую у себя
(35) может поможет ньюанс, что у меня несколько магазинов в этой базе. Т.е. с нескольких УТМ идет запрос документов.
(36) попробовал у себя еще раз (правда только у меня 1 утм): все хорошо приходит и удаляется… Попробуйте отключить пока регламентное задание «Загрузка акцизных марок» и получать марки по кнопке «Выполнить обмен с УТМ». Попробую организовать несколько УТМ. А можно с нескольких записей из протокола обмена скопировать все со вкладки «Текст XML», чтобы понять, что это хоть
del
(37) Прикрепил Тексты с запросов. Отключил регламентное задание, нажимаю в вашей доработке «Выполнить обмен УТМ» база повисает и начинает кушать всю память, принудительно убил процесс. Что-то совсем все плохо(
(39) ааа, было у одних такое дело: у вас накладная не может в базу подгрузиться. Нужно журнал регистрации смотреть, на чем ошибка выскакивает. Была проблема, когда приходила АП, длина алкокода у которой была меньше 19 символов. Либо попробуйте запустить в режиме отладки, настроить автоматическое подключение к фоновым заданиям, задать остановку при ошибке и запустить обработку запросов ЕГАИС. Можно попробовать универсальной обработкой отобрать всю АП, длина кода у которых меньше 19 и добить нулями спереди такие коды до 19 символов.
(40) Т.е. это совпадение, что после установки вашей доработки такое произошло? И с ней не связано?
(41) ну судя по тому, что в пустых записях протокола ттн висят, то из-за них беда. Я такое встречал, когда запросили продукцию производителя: тоже база висла как только запускалась обработка ответов ЕГАИС. Хорошо бы увидеть, что в журнале регистрации по этой ошибке пишется
(42) В итоге так и не заработало. Взял копию базы до обновления, все нормально получил, все ттн, проблема не в них.
Решил попробовать еще раз, сделал копию уставил только один УТМ, отправляю запрос на получения марок, начинает с невероятной скоростью расти база из-за запросов в ЕГАИС.
Закрываю базу, открываю снова, жму в доработке обмен с УТМ, получаю штрих коды и так до следующего запроса на получение марок.
Как убрать эти постоянные запросы?
Ещё вопрос, не могу получить ответы на бутылки у которых серия состоит не из 9 чисел, а из 8. Приходит ответ, что марка не прошла проверку. Подскажите, что не так, гуглил ничего интересного не нашёл.
(44) Здравсвуйте! К сожалению, не смог смоделировать ситуацию с зависанием: при загрузке данных из УТМ все проходит штатно как в автоматическом режиме (регламентным заданием), так и при загрузке вручную.
На счет марок с 8 символами: это импортная продукция, запрашивается также нормально (приложил скриншот с примером). Попробуйте в 1С открыть номер марки, все ли поля в ней заполнены?
Здравствуйте.
Имеется Розница, редакция 2.2 (2.2.5.27).
Скачал эту разработку «подсистему», интегрировал по инструкции в копию базы, стартую и пробую, ошибка сразу в первой же форме «Запросов» при нажатии на «обмен с утм».
И, в целом, непонятно где настройка выбора УТМ из имеющихся в рег.свед «настройки обмена с егаис», через который хочу запрос нечитаемых акцизок отправить.
{ОбщийМодуль.АМ_ИнтеграцияЕГАИС.Модуль(113)}: Поле объекта не обнаружено (ОтветМодуляЕГАИС)
СписокАдресов = РезультатОперации.ОтветМодуляЕГАИС;
(46) Здравствуйте! Приношу извинения: пока занят был поддержкой других публикаций. В ближайшее время проведу тесты на свежих версиях
(47) В этой розничной тестовой базе (полная копия боевой) убрал все настройки УТМ, кроме одного. В слепой надежде, что у вас обработка работает только в базах с одним утм (в комментах были ваши сообщения, что вы работали-тестили на базе с одним утм) — не помогло.
добрый день
скажите приходит ответ
Марки не прошли проверку
что я делаю неправельно
(49) Здравствуйте! Либо по переданным данным не найдена марка, либо марка была продана. Если запрашиваете данные по старым маркам, то вроде их можно было продавать до 1 сентября 2017 года (http://ppt.ru/news/132797)
(50)Для примера было взято 3 бутылки из ассортимента магазина. и у всех пишет марка не прошла проверку это в файловом варианте. А в клиент-серверном вообще только запрос передан и дальше движения нет.
в документе запрос акцизных марок, добавляю строку в которой завожу марку, в ней серия и номер, больше же ничего не нужно заполнять? и далее отправить в егаис?
(51) Тип, серия и номер должны быть заполнены. Возможно у них опять этот функционал недоступен. Попробую сегодня сам запросить, посмотрю, что да как. Вы на какой конфигурации работаете?
везде я использую Розница, редакция 2.2 (2.2.5.27)
где то август-сентябрь я накатил ваши доработки на копию рабочей базы и оно даже работало.
потом октябрь-ноябрь мы перенесли рабочею в клиент серверный вариант, далее накатил доработки, но сразу не проверил работу вашего функционала. недели 3-4 назад выяснилось что он остановился на этапе Запрос передан.
неделю назад я создал файловую копию и в ней на всей продукции Марка не прошла проверку
все мои манипуляции были сделаны в Розница, редакция 2.2 (2.2.5.27).
смутило то что сначала то работало, то на копия была удалена(((
везде я использую Розница, редакция 2.2 (2.2.5.27)
где то август-сентябрь я накатил ваши доработки на копию рабочей базы и оно даже работало.
потом октябрь-ноябрь мы перенесли рабочею в клиент серверный вариант, далее накатил доработки, но сразу не проверил работу вашего функционала. недели 3-4 назад выяснилось что он остановился на этапе Запрос передан.
неделю назад я создал файловую копию и в ней на всей продукции Марка не прошла проверку
все мои манипуляции были сделаны в Розница, редакция 2.2 (2.2.5.27).
смутило то что сначала то работало, то на копия была удалена(((
(52) Добрый день, ну что удалось проверить?
Установили ваш модуль. Но в разделе запросы акцизных марок при выполнении обмена с утм
выходит ошибка Метод объекта не обнаружен (Доступные транспортные модули). Конфигурация Розница 2.2.7.32
(56) В 2.2.7 уже есть типовой документ для запроса марок
(57) Спасибо