<?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='\
Малехо кривовато отображает картинки, т.к. не соблюдаются пропорции исходного изображения, а так все отлично работает 🙂
Для тех у кого размер картинок по высоте и по ширине одинаковы проблем не возникнет вообще.
Да, соблюсти бы пропорции — было бы супер.
в конфигураторе откройте обработку и в макете прайса в ячейке с картинкой в свойствах поставтье размер картинки пропорционально, делов на минуту
(3) поправил
(4)
там ещё есть косячок
картинка к концу прайса сьезжает пикселей на 7
вначале это незаметно но чем дальше тем больше сьезжает
Прикольно)Спасибо за доработку! 🙂
Спасибо за обработку. Что нужно сделать, чтобы картинка вставлялась только для каждого наименование товара, а не для каждого наименования и для каждой характеристики этого наименования, а то просто жесть получается. И еще там где нет картинки, обработчик вставляет рамочку под картинку, при этом прайс получается объемным, да и вообще выглядит не эстетично. Я подозреваю что это простые вопросы, но так как я не бум-бум в этом деле, поэтому спрашиваю)))
Спасибо за полезную программку. Не аодскажете как сделать, чтобы ячейка где нет картинки была меньшего размера. Очень надо. Когда формирую EXEL документ, то он получается огромного размера(в мегабайтах).
Скажите а как загрузить это приложение у мея не получается. 😳
Здравствуйте помогите пожалуйста. Очень долго пользовались данной программкой, но вот на прошлой неделе нам поменяли релиз в «УПРАВЛЕНИИ ТОРГОВЛЕЙ» и теперь у нас «Управление торговлей»8.2 , редакция 10.3 (10.3.13.2) и это приложение не работает. Что делать?????? у меня истерика начинается и надо это срочно срочно срочно… ПОМОГИТЕЕЕ.
Программа выдает ответ: Ошибка загрузки документа. Внешняя обработка не может быть прочитана текущей версией программы.
(11) Не решили проблему? На самом деле проблема не стОит истерик и выеденного за завтраком яйца.
Достаточно открыть обработку в конфигураторе, согласиться с предложением программы на конвертацию. PROFIT!!!
(9) бухгалтер28, можно просто перетащить файл обработки на открытую 1с-ку или в 1с выбрать Файл — Открыть и найти данную обработку.
P.S.:
Спасибо автору за обработку!:)
То что нужно. У кого не работает — открываем через конфигуратор, обновляем и сохраняем
Только не пойму, как поменять сам шаблон прайса. И можно ли вообще?
(15) cafeit,
В конфигураторе — закладка «Макеты», там макет, его можно менять
(16) altair1, спасибо
Благодарю!
Под свои задачи немного доработать пришлось. Разработка понравилась. Спасибо.
Последнее время очень востребованная обработка для торгашей! Мне очень помогла, поднастроил ее под конфиг. «1С:Управление торговлей 8 для Украины» (платформа 8.2). Плюс.
Давно искал большое спасибо автору
Спасибо автору, активно пользуюсь.
Спасибо! Помогло очень!
Хорошая обработка, но я ее не могу сачать… 🙁
Давно искал большое спасибо автору, активно используем в работе. Под торговлю алкоголем и другие задачи немного пришлось доработать. Отличная обработка. Спасибо. Плюсанул.
Плюсанул. Спасибо 🙂
а под какой конфигурацией тестировалась крайний раз?
А под комплексную автоматизацию адаптировать возможно?
Спасибо! Плюсанул.
Плюс, однозначно. Поскольку просто, наглядно и понятно. С тонким клиентом пришлось повозиться.
Хорошая и полезная обработка, все просто и наглядно. Спасибо автору.
Обработка хорошая, с небольшим допилом пользуемся. Однако актуален вопрос уменьшения размера файла прайса при сохранении в Excel. Может есть идеи как уменьшить размер картинок при формировании прайса?
Есть ошибка.
При выборе «Использовать свойства и категории» и отбору по категориям выпадает ошибка: {ВнешняяОбработка.ПечатьПрайсЛиста.МодульОбъекта(66)}: Ошибка при получении значения атрибута контекста (Результат)
РезультатЗапроса = ПостроительОтчета.Результат;
по причине:
{(242, 2)}: В запросе с предложением РАЗЛИЧНЫЕ все поля, по которым происходит упорядочивание, должны присутствовать в списке выборки
<<?>>ЗапросПрайс.ЦеноваяГруппа.Порядок,
Есть ли возможность редактировать размер изображения?
1 редактировать размер в мегабайтах?
2 редактировать размер ячейки в прайсе
и у номенклатур, у которых нет картинки получается высокая строка?
Написано, что бесплатно, а при попытке скачать деньги просит 🙁
Как скачать эту обработку, не совсем разобрался на Вашем сайте, вроде же написано что БЕСПЛАТНО!?
При нажатии на кнопку, выдает заявку на установку, вообще таки сам могу установить, как скачать!???
Неплохо, только вот бух жалуется, что не может группу выбрать для отбора. Только конкретный товар можно выбрать. Пробует выбрать товар и задать параметр «В группе» и все равно формируется прайс из одного этого конкретного товара. Может она что-то не так делает? Как можно в отбор группу товаров выбрать?
Вадим, приветствую! подскажите, пожалуйста, а что это за пустое поле? Как его убрать? См. вложение…
Заранее благодарен за ответ!