<?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='\
Если не ошибаюсь ошибка в запросе:
В первой таблице вложенного запроса в поле характеристика указана номенклатура.
А так хороший отчет, вот только зачем модуль закрывать я не понимаю……
Geza, спасибо, действительно вместо характеристики выводилась номенклатура. Исправленную версию закачал.
ну и как это посмотреть? код закрыт, по дате ограничение. одни сплошные всплывающие окна а результата ноль.
am_i_evil Пожалуйста — тестируйте. Разработки обновлены. Период действия расширен.
Также выложен новый отчет, который работает в новой редакции Управление торговлей 10.3 под 1С:Предприятие 8.1
Для старых редакций, но на платформе 8.1 — использовать версию 2.2, предварительно сконвертировав ее под платформу 8.1.
Обновите отчет. Не могу протестировать, демо период закончился.
Почему-то в колонке «Чистая прибыль» указываются данные только, в том случае если была затрата, а если нет то пусто, хотя валовая прибуль присутствует.
(6) Вроде все выводится. Проверяйте.
Не открывается в УТ 8,1
(8) А какая ошибка? Какая редакция УТ 10.2 или 10.3 ?
Не открывается в УТ 8.1 Редакция 10.3 Ругается на версию программы…
(10) Вы скачали версию для 8.0. Скачивайте для верси 8.1
http://infostart.ru/public/14500/files/
Скиньте на мыло, кому не сложно! romashovr@mail.ru
Для 8.1 скиньте, плиз, на romashovr@mail.ru. Заранее спасибо
Что-то у меня совсем не открывается, расширение .epf?
Спасибо работает
Спасибо, на УТ 11 пока переходить не собираемся. Так что будем использовать.
спасибо, очень помогло
Ну вот как всегда, зарабатываешь балы. мучаешься, ищешь то что тебе нужно. Находишь Тему где написано что отчет под УТ. качаешь, и вот на тебе:
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Переменная не определена (глТекущийПользователь)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ЗаполнитьПредставленияПолей)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ОчиститьДополнительныеПоляПостроителя)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ЗаполнитьОтбор)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ЗначениеНеЗаполнено)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ПолучитьЗначениеПоУмолчанию)
(23) Какая версия конфигурации? Вверху указано, что для 10.3
почему автор сделал ограничил дату аж 2009 годом, ну хоть бы январем 12ого ограничился )
Комплексная 1.1.18.1
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Переменная не определена (глТекущийПользователь)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ЗаполнитьПредставленияПолей)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ОчиститьДополнительныеПоляПостроителя)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ЗаполнитьОтбор)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ЗначениеНеЗаполнено)
{ВнешняяОбработка.ВаловаяПрибыльСУчетомЗатрат.МодульОбъекта}: Процедура или функция с указанным именем не определена (ПолучитьЗначениеПоУмолчанию)
(26) Отчет только для для 1С:Управление торговлей 10.3 под платформу 8.0 и 8.1.
на УТ 10.3 работающей на платформе 8.2 в режиме совместимости будет работать?
дауж, мало того что ограничение по периоду стоит на 2009г., так ещё и код закрыт.. что за меркантильность необоснованная?
(28) (29) совсем забыл про эту обработку и не поэтому срок ограничен 2009 г. постараюсь в ближайшее время выложить ее с обновленным сроком ограничения.
Мда…
Можете пояснить, откуда вы собираете затраты по Реализациям?
(32) LegO, из регистра «Затраты», которые привязаны к заказу покупателя. При этом реализация должна быть привязана к этому же заказу.
Скачал, УТ 10.3 — Не работает. Может потому что все затраты я делаю — прочими затратами, или потому что на дворе 2014 год?
Добрый день , скажите а по документу поступления тоже номенклатура выходит ? Или только по реализациям и списаниям ?
Друзья, у меня «Управление торговлей», редакция 10.3 (10.3.18.4). Очень нужна эта доработка, но у меня нет возможности купить пакет за 18 000. Возможно ли ее как то приобрести отдельно? ottys@mail.ru
(36) ответил Вам на почту.