<?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) spetzpozh, это сделано для ввода КПП обособленных подразделений. В справочнике Контрагенты указываете КПП головной организации, а чтобы не заводить кучу элементов с разными КПП, указываем КПП обособленного подразделения в счете фактуре. В итоге получится, что ИНН организации подтянется из справочника, а КПП из регистра Журнал учета счетов фактур.
(2) zebster, в принципе никакого, я специально указал альтернативный способ решения данной проблемы, это перепровести существующий документ. Едиственное, что может съехать последовательность документов на момент проведения косячного, тогда это решается просто программной установкой границы последовательностей. Обработку сделал для удобства, и чтобы убрать такие опасения бухгалтеров, плюс было интересно узнать, что сложные механизмы, которые разрабатываешь несколько месяцев также оцениваются, как и обработка сделанная «наколенке».
(2) zebster, счет фактурой может являться также документ «Поступления товаров и услуг», а тут уже посложнее.
(1) spetzpozh, Мне тоже понравилось, когда в принципе все должно работать нормально, но нет же, нужно лезть в код, и смотреть откуда же новая форма берет данные для заполнения=) 1С любит смешные приколы=)
(6) ну если уж писать обработку, то неплохо было бы добавить еще изменение номера и даты счета-фактуры. Сегодня при выгрузке декларации, вылезла ошибка. Бухгалтер в счете-фактуре 2011 года внес номер, но не внес дату. В итоге эта критическая ошибка не дала сформировать файл с декларацией.
(7) zebster, ок, добавлю, завтра с утра. Если еще есть какие-то пожелания по исправлению отчетности, смело пишите.
(3) zebster,
А завести обособленное подразделение именно как обособленное религия не позволяет ? На счет КА уже не помню, можно ли, а в БП 2.0 очень легко.
В принципе, кому-то обработка наверняка поможет и сбережет кучу времени и нервов, хотя пишется все это за 10 минут прямо у клиента на месте. Так что плюс.
(6)
А зачем тогда делать регистр и писать в него КПП, если потом этим не пользоваться ? Никакого прикола здесь не вижу, в БП 2.0 нет возможности хранить историю изменения КПП, как в 3.0, так что решение писать его в регистр в момент проведения вполне логично с точки зрения имеющегося функционала.
(11) alexdm, Ну тут палка о двух концах, в одном случае ты получаешь своеобразную историю кпп, которая слетает, если перепровести документы, в другом — ошибки, если кпп не верен, или не действителен
(12) Так вариантов-то, в общем и нет — делать историю КПП в 2.0 никто уже не будет, продукт отмирающий, так что хотя бы так, и то хорошо. В той же 7.7 в этом плане вообще никак…
Никто не видел такой обработки для Бухгалтерии 3.0? Писать времени, нет, исправляю другие косяки, кое-какой фирмы.
Желательно групповой, а не по одному документу.
(14) Dvornik, А ты уверен, что там такая же проблема? Регистры то, по-любому, разные.
Ошибка при формировании отчетности, (красные документы), например, книги продаж, хотя уже реквизиты контрагента были исправлены. Та же ошибка, что в заголовке этой обработки.
(16) Dvornik, проверил обработку в бухгалтерии 3 — работает, если запускать в режиме обычного приложения. Структура метаданных одинаковая. Если нужно срочно изменить, можно воспользоваться таким вариантом. массовое изменение с отборами на управляемых формах сделаю завтра — послезавтра.
(17) мы решили проблему, только проведением фактур.
(18) Dvornik, можно и так решить=)
(18) Dvornik, Обработкой лучше — не надо менять КПП у контрагента, если он сменился в середине периода. Для себя «на коленке» нарисовал примерно то же самое, что и у автора публикации, бухи выбрали проблемные с/ф, быренько поправили и все.
А если таких документов сотни? ))
(21) DimaP, минут через 40 выложу массовую обработку, но будьте внимательны с отборами, так как могут исправиться документы, которые вам и не надо было менять.
Внимание, в обработке «массового исправления кпп» после исправления, документы не пропадают из табличной части, это сделано для отладки, чтобы видеть какие документы были исправлены. Чтобы окончательно убедиться. что эти документы были действительно исправлены просто нажмите кнопку «отобрать».
Полезная вещь! Сами доходили что нужно заполнить КПП в рег Журнал регистрации СФ
(10) alexdm,
Еще один «наколенник». А потом из-за вас не найти удаленной работы — фирмы уже «поработали» с наколенниками, теперь берут только в штат.
И ни у кого (кроме смутного намека в 5) не возникло вопроса — что записи НДС (счет фактуры) могут формировать различнейшие документы — начиная от самих документов СФ, и заказчивая возвратами и прочими реализациями.
И что дело не только в «регистре «ЖурналУчетаСчетФактур»», а что нужно переформировывать всю цепочку — регистр, документы «Записи книги продаж/покупок», формирование книг, формирование «Декларации НДС»…
Впрочем, есть запросы, есть и наколенники, и причина-следствие бесконечно себя воспроизводит…
(25) AlexO, конкретно в данной описанной ситуации как раз виноват регистр Журнала учета счет фактур, и проблему решает элементарное проведение проблемных счет-фактур, документов поступления или другого регистратора для этого регистра. Как упоминалось в (11) данный регистр хранит своеобразную историю кпп контрагента, поэтому у многих и возникают проблема со сдачей отчетности, так как не у всех и всегда ведется корректный учет контрагентов, а документы делаются. Единственное преимущество этой обработки «На коленке» в том, что она не проводит документ регистратор, а работает напрямую с регистром, лишь изменяя значение кпп на текущее, что позволяет не нарушать последовательность документов. Конечно можно перепроводить всю цепочку документов, но это не нужно — так как нужно лишь пройти проверку контрагентов на валидность и все. У меня 5 организаций после такого прекрасно сдали декларацию по ндс.
(25) AlexO,
А Вы не думайте, что Вы такой самый умный, который все знает, а все остальные дурни. Я в своей «наколенной» обработке правлю движения любого документа, который двигает регистр «ЖурналУчетаСчетовФактур», в зависимости от ситуации вид документа выбирается руками, а эту самую обработку накидал минут за 10-15 именно у клиента «на коленке», когда возникла необходимость. Править регистр или перепроводить документы — тут должен работать мозг, это да, но в 99% случаев правки регистра достаточно. А уж если Вам такие как я мешают найти удаленную работу, к слову, я сам процентов на 50 работаю удаленно, география клиентов — «от Москвы до самых до окраин», то эти вопросы нужно адресовать себе самому…
Судя по данному высказыванию — Вам надо срочно подтягивать квалификацию в плане знания механизмов типовой бухгалтерии, здесь у вас полная каша. Одно формирование «Декларации НДС» чего стоит…
(27) alexdm,
ага, заливать — не перезаливать
конечно, ведь больше ничего нет
да-да, лапша уже с «накидал минут за 10-15»
конечно, ведь никакой декларации не существует… а если понадобится — за 10-15 минут накидаете. Удаленно.
(28) AlexO,
Могу поделиться, причем совершенно бесплатно, примерно 60-70 строк кода + форма с кнопками, ничего сложного.
Тут без комментариев — учите матчасть, тогда и удаленная работа появится.
Ну да, именно на выезде к клиенту и накидал — там просто раздельный учет НДС, экспорт, поэтому начали заниматься еще в марте — столкнулся с проблемой, порешал быстренько на месте, если это для Вас сложно — то надо подтягивать матчасть, как я уже советовал.
Накидаю. Удаленно. Легко. 5-6 тыков мышкой. Открыл регламентированный отчет и перезаполнил. Или создал новый и заполнил. Проблем не вижу.
(29) alexdm,
После таких вас — уже не появится. Никто уже не хочет связываться с «удаленщиками» после ваших и подобных махинаций и «накидал за пять минут» неизвестно что. Все теперь набирают только в штат. Чтобы ваши ошибки разгребались на месте и под контролем.
Все понятно. С НДС вы не знакомы.
Да-да, с НДС вы не знакомы.
Ну вот такие «проблем-не-вижу» и сломали весь рынок удаленной работы. За «пять минут» написали такое, что потом месяцами разгребают штатники.
Да, согласен, такое тоже надо уметь. А еще — уметь быстро бегать и хорошо прятаться.
(29) alexdm, неужели только мне приходится разгребать (в том числе и расчет, начисление и сдачу НДС-2015) после таких вот «пять-минут-на коленке-я-знаю-матчасть»?
Видимо, все-таки «хорошо и далеко бегать» — ваша основная развитая компетенция.
(29) alexdm, вам в тот же кружок «1С не может знать о его внутреннем устройстве и не может как-то его превратить в набор байт и обратно для передачи на сервер.»
Там будете вполне себе «пятиминутным» дарованием. Правда, только удаленно. Штатные места уже распределены и ревностно охраняются старожилами кружка.
(30) (31)(32) AlexO, довольно часто вижу ваши комментарии, и практически в любом вы являетесь оппонентом в споре, не могу понять зачем вам это нужно? Всем уже итак понятно, что вы имеете свое — отличное от других мнение.
(33)
Конечно, чем меньше знают — тем больше все понятно.
Многие мои коллеги восстанавливают НДС неделями, чтобы хотя бы отчетность не съезжала.
У меня был еще не самый запущенный вариант — неделю с главбухом выправляли.
А тут — приходят «пятиминутники-на-коленке» с одним регистром, шапкозакидатели «со стажем», и после их «удаленного лечения по фотографии» (когда бухгалтер разберется, чего они тут понаделали) — никто уже про «удаленку» разговаривать не хочет, с такими «предложениями» гонят прочь: заключай договор, выходи на работу, отсчитывайся и докладывай о любом движении в базе.
Ладно, о чем я все время — ясно же, чем меньше знают, тем больше появляется «пятиминутников». Я и говорю — не догнали тутошних товарищей, и то хорошо. Хотя б бегать быстро умеют.
(34) AlexO, Вот не могу понять как с помощью данной обработки может съехать НДС? Или вы имеете ввиду общую рекомендации по перепроведению, или общую идею обработок, которые решают конкретную проблему без анализа всей базы?
(35)
Он «съезжает» еще раньше. А с помощью «пятиминутников» ситуация запутывается еще больше — увеличивается различие между данными в разных объектах (регистры, документы, etc), и даже пропадает призрачная связь объектов/вмешательства для ответа на вопрос — «а как так получилось, и что сделать, чтобы исправить причину»?
НДС-2015 и был введен, чтобы прозрачно предоставить всю информацию о прохождении НДС по фирме — начиная от «первички», через Книги, и заканчивая отдельным отчетом-Декларацией.
А в, частности, в БП между ними — еще масса всевозможных объектов и промежуточных структур хранения, которые тоже надо все выправлять (иначе либо «первичка» не будет соответствовать, либо — Книги, либо — Декларация другу другу, и каждый — каждому).
Это и было придумано, чтобы без выездной проверки отследить и выявить прохождение и правильность начисления НДС на предприятии. Т.к. сказать, любимое слово одного тутошнего «пятиминутника» — «удаленно» ))
(36) AlexO, данная обработка призвана исправить конкретную ошибку, а именно «указаны некорректные ИНН/КПП». Она не меняет контрагента, не исправляет суммы в документах и ни каким другим образом не изменяет данные в учете, поэтому в данной ситуации ваши притязания не обоснованы. Если в организации не правильно ведется учет по ндс, то тут система выявит совершенно другие ошибки, а не в том, что у контрагента не верен КПП (это указывает лишь на то, что этот контрагент не прошел проверку по базе налоговой службы). Я вполне понимаю ваше возмущение по обработкам «сделанным на коленке», которые в полной мере не понимают специфику работы в организации и учета в целом, однако считаю, что вполне можно быстро («на коленке») разработать решение определенной проблемы организации, и это не будет абы как, все зависит от программиста. Данное решение я выложил потому, что оно действительно работает и решает поставленную задачу и повторюсь по своим организациям декларация уже сдана и ошибок в учете нет.
(32) AlexO, Комментировать весь ваш бред мне откровенно не хочется, да и лениво, если честно. Рассказывать про НДС вы можете кому угодно, только не мне с опытом работы больше 15 лет, причем я удаленную работу особо не ищу, она сама меня находит. Кстати, с удаленки-то свинтить гораздо проще, чем от клиента, с которым работаешь больше 10 лет, особенно в небольшом городе, как у меня, где все друг друга знают, разве не так ? Так что еще раз пожелаю подучить матчасть в плане механизмов типовой БП 2.0, прежде чем нести ересь. Правда, именно этим вы и занимаетесь преимущественно, тут, как говорится, горбатого могила исправит. Удачи на ниве удаленной работы.
(37) Человек страдает от того, что его не оценили и не хотят с ним связываться, ведь он такой умный, что тут непонятного. Человек самоутверждается здесь, пусть себе, как говорится, чем бы дитя не тешилось…
(38) alexdm,
ага, тут столько таких, 15 лет — как один день. И знания одного дня.
да-да, не забудьте написать это сто раз — вдруг, действительно сработает?
(39) alexdm,
ну зачем вы о себе в третьем лице, вот у вас и коллега есть — откройте тему, поговорите с ним об этом.
(40) AlexO, Вы бы вместо того, чтобы толсто троллить, занялись бы полезным, например матчасть подтянули, хотя бы в той же БП 3.0 — толку бы больше было. А так — нелепо выглядите, честное слово.
Добавил управляемую форму в обработки «точечного» и «массового» исправления, теперь их можно открывать и в Бухгалтерия 3.0.
Текст запроса по журналу счет фактур теперь динамически формируется — это нужно, так как в разных конфигурациях могут быть разные реквизиты в регистре.
При Точечном Исправление КПП в Журнале учета счет фактур выскакивает ошибка «не задано значение параметра «НомерСчетаФактуры». Более подробно на снимке экрана.
Версия 8.2 ПРО
(43) jummer, а конфигурация бухгалтерия 3 или 2?
(43) jummer, исправил обработку точечного исправления.
Тем кто скачал обработку «Точечное Исправление КПП в Журнале учета счет фактур» менее 7 дней перескачайте, стартмани не должны списаться. Те кто больше 7 дней — напишите мне свой e-mail и я отправлю вам исправленную обработку.
в 2.0.64.31 не исправляет.
Сама обработка пишет исправлено. Но в отчете пишет ошибка.
(46) jummer, чтобы проверить работает обработка или нет. Зайдите в регистр Журнал учета счет-фактур поставьте отбор по регистратору, где регистратор — это та счет-фактура, которые вы испрвляли, и посмотрите, если номер, дата или кпп не изменились на те, что вы ставите тогда обработка действительно не работает и буду смотреть, как решить данную проблему, если же меняется, то возможно у вас ошибка не связанная с правильным заполнением кпп в журнале счет-фактур.
КПП тот же. Правильный изменяем на правильный. В 1-м квартале обработка работала. Сейчас нет.
После последнего обновления у многих, видно, возникла проблема с КПП и датами. Бухи не смотрели пока выгрузка не застряла… А сейчас в КПП 8 знаков, дата оплаты 2114 год. Выгрузка проходит нормально, если просто перепровести счет-фактуру. Последовательности никакие не трогаются… У нас УПП. КППКонтрагента только в РС ЖурналУчетаСчетовФактур, все остальные документы берут из контрагентов…
(49) гаврюша, счет фактурой может являться и поступление товаров и услуг, которая влияет на последовательность.
(48) сегодня протестирую, может 1с что-то поменяли в алгоритме.
для УПП вышла новая версия 1.3.67.1
В УПП регистраторами Журнала являются только «ВводНачальныхОстатковНДС», «КорректировкаЗаписейРегистров», Счет-фактуры выданный/полученный и «ЗаписьЖурналаУчетаСчетовФактур». Может в других конфигурациях есть еще регистраторы?…
(52) гаврюша, в бухне побольше
Все понятно. Тогда точно только обработкой. Спасибо за информацию.
в моем случае не помогло, расшифровка ошибки выдавала не ту строчку, инн был действительно 9 символов