<?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='\
Внешний отчет для УПП (8.2), позволяющий видеть движения по регистрам «Товары на складах» и «Партии товаров на складах» в разрезе регистратора и позволяющий определить момент расхождения в учете по складам и партиям.
Перейти к публикации
А регистр ТоварыВРознице не анализируется?
Получается, если поступление на розничный возникает разница.
(1) Elenkina, Сорри, занимаемся производством. Торговли нет. Попробовать подключить регистр «Товары в рознице» (для вас)?
Мне очень понравилось. Корректировки регистров сделали, выровняли и вперед!!! Спасибо.
на сколько я знаю разница в движениях по товарам на складах и по партиям товаров на складах возникает только при виде движения расход.
(4) echo77, В твоих словах есть логика, но в реальности — и при приходе тоже может возникнуть разница.
Смотри Отчет02 — почему-то не сформировались движения по партиям при поступлении товаров.
Также посмотри Отчет03 — разница сформировалась при возврате переданных товаров. Причем, передача товаров была произведена без расхождения по партиям.
(3)Именно для этого отчет и создан — для удобства обнаружения косяков.
Вопрос а в Управлении торговли этот отчет будет работать? Там было бы это очень актуально. У нас товародвижение очень активное (и поступления, и возвраты, и закрытия приходных ордеров, и реализация и работа задним числом)
(7) mig090874, В УТ 10.3 возможно и будет работать. Надо пробовать. У меня конфигурации УТ нет — проверить не могу.
Отчет создан средствами СКД, поэтому, думаю, нет большой проблему заточить его под УТ.
Как скачаю, проверю. Пока не хватает 0,3.
В УТ 10.3 нормально работает.
Можно было бы вынести настройки в быстрый доступ, а также склад, чтобы каждый раз не заходить в настройки. Для рядовых пользователей это было бы проще. А вообще хороший отчет, сразу можно видеть какие партии не «ушли» со склада
(10) SpartakM, Спасибо за проверку работоспособности в УТ.
С быстрыми настройками не заморачивался, т.к. структура отчета еще не установилась. Дойдут руки — доведу до ума.
Скачать не могу, но очень интересует. Вопрос: как отработает партия сформированная Приходным ордером и закрыта приходной накладной. И еще — Корректировка записей регистра отображается?
Отчет конечно очень полезен!!! щас вот балы заработаю и точно скачаю и посмотрю. Потом еще обязательно отпишусь. но судя по комментариям видимо большинству он все таки чем то помог. Это уже есть хорошо!!!
Все сижу и жду когда же мы наконец будем все делать по всем трем учетам одинаково дабы не было вообще расхождений!!!))))
Вопрос: как отработает партия сформированная Приходным ордером и закрыта приходной накладной.
Отчет формируется по регистратору. Показывает, как и «Ведомость по партиям», только «Приходный ордер».
Если «Ведомость по партиям» сформировать по документам оприходования, то будут видны и ордер и накладная (приход-расход: оборот = 0)
(см.скрины)
Возможно, если будет косяк, покажет что-то другое.
Вопрос: Корректировка записей регистра отображается?
Смотри пример отображения «Корректировки записей регистра»
Корректировка сформирована как сторнирование документа «Перемещение…», поэтому есть и приход и расход.
Сейчас проверим на УПП для Украины. По описаниям и назначению отчет очень вкусненький 🙂
(18) miha.e82, Хорошо.
Скачивается без проблем? А то вчера файл скачивался без расширения.
Работаю в Комплексной автоматизации в РАУЗ. Ведется сложный учет НДС, задействован РН «НДС по партиям запасов». Не до конца разбираюсь в механизме списания по этому регистру. Может Вам приходилось.
Вопросы: можно ли сделать такой отчет и для сравнения регистров «Товары на складах» и «НДС по партиям запасов»?
Попробовал на Упраление торговлей 10.3. Работает. Спасибо большое отличный отчет.
Большое спасибо! У самого был подобный отчет, но только для консоли запросов. Для меня хватало, а тут потребовалось и для бухгалтеров. Самому дорисовывать не хватает времени, так что еще раз спасибо за наглядный отчет!
Вопросы: можно ли сделать такой отчет и для сравнения регистров «Товары на складах» и «НДС по партиям запасов»?
Сравнить эти регистры можно. Только как их сравнивать? «Товары на складах» учитывают только количество, а «НДС партий товаров» — Количество, Сумму и сумму НДС. Уточни задачу — как ты обычно ищешь косяки в расхождении показателей?
Может что-то я не понимаю. Попробовал отчет в Управление торговлей 10.3. Отчет показывает, что все хорошо нет никаких расхождений. Закручиваю стандартный отчет Стоимость по партиям показывает, что у меня по многим партиям перерасход. Сплошная краснота.
(24) mig090874, Отчет сравнивает Склад и Партии по количеству.
С УТ не работаю. В УПП отчет «Стоимость по партиям» отсутствует, поэтому проверить не могу.
Твой отчет показывает что — перерасход по количеству? Т.е. какие-то партии списываются (расходуются) несколько раз? Обычно наоборот — по складу списывается, а партии — нет (когда документы перепроводятся задним числом).
Спасибо большое, то что нужно!
А сравниваются ли давальческие товары, по ним расход по партиям делает один документ, а товары на складах другой.
(27) rintik, Отчет показывает информацию по регистрам «Товары на складах» и «Партии товаров на складах». Если документы на давальческие товары делают движения по этим регистрам, то будут показаны.
Для сравнения регистров «Товары переданные» и «Партии товаров переданные» необходимо делать другой отчет.
А по каким регистрам поступает давальческое сырье на переработку?
ммм, «Партии товаров переданные» — если не ошибаюсь это реализация по договору комиссии. Я не корректно написал — «давальческие товары» — имеется ввиду продукция произведенная из давальческого сырья. Документ «Реализация услуг по переработке» делает движения по регистру «Партии товаров на складах», регистр «Товары на складах» двигается документом «Передача товаров». Я скачивал и доработал под УПП для себя обработкуhttp://infostart.ru/public/77000/ (добавил сравнения по трем регистрам партий (упр, бух и НУ) часто используется теперь бухами, но с док «Передача товаров» ничего не исправлял, просто однозначного соединения этих двух документов кроме заказа и количества я не нашел. Думал мож здесь есть решение.
(29) rintik, «Партии товаров переданные» — это материалы переданные переработчику.
Если для переработки давальческого сырья использовать схему (скрин1), то по отчету можно увидеть движения по складу и партии (скрин2) — расхождение партий Получения дав.сырья и Списания по требованию, и расхождение партий Передачи продукции заказчику и Реализации услуг по переработке.
Так же как и (22) скачаю, плюс поставлю в любом случае.
У нас тоже есть подобный отчет, но лн настолько навороченый что пользователи так и не научились его разгадывать, а этот отчет пойдет на УРА! Спасибо, плюс поставил
Качаю, надеюсь,- после праздником легче будет выловить ошибки, спасибо.
Автору рекомендую, если отчет предназначен для выявления и отображения каких-либо расхождений — выделите в отчете эти расхождения для большей наглядности при помощи условного оформления строк или ячеек отчета. Ну и также, как и было сказано ранее — неплохо бы вынести панель отборов СКД на форму отчета, чтобы пользователи не лазили в его настройки, а то отчет кажется не полностью доделанным.
Проверил на УПП. Все Ок. Отчет очень понравился. Сам бы морочился дня два. А так автору респект. Полезно давать этим отчетом по морде бухам, которые не читают сообщения системы при списании товара в РН. Спс за отчет.
Спасибо, тоже пригодился!
как мне кажется — ничего особенного. обычный отчет сверки данных
Спасибо, пригодилось!
(37) Именно так , но очень полезный отчет. Это как нож или зубочистка — все просто кусок заточенного и щепка. Самому делать в лом а в хозяйстве пригодится. А учитывая уровень большинства бух — то для них это вообще откровение…
для них вообще откровение — какие еще регистры????!!! 😉
Нужная вещь! Спасибо огромное. У нас время от времени такая ситуация возникает. Пришлось полуавтоматически сравнивать. А здесь- готовое решение
Спасибо! в партионном учете необходимая вещь. быстро и удобно выловить «косяки»
Спасибо! Нужный отчет! У нас тоже иногда возникает такое, что регистры расходятся.
(34) Zigfridish, Последняя колонка отчета называется Разность, в которой содержится сумма расхождений.
Становишься в эту колонку. Жмешь Shift-Up. Попадаешь в первую ячейку с расхождением и анализируешь.
Цветом выделяются отрицательные числа в ячейках.
Панель отборов пока не нарисовал. Есть другие дела. А для работы — то что есть, уже можно использовать.
(37) Kamikadze, Ты прав — ничего особенного. Но того что нужно было — нигде не нашел. Есть аналоги, но они требуют доработки под свои нужды, а нарушения авторских прав не приветствуются и сурово наказываются. Велосипеды тоже до сих пор изобретаются, причем все совершеннее, чему, как известно, нет предела.
Отчет отличный! Вот только вопрос а как учитывается комплектация, и возвраты от покупателей?
Еще бы прикрепить туда стоимостную оценку, например что бы проверять себестоимость и закупочные цены. таким образом можно некоторые косяки отловить
Проверил на УТ 10.3. Всё работает отлично. Удобно, просто и наглядно. Поставлю главному бухгалтеру.
Есть маленькое пожелание/предложение, зафиксировать заголовок. Когда его нет в поле видимости, приходится считать колонки, что бы понять где приход а где расход.
Огромное спасибо за отчет, установил на УПП. Многие возникшие вопросы по ведению учета решил в обсуждении данного отчета другими пользователями.
Спасибо! Класный отчет! Пользовался подобным через консоль запросов. Все хотел сделать в виде отчета.
А тут — все уже сделано.
А будет ли работать данный отчет под Управление торговым предприятием?
(53) kosten, Что-то я не знаю такой конфигурации
(54) спасибо уже не требуется, сделал аналогичный отчет для УТП и УТ (украинские конфигурации) используя встроенный универсальный отчет.http://infostart.ru/public/118128/
А с помощью данного отчета возможно выявить расхождение данных по регистрам (Партии товаров на складах УУ БУ НУ, Плану счетов БУ НУ, Ндс по партиям запасов, Товарам организаций, Товаров на складах, Свободных остатков?
(57) Komkovi, С помощью этого отчета требуемые расхождения выявить нельзя.
Я так понимаю он не всегда корректно работает? для обычной УПП 1.2 подойдет?
мне кстати более важно сравнение БУ и УУ по партиям. может кто видел такой отчет?
Спасибо отчет пригодился
Отбор работает как-то странно, если нужны например только строки с расхождениями
(62) svbel85, Подобным отбором не рекомендую пользоваться. Этот режим не отрабатывался — быстрое решение не нашлось.
Отчет отличный! Спасибо!