<?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.1.14.72 (1.2.23.2) много ошибок. Напиши какая версия. Пока ничего не ставлю
(3) … НЕ переЖИВАЙ … у товариЩчЪа первая рАбота … пОддержи …
( насколько я знаю нажатие «+» и потом «-» — обнуляЕт оценку…)
… кОд открЫт …
… ЗАодно и потестировали … гдядишь товариЩчЪ и испрАвит …
… вОтАидеяЗамечательная …
(8) … точно … Рад за нЕго … ииии крАсиво всЁтаки …
… спАсибо gad_d … только подправь под кОмментарии … и удачи …
… вОт …
Однозначно +
Спасибо всем за отзывы. Буду благодарен за конструктивные замечания и пожелания.
(4) На УПП не проверялась, только на УТ.
(5) Ситуацию с возвратами поставщикам поправил. По возвратам покупателей должно быть все корректно.
(6) Ситуацию с датами поправил. На счет чеков, непонятно зачем вообще нужно проводить подобную проверку в течении текущего дня.
(12) если от заката до рассвета, то у вас целый световой день для технических работ )).
А если серьезно, то проверку имеет смысл проводить на момент, когда кассовые смены закрыты. Или есть какие предложения?
ох и любит же народ красивые цацки… афигеть !!!
респект 🙂
автор, при возможности, повтори это же и так же, но для УПП, плиз.
(или дай рекомендации, а то на УПП 1.2.9.2 проверка зависает намертво)
Отлично. Как раз сам о таком думал, а тут раз и есть. Подгоняю правда под УПП.
Просто супер, осталось только под упп подогнать, а в принципе огромный плюс.
Великолепная вещь
Хм… У меня в УТ 10.3 показывает в ошибке «Различия движений товаров по партиям и складам» один и тот же документ («Реализация товаров») в двух строчках.
В первой — Расход по складу 10 штук, Расход по партии 0 штук
Во второй — Расход по складу 0 штук, Расход по партии 10 штук
Обе строчки относятся к одному документу.
И так по очень многим документам «Реализация товаров»
Здравствуйте при запуске данного отчета появляется вот эта ошибка, что это может быть?
{ВнешняяОбработка.ЭкспрессПроверкаВеденияУчета(212,22)}: Переменная не определена (ОбщегоНазначения)
УчетнаяПолитика = <<?>>ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ТекДата, Отказ, Организация);
{ВнешняяОбработка.ЭкспрессПроверкаВеденияУчета(325,20)}: Переменная не определена (ОбщегоНазначения)
УчетнаяПолитика = <<?>>ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(ДатаНач, Отказ);
{ВнешняяОбработка.ЭкспрессПроверкаВеденияУчета(2946,4)}: Переменная не определена (ОбщегоНазначения)
<<?>>ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(), , ЗаголовокСообщения);
{ВнешняяОбработка.ЭкспрессПроверкаВеденияУчета(2955,4)}: Переменная не определена (ОбщегоНазначения)
<<?>>ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(), , ЗаголовокСообщения);
{ВнешняяОбработка.ЭкспрессПроверкаВеденияУчета(280,22)}: Переменная не определена (УчетНДС)
УпрощенныйУчетНДС = <<?>>УчетНДС.ПолучитьУПУпрощенныйУчетНДС(Организация, ДатаНач, УчетнаяПолитика);
(22) Упс. У вас в конфигурации отсутствует общий модуль «ОбщегоНазначения». Какой релиз конфигурации?
УТ 10.2.6.4 а Бух 1.6.17.4, УТ не обновляем потому что много там доработок и смысла нет переходить на новую версию. Что можно сделать в моей ситуации?
(24). Всё-таки переходить на новую версию. У нас до недавнего времени тоже УТ 10.2.13.1 с кучей доработок использовалась, тем не менее поднатужившись, добил конфу до 10.3.7.9. Как выяснилось, многие доработки легко и непринуждённо выносятся в подписки на события, внешние обработки, регламентные задания. Из уцелевших доработок оставил только реально необходимое, на «юзерские хотелки» просто забил.
(25) Слишком много денег вбухали в доработки, начальство не даст перейти, опять придется много отстегивать, поэтому уж как есть:(
(23) «У вас в конфигурации отсутствует общий модуль «ОбщегоНазначения». Что можно сделать?
однозначно +
на супер-переделанной конфе отработала без вылета +++
У меня почемуто выдал ошибку — Поступление товара без указания стоимости, а именно док.ВозвратТовараОтПокупателя идет без стоимости, хотя в самом доке все ок, цена и сумма стоит. Этот нормально???
ЗЫ. Прикол, запустил данную обработку в демке УТ — ошибок нашел больше, чем у меня 🙂
У меня в учетной политике отключена галка партионный учет по складам. Данная разработка некорректно показывает различия по остаткам на складах и партиям, ссылаясь на документы перемещение товаров, хотя данный вид документа движение по партиям не делает в моем случае.
В новую базу УТ внесли справочники и остатки до этого учет ввелся в другой базе.
Проверил обработкой выдает ошибки в Партионном учете.
Поступление товара без указание стоимости.В Возврате Товаров от Покупателей не указана стоимость товара, указываю в возврате документ партий, после этого документы возврата попадают в графу Различие движений по партиям и складам.
Логически получается правильно партия с прессуется, расход по складам с минусом значит на склад прибавилось.
Это обработка показывает не правильно или я что-то не так делаю ?
Спасибо, очень полезная вещь!
Классная обработка! Бухи в восторге)
удобно с чужой базой знакомиться
одно слово: отлично. Смущает только что с 2009 года не редактировалась. Или она идеальна? Или на базе ее создана новая обработка, как здесь не редко бывает, тогда поделитесь линком 🙂
Есть ли аналогичная обработка под 8.2?
(36) Если подразумевается 11 редакция торговли, то нет
(35) Конечно не идеальна :), но мне достаточно. Выложил версию посвежее, с вариантами для платформ 8.1 и 8.2.
(37) нет подразумевается платформа 8.2 и редакция УТ 10.3 (10.3.14.5). Пойдет?
(38) maxpostal, Пойдет.
Интересно, отработает на украинской конфигурации?
на молдавской работает!:)
спасибо!
я уже столько всяких разных обработок скачала но пока ни чего интересного … вроде читаешь об обработке то что нужно скачиваешь ставишь……… и не то …. Очень надеюсь что ваша обработка нам подойдет ))))
{ВнешняяОбработка.ЭкспрессПроверкаВеденияУчета(280,22)}: Переменная не определена (УчетНДС)
УпрощенныйУчетНДС = <<?>>УчетНДС.ПолучитьУПУпрощенныйУчетНДС(Организация, ДатаНач, УчетнаяПолитика);
Выдает эту ощибку что можно сделать????
что ни чего сделать нельзя??? (((
(44) Fialka88, уточните пожалуйста на какой конфигурации, платформе происходит описанная вами ошибка. Обработка изначально была предназначена для конфигурации «Управление торговлей, ред. 10.3». Работу с другими конфигурациями я не проверял.
Управление торговым предприятием редакция 1.0, (1.0.15.9)
(46) Fialka88, к сожалению вам эта обработка не подходит.
((( да я уже поняла … спасибо
Спасибо! огромное за такую наработку.. Такая должна быть во всех конфигурациях по умолчанию ! Может , что где-то и не так, пока не обнаружила, вот при всей моей дотошности ошибки , которые не видны отчетами, нашла .. еще раз большой респект.
интересно
нашла ошибочку — заказ был зарезервирован, затем был снят весь товар с резерва , но в заказе поставщика и в поступлении есть товар , вставший под контроль этого заказа , отчет сообщает, что надо отгрузить » со склада» (( а отгружено верно «из резерва» так как резерв лег через » поступление товаров и услуг»
(51) n_lintek, Так как вы описали операция вообще не должна идентифицироваться как ошибочная. Проверил на демо базе, все отработало корректно. Что у вас показывает отчет «Товары в резерве на складах» по этой позиции? Используются ли у вас характеристики, серии при резервировании?
Спасибо за отклик. У нас 1,0,5. Нет просто резервируем, без усложнений, но вот на КА 1,1,14,1 — точно есть такое (( в анализе по заказу все чисто, в отчете Анализ доступности товаров , тоже все чисто (( с какими настройками и группировками надо сделать Товары в резерве ?
Ой спс за обработку )) нашла , такое устроить )) резерв на одном складе , а отгруз на другом . анализ заказ ни чего не показывает в таком случае.. ну очень странно .. (( (( это действительно видно в резерве именно по этому товару!
gad_d, есть еще особенность в 1с , комплектующие под комплект можно резервировать, в документе «резервирование товаров» , созданный на основании заказа покупателя, заполняешь — размещением комплектующими для комплектов. Все они выходят в превышении над заказом в экспресс проверке ((, но при создании комплектации программа видит , весь этот товар зарезервирован и списывает из резерва! вот тут как посоветуете быть?
Спасибо, столько ошибок — теперь бухгалтер разбирается что с этим делать
(55) n_lintek, А что тут посоветуешь. Имейте в виду подобную ситуацию при анализе базы. Замечу, что экспресс проверка выявляет в учете точки на которые следует обратить внимание. Не обязательно эти точки — ошибки. «Это не баги, это фичи» )).
Да это понятно. спс, за ответ . Но нашла еще кое что . Есть продажа , по ней оформили возврат , в документе возврата не указана серия. (( хотя ссылки есть на документ реализации. Посмотрите , возможно внесете изменения )), так как в экспресс анализе такие ошибки не появляются вообще. А вообще все равно спасибо за обработку очень помогает)
Отличная вещь, буду усиленно юзать. Спасибо.
Подскажите пожалуйста, при сохранении отчета и попытки сохранить (пробовал во всех форматах, также пробовал изменять название файла) выходит ошибка: «Недопустимое имя файла».
http://v8.1c.ru/trade/)
http://www.1c.ru)
При попытке напечатать отчет выходит: «{Форма.Форма.Форма(162)}: Ошибка при вызове метода контекста (Вывести)
ВремТабДокумент.Вывести(ЭлементыФормы.ДокументРезультат.Область());
по причине:
Несоответствие типов (параметр номер ‘1’)
»
1С:Предприятие 8.2 (8.2.15.289)
«Управление торговлей», редакция 10.3 (10.3.14.5) (
Copyright (С) ООО «1C», 2003-2011. Все права защищены
(
(60) lexeika, Спасибо за замечания, исправил.
(61) Отлично. Спасибо огромное.
За идею спасибо. Плюсую.
Делал отчет с большим фунционалом для УПП:
http://infostart.ru/public/119569/
жутко стало интересно,сколько же ошибок выявится у меня, придется скачать, обожаю такие красивые, умные отчеты
Да ыиглядит солидно более чем. А функционал слоа нет. Как только появятся деньги обязательно скачаю. Автолру спасибо за проделаний труд так держать.
Эта обработка только ищет ошибки? Или ещё исправляет их?
Огромное спасибо, выручило!
(67) Iwan777, Предлагает рекомендации по исправлению найденных ошибок
А нет ли обновлений у этой разработки? Пользуюсь и все время вспоминаю автора добрым словом )) Очень и очень помогает , раньше лазила по нескольким отчетам .. а теперь утром запускаю и все бяки 1с попроавляю )) и даже уже стала 1с писать об их ошибках.. в алгоритмах обработок проведения документов и работе с резервами)) но правда и пользовательского добра хватает.
(69) n_lintek,
А что именно, на ваш взгляд, нужно добавить(убрать)?
Работа с комплектацией — резервирование, но как их вычислить в 1с эти резервы просто (( одни вопросы к разработчикам (( .. нет ни каких маркеров… а там тоже все зависает периодически, контролировать даже с отчетом сложно(( Но вполне возможно, что есть что-то просто я в силу своих неглубоких познаний 1с , не могу их увидеть (( И еще что можно добавить.. и это реально это проверка документов на время их проведение. например чтоб заказ был раньше реализации , ордер позже реализации.. такая мелочь, но приходиться ручками отслуживать(( и сразу добавить в обработку и исправление времени. например дату реализации увеличивать на 5 секунд, относительно времени заказ и подтягивать к этому ордер. Может еще где-то важны такие моменты, я пока ковыряюсь в этом. До остального просто руки не доходят (( все же время и силы ограниченны естественными причинами)
Надо бы её доработать, чтобы учитывала корректировки реализаций и поступлений
Мир этому дому!
Идея интересная. С какими версиями УТ обработка работает?
Обработка не учитывает разницу движений по складам и партиям по документам корректировка реализации и корректировка поступления. Можно ли исправить?
вот это просто спасение для нового буха или сопровожденца в новом проекте
Спасибо огромное автору. Обработка огонь! Если автор еще в теме, проверь пожалуйста корректно ли сравнивает остатки номенклатуры организации с реальными. У меня в отчете по товарам ГТД организации сходится с фактическими, а обработка показывает что нет!
(76) sobeyko2008,
А что именно не сходится? Можно ли подробнее с примерами (можно в личку). Что в вашем случае «реальные» остатки, это остатки по складам? Проверка «Разница в остатках по складам и организациям» сравнивает остатки [товары на складах]+[товары в НТТ]+[товары в рознице] с [остатки по организациям].
Вот такая картина получается:
Судя по вашему отчету фактически на складах товара:Утеплитель автомобильный № 10 (Белое) 6+2=8
а остатков у организаций тоже 8. Вопрос номер 1 — почему тогда посчитало что это ошибка?
а теперь воспользуюсь штатными отчетами и вижу что фактического остатка на складах 6+2+1 = 9 (проигнорирован один склад)
а в отчете ГТД организации вообще 2+11=13
см. скрины
кстати по моему мнению было бы гораздо удобней если бы склады располагались в одну строчку а не в столбик!
Что скажете?
А были исправления с учётом документов корректировки поступления и реализации?
Если нет, то стоит доработать.
По этой причине, пока, не возьму даже тестить
Не плохо бы добавить Анализ Ордерных схем: ТоварыКПередачеСоСкладов; ТоварыКПолучению…
Часто бывают Ордера не соответствующие первичному документу (Перемещение, Реализация, ПоступлениеТМЦ …)
При работе по «ордерной схеме» при операции перемещение. Выдает ошибку на проверке «Различие движений по партиям и складам». Так как двигают партии разные документы. Прих ордер на товари и Расх.
Проект заморожен похоже ?
Добрый день. Скачала Вашу комплексную проверку (у нас конфигурация «Управление торговлей», редакция 10.3 (10.3.18.5)), почему-то при открытии выдает ошибку…
(85) Эльвира933, У вас старая версия торговли, и наверно переписанная. Возможно это и приводит к ошибке. А какая именно ошибка?
Для УТ11, есть такая?
(87) Нет, к сожалению.
Приветствую!
Хочу спросить, является ли нормальным наличие ошибки «Отрицательные остатки по заказам поставщикам» при условии, что:
а) документы «Заказ поставщику» и «Поступление товаров и услуг» в USD (договоры и оплаты тоже, все документы привязаны к заказу поставщику)
б) цены и количества в документе «Заказ поставщику» и «Поступление товаров и услуг» одинаковы
в) все курсы на дату самого последнего документа в цепочке загружены
г) между датами документов «Заказ поставщику» и «Поступление товаров и услуг» несколько месяцев (курсы изменились, но не на порядок)
Спасибо!