<?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='\
«Остатки и доступность» показывает по одной позиции из списка табличной части или по всем ?
(1)
по выбранной позиции из списка тч
(2)
Сергей, а нет ли возможности, объединить цены и остатки в одном окне?.
(3) Опишите ваше представление подробнее..
Объединить вполне можно, только это казалось лишним — есть стандартная обработка «состояние обеспечения» или «Действия» в стоке из которых можно много увидеть по остаткам.
А если нужно реально подробно посмотреть остатки и резервы по всем складам и по всем характеристикам, то лучше типового отчета не найти…
(4)
1. «Показать цены» — я так понимаю это окно откроется довольно таки быстро, так как не формирует типовой отчет
а вот:
2. «Остатки и доступность» — открывает типовой отчет «Остатки и доступность товаров» по номенклатуре — формирует отчет через определенное время.
Например у нас операторы и им надо быстро посмотреть закуп/продажная цена и остаток.
Если бы вывести доп. колонку Остатки в 1. «Показать цены» было бы очень оперативно и быстро!
При подключении к УТ 11.4.1.241 ругается…..можно поправить?
(6) на 11.4 еще не ставил, поправлю под нее отпишу
можно подкллючить к «ФормаДокументаРМК» чека ККМ ?
вопросы сняты.
Управление торговлей, редакция 11 (11.4.1.261) (http://v8.1c.ru/trade/)
http://www.1c.ru)
Copyright © ООО «1С-Софт», 2003-2017. Все права защищены
(
Расширение конфигурации: Остатки и цены в табличной части товары [УТ11] (1.1.2)
Подключил расширение, а команд не вижу. Может не там смотрю? Где смотреть?
(10) перепечатывать описание не буду.. Контекстное меню — это правой кнопкой мыши по строке тч «Товары».
Управление торговлей, редакция 11 (11.4.2.144)
Не подключилась через расширение . 🙁 . Подскажите как исправить ошибку ?
(12) обновленный файл отправил в личку.
Управление торговлей, редакция 11 (11.4.2.144) подключил расширение, все работает. Остатки показаны на дату документа, рекомендую изменить на текущее время, так как именно это значение нужно большинству пользователей. Или сделать переключатель: текущее времявремя документа.
А в форме списка номенклатуры (не из подбора) такую бы возможность сделать реально?
(15) да, делал расширенную форму списка с такой штукой по просьбе клиента, но это будет работать только по товарам без характеристик.
Да и смысл теряется — остатки и цены и так есть в форме списка.
Управление торговлей, редакция 11 (11.3.4.93) Расширение не добавляется в меню документов перемещения — в приниципе для этого и нужно.
В документ закупки — добавляется.
А серии возможно прикрутить?
(18) возможно, уточню напишу в личку
Сегодня случайно зашел в данную публикацию и увидел, что мои пожелания давным давно выполнены и даже больше. Скачал обновление, все прекрасно работает на 1С:Предприятие 8.3 (8.3.13.1513) Управление торговлей, редакция 11 (11.4.5.143)
Просьба к автору — когда выкладываете обновление, пишите об этом в комментариях, обработка нам очень полезна и хотелось бы всегда иметь информацию о новой версии.
Для Чека ККМ можно сделать?
(21) ок, добавлю чек ккм, отпишу в комментариях
(22) Еще бы добавить в заказ поставщику и заказ на перемещение.
(24) могли бы все это не вставлять… завтра обновлю
Добрый день,
Сейчас тестируя другую Вашу разработку, пришел к выводу, что хотелось бы видеть в Остатках и доступность, четыре колонки: «Остаток», «Отгружается», «Резерв», «Доступно»
УТ 11.4, Если есть товар который в данный момент отгружается, то не правильно отображаются остатки «В Наличии»
(28) вроде этот вопрос мы с вами обговаривали.
Сделано по логике типовой конфигурации — именно так отображается в подборе товаров.
Я и думал, что вы тут поправите, а в штрихкод-информере оставите как есть, добавив «доступно»,http://forum.infostart.ru/forum15/topic204919/message2207071/#message2207071
Отчет «Остатки и доступность» правильно отображает
(30) Логика везде должна быть одинакова, чтобы не сбивать с толку. В информере полностью переписан запрос остатков.
Сделаю пару примеров на выходных и протестирую в обоих приложениях.
(28) Еще раз проверил вывод остатков.
Сейчас выводится 3 колонками — «В наличии», «Резерв», «Доступно» и выводится верно.
В отчете «Остатки и доступность» выводится более развернуто и добавляется колонка «Отгружается».
Если товар отгружается, то он уже не попадает в колонку «В наличии».
(33) Если товар отгружается то в отчёте он попадает в колонку «В наличии»
Добрый день, обновился до 1С:Предприятие 8.3 (8.3.15.1700), Управление торговлей, редакция 11 (11.4.10.57)
При создании документа Чек ККМ выходит ошибка:
Имя не уникально
{ОстаткиИЦеныПоКоманде Обработка.се_ОстаткиЦеныНоменклатуры.МодульМенеджера(8)}: НоваяКоманда = Форма.Команды.Добавить(«_ПоказатьЦены»);
{ЖурналДокументов.ЧекиККМ.Форма.ФормаСписка.Форма(346)}: ОткрытьФорму(ИмяОткрываемойФормы, ПараметрыОткрытияФормы);
по причине:
Имя не уникально
(35)
{ОстаткиИЦеныПоКоманде Обработка.се_ОстаткиЦеныНоменклатуры.МодульМенеджера(8)}: НоваяКоманда = Форма.Команды.Добавить(«_ПоказатьЦены»);
{ЖурналДокументов.ЧекиККМ.Форма.ФормаСписка.Форма(346)}: ОткрытьФорму(ИмяОткрываемойФормы, ПараметрыОткрытияФормы);
Добрый. Посмотрел быстрым взглядом — косяк в типовой — в форме чека ККМ два раза вызывается
Завтра обновлю расширение.