<?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.1.58.3 — прокатило. Респект
Если заточишь под бухгалтера обыкновенного (чтобы не сказать «вульгарис»), будет вполне себе коммерческий продукт.
Для открытия списка регламентированных отчетов надо нажать зеленый карандашик над верхней половиной обработки
В самом, деле, дружище, сделай из этого конфетку.
Плюс за идею. А то мои редактируют в «Налогоплательщике ЮЛ». К следующему кварталу нарисую своим что-то подобное, как-то пока не срослось самому об этом подумать.
У меня почти у всех уже БП 3.0, так что сама разработка для меня неактуальна…
помню фамилию правили в представлении регаментированных отчетов — Ё на Е — делал форму для регистра сведений, правишь текст, и обратно в хранилище значений его записываешь. из той же серии.
Вопрос — много глюков встречается с сервисом ФНС по проверке ИНН+КПП?
сегодня опять не выгружались декларации в БП 2.0 и в КА — самое интересное, у двух моих клиентов по одному и тому же юр.лицу
Ы общем в 3.0 вбиваю его ИНН в форме нового контрагента, жму кнопку «заполнить по ИНН» — все сведения заполнились и тут же проявилась надпись, «КПП не соответствует данным ФНС».
в общем подстава в 2.0 и в КА, там файл выгрузки вообще не сформируется (декларации по НДС) если найдутся ошибки при проверке, придется лезть в форму ФормаОтчета2015кв1″ и закомментировать строчку «Возврат Ложь;» в процедуре «УниверсальнаяВыгрузка»
Спасибо, друзья и коллеги.
Сделать конфет, конечно, надо.
Но где время, Зин?
В этой голове слишком много идей, чтобы реализовать хотя бы одну :(((
что-то у меня не выводится имя файла
и что бы значил такой код?
Показать
(7) 1cmax, на вашем рисунке — что в крайней справа колонке?
или оно (имя файла) — что-то другое?
(7) 1cmax, этот код означает
…
На закладке Страница2 увидите таблицу значений,
Коллеги, наверное, нет смысла делать эту шнягу на НЕ-управляемых формах?
(8) вот такая таблица
http://joxi.ru/aD2PyB0S9pyNA3
(11) 1cmax,
Не очень приятная новость: разработчики произвольно меняют имена и структуру доп.файлов в релизах декларации.
Приятная новость: править таблицу визуального представления нет нужды. В следующей версии обработки править табличный документ не будем, тем более что при большом количестве строк 1С ее не хранит, а предлагает обратиться к книгам покупок/продаж.
Но зато в следующей версии будем работать и с 9-м разделом.
С названиями и структурой полей работать придется по факту: какие есть, такие учитываем. Настраивать поля — это уже слишком для такой задачи. К тому же никто не запретит разработчикам извращаться, как смогут.
(10) Да почему — вполне есть смысл. Еще очень многие сидят на обычных, БП 2.0 со следующего года 99,9% закроют, а та же КА будет на них еще долго, если работает в КА, то и в УПП будет работать. КА на УФ пока только бета появилась, да и на УПП многие еще будут сидеть не один год. К тому же, перенос готового решения на управляемые проще, чем писать то же самое «с нуля».
Я немного подкорректировала вашу обработку. Вопрос:
Могу ли я выложить ее на данном ресурсе с указанием первоисточника конечно?
Цену оставлю как у вас.
(15) abadonna.83, фигня вопрос 🙂
но мне экземпляр — бесплатно 🙂
больше интересует, спрашивали ли вы немножко подкорректировать ник?
Про ник непонела? Пришлю конечно даже с инструкцией.
(17) abadonna.83, Эта, как бы Вам сказать — забейте в поисковик «abadonna» — поймете… :)))
(17) abadonna.83,http://infostart.ru/profile/1329/
Какое живое обсуждение, а все проще. В свое время, была создана почта 10 лет назад, а теперь менять уже поздно. А 83 это стандартно просто abadonna было не доступно , не только я читала Мастера и Маргариту.
Честно говоря ваша обработка не заработала….После нажатия на зеленый карандаш открываются «Регламентированные отчеты»и далее ровным счетом ничего не происходит…Как мне из формы списка Регл.отчетов, что открываются, выбрать нужный, чтобы перейти к редактированию файла ?…Этого мне сделать так и не удалось…
А страница 1 и страница 2 какое значение имеют в отчете ? Сколько б я не щелкал на строчке с именем файла *.xml ничего не происходило…
А кнопки Заполнить ,упомянутой вами в начале описания я и вовсе не нашёл 🙂
Конфигурация БУХКОРП 2.0.
Еще вопрос: файлы выгружаются, например, на диск C,как они читаются из хранилища ?)
Что-то ничего не показывает УПП 1.3.86.3, ни ошибок ни чего не происходит. почему?
(1) см.рар
Пытаюсь скачать обработку. Нужно сделать сравнение файлов по НДС
Обработка уже не рабочая на новых релизах БУх 2.0. Не тратьте средства