<?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='\
Планируется ли возможность отбора по группам номенклатуры?
Очень грустно что в 1с прайс лист стандартный очень кривой.
То что нету отбора по номенклатуре это делает этот прайс ненужным.
А можно поменять коды на артикулы в прайс, или совместно коды и артикулы
(1) corrambus, Отбор добавлен.
(2) Romankhv7, (4) fialka_55@mail.ru, Добавлен отбор и вывод кода и артикула.
Возможно ли добавить функцию выделения цветами товаров из новых поступлений? Например, синим выделяем товары, которые поступали на склад за последнюю неделю, а желтым выделяем новинки, которые были в этих поступлениях.
Будет ли отчет работать на УТ 11.2? Есть возможность вывода дополнительных реквизитов из номенклатуры?
(8) vvvalera,
Нет не работает на УТ 11.2 ошибка
Неверные параметры «Справочник.УпаковкиНоменклатуры.ПустаяСсылка»
КОГДА ЦеныНоменклатурыСрезПоследних.Упаковка = ЗНАЧЕНИЕ(<<?>>Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
В 11.2 изменили справочник УпаковкиНоменклатуры на УпаковкиЕдиницыИзмерения нужно заменить.
(9) comrade@mail.ru, Ошибка исправлена, теперь прайс работает в УТ 11.2
Некорректно отображает номенклатуру в группе верхнего уровня, если есть подгруппы.
(11) ua9,
Прошу более подробно пояснить что не работает, исправлю. (пишите в личку)
Привет. Помогите разобраться, вот такая ошибка при вызове.
{Обработка.ПрайсЛистУТ11Ориентир.Форма.Форма.Форма(690,20)}: Переменная не определена (УправлениеПечатью)
ТаблицаФорматов = <<?>>УправлениеПечатью.НастройкиФорматовСохраненияТабличногоДокумента();
{Обработка.ПрайсЛистУТ11Ориентир.Форма.Форма.Форма(715,78)}: Переменная не определена (ЭтотОбъект)
ПутьВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, <<?>>ЭтотОбъект.УникальныйИдентификатор);
{Обработка.ПрайсЛистУТ11Ориентир.Форма.Форма.Форма(733,76)}: Переменная не определена (ЭтотОбъект)
ПутьВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, <<?>>ЭтотОбъект.УникальныйИдентификатор);
Что это может значить?
(13) andrey-00,
Добрый день! Подскажите какая у вас конфигурация и какая версия платформы.
А печать прайса только через меню Файл??
И еще, можно ли подвязать данную обработку в ут 11 базовая?? чтобне вызывать ее постоянно через файл-открыть
{Форма.Форма.Форма(551,2)}: Ожидается оператор препроцессора
#<<?>>Область ОтправкаПоЭлПочте
{Форма.Форма.Форма(800,2)}: Ожидается оператор препроцессора
#<<?>>КонецОбласти
1С:Предприятие 8.2 (8.2.19.130)
Управление торговлей, редакция 11.1 (11.1.2.9) (http://v8.1c.ru/trade/)
http://www.1c.ru)
Copyright © ООО «1C», 2003-2013. Все права защищены
(
{Форма.Форма.Форма(715,78)}: Переменная не определена (ЭтотОбъект)
на», ЭтотОбъект); (Проверка: Тонкий клиент)
ПутьВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, <<?>>ЭтотОбъект.УникальныйИдентификатор); (Проверка: Сервер)
{Форма.Форма.Форма(733,76)}: Переменная не определена (ЭтотОбъект)
ПутьВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, <<?>>ЭтотОбъект.УникальныйИдентификатор); (Проверка: Сервер)
{Форма.Форма.Форма(556,29)}: Тип не определен (ОписаниеОповещения)
ОписаниеОповещения = Новый <<?>>ОписаниеОповещения(«ОтправитьПечатныеФормыПоПочтеНастройкаУчетнойЗаписиПредложе
ПОЧЕМУ ЭТО ПЛАТНАЯ ОБРАБОТКА ЕСЛИ ОНА СОДЕРЖИТ ОШИБКИ!?
(19) Rodnaya, Эта обработка написана для платформы 1С версии 8.3.
возможно добавление доп. реквизитов в колонки прайса?
(21) polo453, Нет добавление доп.реквизитов не предусмотрено, нужно дорабатывать.
Некорректно выводятся штрихкоды УТ11.2 (11.2.3.202). Если у номенклатуры несколько штрихкодов, например несколько упаковок , прайслист не учитывает единицы измерения и показывает первый попавшийся. Было бы неплохо, чтобы поиск штрихкода выполнялся бы с учетом упаковки и Характеристики
Остаток выводится с учетом резерва или без?
(24) Остаток выводится за минусом зарезервированного.
Здравствуйте, в формат docx список номенклатуры выводится с иерархией по группам? Как на скриншотах?
на 11,3,2,157 будет работать?
При выгрузке в ексель на 11.2 выдаёт ошибку — недопустимая строка с указанием класса.
Добавьте пожалуйста «Сохранить файл» и автоматический расчет суммы заказа! Спасибо!
(25)в таком случае неплохо бы настройку «выводить с учётом резервов и без».
И очень удобно, думаю, было бы стандартное отображение иерархии с возможностью сворачивания и разворачивания групп.
Ещё — количественные итоги по иерархии.
Хорошая красивая обработка. Скажите пожалуйста, как вывести столбец суммы наличия товара по складам? А то как то не хочется, чтобы клиенты видели названия складов. Или может возможно добавить галочку, чтобы выводились не склады, а общая сумма по выбранным складам. Спасибо
Подскажите как вывести товары с характеристиками?
Добрый день! Вывод характеристик планируется?
на 11.3 работает или нет ?
Вообще не нужный отчет еще и 2 р. стоит ни настроек ни характеристик аааа!!!!
Очень нехватает отбора по виду номенклатуры (не группе)!
(36) Отбор по видам номенклатуры добавлен
Спасибо.
Пользуюсь отчетом не как прайс-листом, а как совмещенным отчетом по товарам на складах + оценка стоимости.
Очень помогает для выявления несостыковок.
По этому еще пара пожеланий на будущее:
1. Неплохо было бы выводить в разрезе по складам не только количество, но и итоговую сумму (ща приходится делать это в excel).
2. Добавить колонку единиц измерения (хранения).
3. Иногда нужно вывести только отсутствующие товары.
4. Иногда только с ценой или без цены.
5. В идеале лучше иметь возможность выводить 4 варианта комбинаций пунктов 3 и 4:
— товары с остатками, но без цены;
— с ценой, но без остатков;
— с ценой и остатками;
— без цены и остатков;
Если бы реализовать эти плюшки, то вашпе не было бы цены вашему отчету!
Он бы шагнул далеко за конценцию прайс-листа даже, продвинутого! ))
скажите а можно как-нибудь сохранить в excel и чтобы отображались группировки? ну чтобы можно было ненужную группу например свернуть.
Имхо, без характеристик — это бесполезная вещь в УТ.
Добрый день, наличие выводится с детализацией по складам или без?
Мне нужны общие остатки(одной цифрой) по нескольким складам ваш отчет это позволяет?.
Скажите, а есть ли возможность сохранить ваш прайс в файл эксель на несколько отдельных листов (Лист1, Лист2, Лист3 и т.д. внутри одного файла эксель)?
Чтобы каждая группа номенклатуры выгружалась на отдельный лист?
(43) Нет такой возможности нет, нужно дорабатывать
Здравствуйте!
При попытке отправить прайс выдаётся ошибка «Индекс находится за границами массива».
Добрый день! Есть возможность рассылки прайс-листа на емейл по регламентному заданию?
(46) Добрый день! Такой возможности нет, требуется доработка.
учитывает скидки наценки?