<?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 ? и смогу ли я обойтись без покупки УТАП либо модуля обмена ЕГАИС какого-нибудь с инфостарта?
Пока обходимся стандартным функционалом УТ 11.
(2)
спасибо, если бы не ваша обработка вообще не задумался бы о том что в УТ все и так есть, нужны лишь небольшие доработки. Первая тестовая отгрузка прошла, немного доработал вашу обработку:
еще адреса погрузки отгрузки добавлю, посмотрим как полетит
КонецЕсли;//это для пива в кегах
(3) Рад помочь.
Под 11.4.3 доработаете?
Кто нибудь допиливал ввод Исходящей ТТН Егаис при ордерной системе?
(5) Обновил
Это печатная форма или что значит «Исходящей ТТН»? мне нужна ФОРМА справки к товарно-транспортной накладной на этиловый спирт, алкогольную и спиртосодержащую продукцию. Утверждена
постановлением Правительства РФ от 31.12.2005 N 864
(в редакции постановления Правительства РФ от 02.05.2012 N 422)
Это оно или нет?
(8) Это не печатная форма, а обработка создания документа.
(9) то есть сам ТТН в УТ есть, только на основании Реализации он «криво» заполняется, а так он заполняется всеми правильными полями?
(10) На основании реализации он вообще не заполняется. Поэтому и сделал обработку.
А если реализация не проведена, ТТН будет создаваться?
(12)Будет
Подскажите с ут 11.4.5 будет работать?
(14) да, работает.
Я может отстал от жизни.
1) Какое то время назад в УТ не было возможности создавать исходящие ТТН для продажи оптом. Сейчас это стало возможным?
2) Протестировал Управление торговлей: редакция 11.4.5.86. Там после проведения документа «Реализация» внизу появляется ссылка для создания ТТН ЕГАИС, по которой она создается и заполняется.
Это об опте речь или это для продажи юр. лицу в розницу как конечному потребителю?
Выходит что сделали этот функционал…
(17) На сайте итс по ЕГАИС начальный материал перелопатили. Убрали описание
алгоритма работы с продажами как розничными так и оптовыми как для Розницы так и для УТ. И материал не обновляют. Наощупь и методом тыка теперь приходится изучать. В дополнительной документации к дистрибутивам обновления тоже не видел описания изменений (может просмотрел, конечно). Даже звонил в службу поддержки по ЕГАИС всеобщую — и там ссылаются на то, что на ИТС описания нет.
А справку №1 не надо указывать в Исходящей ТТН? Или она автоматически из данных справки №2 берется?