<?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='\
А можно выложить картинку какую-нибудь?
ага, интересно — мы по одному направлению идем…?
моя аотихоньку совершенствуется..
представление Монитора заказов для v7.7 ТиС 9.2 здесь:
http://www.infostart.ru/projects/?id=320
хотелось бы, чтобы авторк, как отметил Саппорт, картинки положили — охота сравнить… а то может я вылысыпыд изобретаю.. в 8-ке все уже есть…?
Ага, посмотрел. Уже понятнее с картинками…
В типовой УТ 10.2.9.2 вызвала ошибку {ВнешняяОбработка.МониторЗаказов}: Процедура или функция с указанным именем уже определена (ЗаполнитьТЧТовары)
2 shachneff — Исправил
В новой версии, кроме возможности анализировать заказы покупателей, появилась возможность выполнять некоторые действия с этими заказами — формировать заказ поставщику, массово закрывать или снимать резервы и размещения по выбранным заказам. Также появилась возможность отбирать заказы по номенклатурной группе, т.е. допустим выбрать все заказы в которых есть неотгруженные товары из группы «Алкоголь».
VitaliySm — продажей этого отчета занимешься ? …очень заинтересовало, но надо кое что подправить. — куплю от нее пароль за разумные деньги !
(2) 00лекс00 — у моей карточке есть контактные данные, почта и ICQ, все вопросы можно обсудить в привате
Кстати,раз уж вас интересует данная обработка, не забывайте отражать это в рейтинге, вам всёравно, а мне приятно:)
В новой версии добавлена возможность работы с выбранными заказами (снятие резервов, закрытие заказов, формирование заказа поставщику). При закрытии заказа программа предлагает указать причину закрытия. Любые действия выполняются только с теми заказами, которые отмечены галочкой. Структура подчиненности заказа перенесена на отдельную закладку, в целях оптимизации работы обработки структура формируется только при переходе на соответствующую закладку.
В отборе по статусам появилась возможность гибче настраивать параметры выборки, раньше статусы анализировались по условию «И», т.е. «Не отгруженные» «И» «Не оплаченные», теперь можно переключиться в режим «Не отгруженные» «ИЛИ» «Не оплаченные».
По умолчанию, при открытии обработки загружаются все не отработанные заказы по текущему пользователю.
Кстати в связи с тем, что обработка постепенно вырастает в коммерческий продукт, и уже есть люди готовые платить за неё, данная версия является органиченной, т.е. программа обрабатывает только первые 5 заказов удовлетворяющие указанным параметрам выборки.
По вопросам покупки обращайтесь пока ко мне, в дальнейшем в обработке появиться ссылка на сайт и компанию, которая будет заниматься продажей.
И не забудьте голосовать за эту обработку, если она вам понравилась:)
Исправил обнаруженные баги и наконец закончил описание (cм. справку).
Как говорится, нет предела совершенству и процессу исправления ошибок:) Немного подправленная, немного усовершенствованная версия с описанием и реестром изменений находится в архиве. Кстати не забываем голосовать:) По вопросам покупки пишите письма:)
Спасибо всем, кто голосовал за обработку. Предлагаю вашему вниманию новую версию. В версии 3.1 добавлен новый параметр анализа заказов — «Готовность заказа к отгрузке», а также исправлены обнаруженные ошибки и внесены некоторые изменения в интерфейс. Более подробное описание изменений можно найти в архиве. Кроме того, в демо версии изменено ограничение. Теперь показываются не первые 5 а первые 10 заказов.
Люди, а скажите пожалуйста, зачем вы качаете старые версии обработки? неужели самая первая версия оказалась самой удачной? со всеми ошибками, недоработками? или главое что без ограничения?:-) И если она так пользуется спросом — голосуйте
Уважаемые, пишите пожалуйста свои комментарии по работе данной разработки. Такое ощущение, что либо никто ничего не понимает в работе обработки, либо наоборот всем всё понятно и полностью удовлетворяет
Предлагаю Вашему вниманию новую версию обработки «Монитор заказов»
Подробного перечня изменений пока нет, поэтому опишу вкратце:
• Добавлен механизм сохранения настроек отбора и параметров формы (подробнее в форме «Сохранение настроек» во встроенной справке);
• Контроль остатков только по доступным складам пользователя;
• Появилась информация о том насколько просрочена оплата и/или отгрузка по заказу
• Немного изменился интерфейс
• В тч Товары появилось новое поле – Свободный остаток (ожидаемый) – то количество товара, что уже заказано поставщикам и не распределено по заказам покупателей, т.е. по приходу попадет в свободный остаток
• В тч ЗаказыСписок появилась колонка в которой выводится информация о том, есть ли по заказу документ «Закрытие заказов покупателей»
• Добавлена возможность в процедурах обработки заказов (формирование заказа поставщику, оформление реализации) использовать только указанную в параметрах отбора номенклатуру или группу
Кроме того проведена переработка функционала для совместимости с УПП на реальной базе в реальных условиях.
У меня не типовая УТ 8.0, но вот, что обнаружил: показывает ошибочные взаиморасчёты, когда на основании реализации заведён документ планируемого поступления ден. средств. Фактически планируемая сумма воспринимается как оплата. Соттветственно, по взаиморасчётам монитор показывает переплату.
Возможен ли вывод полного списка заказов за период без отбора по менеджеру и другим критериям, если их за этот период более 10? Как ни пытался ничего не получилось.
2 SalOne: Работа с полным списком заказов возможна в полной версии обработки «Монитор заказов».
Было бы неплохо если в параметрах выборки Номенклатуру можно было бы выбирать иерархией, списком и т.д.
to looxxx: в параметрах выборки можно выбирать элемент или группу справочника Номенклату, просто это явно не показано. Насчет списка, нужно подумать
Версия 3.5.2 предназначена для работы в конфигурации «Управление торговлей » 10.3 , платформа 8.1. Несмотря на то, что обработка имеет статус бета-версии, все функции работают. Кардинальных изменений в дизайне нет, однако полностью переписаны все алгоритмы, переработаны все запросы. Работа обработки построена на базе построителя отчета, что в свою очередь дает более расширенные возможности отбора, по сравнению с предыдущими версиями.
Скажите пожалуйста. кем была разработана эта обработка?
(2 asu05) Обработка была разработана мной. За основу, в самом начале, была взята обработка компании РГ-Софт (адрес обработки:http://rg-soft.ru/develop/lz/lz_mz.php ), причем взята была именно идея (из описания), т.к. саму обработку я не видел. Об этом я писал ранее. Но в отличии от прототипа, в свою версию я заложил возможность не просто в удобном виде смотреть информацию по заказам, но и обрабатывать списки заказов.
только непонятно чем вызван вопрос. Обычно если вылаживается чужая работа, это пишется в описании.
А можно как-нибудь посмотреть модуль объекта (без пароля)?
Я делаю обработку, с похожей процедурой,(очень удобной) как в вашей обработке МониторЗаказов, где надо вывести все подчиненные документы в одном табличном поле, при активизации строки в другом табличном поле. У меня эта процедура ни как не получается, не могли бы вы мне подсказать?..хоть что то… р.s. я просто начинающий программист 🙂
(2 asu05) пишите в icq.
в базе около 15000 заказов покупателей, и 10000 заказов поставщику. заказы закрыты документами закрытие заказов покупателей и поставщику соответственно. ну т.е. они в базе остались, но закрыты. для теста обработки сделал уже более поздней датой заказ покупателя, по нему заказ поставщику и так далее. так вот, обработка буквально на каждый «чих» (применение отбора, навигация по списку заказов) подвисает на время (около минуты), ну и потом все ок. Таким образом, если нам «в наследство» досталось большое количество заказов, то вместо удобства получаем геморрой. Я правильно понял, или я что-то делаю не так ?
Спасибо.
пардон. тестил на тестовой базе, файловой, тормозила — смерть. на рабочей скульной попробовал — все ок. не «летает», конечно, но учитывая сколько она, видимо, делает там запросов — работать можно. вопросы: кроме закрытого модуля, какие ограничения-то ??
(2 am_i_evil) какой версией вы пользуетесь? Кроме закрытого модуля есть ещё ограничение количества заказов.
красиво. функциональности маловато правда.
Монитор заказов ver 3.5.2b для УТ 10.3
при нажатии на сформировать заказ поставщику на 50% :
{ВнешняяОбработка.МониторЗаказов35(1126)}: Поле объекта не обнаружено (ЗаказПокупателя)
2 NewNick — какого функционала по вашему не хватает?
А я что то так и не понял, как он делает отбор заказов….((((
(39) что конкретно не понял?
ну у меня вываливает заказы почти полугодовой давности, и то только два, не могу понять каким образом она делает отбор документов, если делаеться отбор по конкретному значению, то все ништяк, а если хочешь чтобы она все заказы за месяц вывалила, вообще не чего не получаешь…
а да забыл сказать что тестил вот эту версию «Монитор заказов ver 3.5b для УТ 10.2» на УТ 10,2
Я так понял разработчики в запросе ограничились первыми 10-тью записями.
Потому там не все заказы, а только те которые формируют первые 10 движений регистра «Заказы покупателей».
За остальное наверное просят денежку. Но обработка рульная 😉
В новой версии исправлены все известные ошибки, оптимизированы некоторые механизмы. Есть возможность менять размер таб.части.
В последней Версии {ВнешняяОбработка.МониторЗаказовПокупателей}: Переменная с указанным именем уже определена (глТекущийПользователь)
К (45) — КАКАЯ КОНФИГУРАЦИЯ И РЕЛИЗ?
УТ 10.3.3.1
на УТ 10.3.5 тестил, всё нормально было.
Для моей конфиги надо просто эту переменную закоментировать в запароленном модуле
(49) скачай ещё раз, я обновил.
При использовании обработки «Монитор заказов ver 3.5.3 для УТ 10.3, УТдУ 2.3, УТПдУ, УПП 1.2» в конфигурации «Управление торговым предприятием для Украины (1.0.8.4)» статус оплаты всех заказов «Не оплачено» и при переходе на закладку «Структура подчиненности заказа» вываливается ошибка:
{ВнешняяОбработка.МониторЗаказовПокупателей(2329)}: Поле объекта не обнаружено (УпаковочныйЛист)
В обработке некорректно рассчитываются суммы взаиморасчетов. Например, если по одному заказу выдано расходником контрагенту не указанному в заказе, а потом этот долг по этому заказу перенесен (Корректировка долга), то суммы взаиморасчетов увеличиваются (данные не совпадают с отчетами). Необходимо запросом вытаскивать информацию о взаиморасчетах с конкретным контрагентом по конкретному заказу, а не просто по заказу в целом.
Пробовал обработку v3.5.b и v3.5.3 для УТ 10.3, в последней почему то все заказы неоплачены. (((
Хотелось, чтобы выводился полный список заказов…
(54) — смотри ответ в вверху страницы — (43)
Что добавлено в релизе за 8.12.09 ?
(56) в каком релизе?
В обновлении за 8.12.09
1. Обработка открывалась минут 3-5
2. Перемещение от одной строки к другой строке окала 3-5 минут
3. Продажа в тихушку через личку?
4. Если ограничено 10 то обработка платная, то где цена и статус что в магазине?
(59) а какую версию обработки ты скачал? такие параметры открытия и перемещения строк могли быть на каких-то устаревших версиях.
(60) скачал по основной кнопке 3.5.3
скачал версию 3.5.3, попробовал на версии УТ 10.3.9.4, появилось только 10 заказов, если это ограничение, то в какой версии его нет??
Старые (до 3.5.3) тормозят нещадно, такое ощущение в процессе обработки — куча ненужного кода (запросов) че-то делают, и 80% процессинга — пшик.
надо посмотреть
Какая версия подойдёт для УПП 1.3 ?
Вот такую обработку я давно искал, спасибо автору
Плюс в карму однозначно
(67) dufrein, думаю подойдет, но проверить не могу, ибо нет у меня такой конфигурации 🙁
Скачал Монитор заказов ver 3.5.3 для УТ 10.3. У меня УТ 10.3, 1С 8.2. Платежки к заказам прикреплены, а в мониторе показывает, что оплаты по заказам нет и отгружен излишек. Что не так, подскажите, пожалуйста!
В остальном вроде все неплохо сделано.
Автору огромная благодарность! Только у меня один вопрос, почему оплата отслеживается только по приходным кассовым ордерам, а по платежным поручениям нет? Или это у меня что-то не так? Хотя в платежном поручении документ заказ стоит.
А разве это не стандартная обработка — рабочий стол менеджера по закупкам?
(33) как можно получить доступ к модулю объекта?
3.5.3 не видит оплаты …
Не красиво прятать код, тем более прятать там подвох.
Продавать изделие в котором прописано получать результат только первых 10………….
Жульничество…………
Совет всем, если не уверены что сможете исправить косяки этого разработчика, не скачивайте!