<?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) Styvi, поддерживаю вопрос. Я тоже не понимаю зачем сие усложнение.
(1) Styvi, (2) DAnry,
Это обусловлено требованием клиента
(0) не сталкивались с такой ситуацией, когда после свертки Книга покупок не заполняется «как следует»? До свертки в книге покупок есть записи, а после свертки записей нет. Судя по алгоритму для попадания в книгу покупок нужны записи по оборотам регистров НДС Продажи и НДС Покупки, которых после свертки нет. Не сталкивались?
На сколько большое отличие обработки с диска ИТС?
И стандарт вроде неплохо работает.
Но все равно спасибо за старания. +1
Документы до даты обрезания полностью удалаються из базы? или будут всетаки ссылки на старые документы?
Хочу поделиться новостью. на users.v8.1c.ru появился апдейт обработки с диска ИТС «Свертка информационной базы» для БП 1.6 для правильной работы в БП 2.0 от октября 2014. Обработка предназначена для уменьшения размера информационных баз редакции 2.0, в том числе перед переходом на редакцию 3.0.
(7) i.c.h, Отличная новость, а Вы сами пробовали ?
Вроде скачал что то такое из 1С ного раздела но не понял чем 1С обработка отличается отhttp://infostart.ru/public/238692/ ?
Если не сложно, киньте в меня кто—нибудь обновленной сверткой…. А то доступы потеряли на пользовательский сайт и пин-код тоже…. nevvvermind <собака> gmail.com
Устанавливаю дату свёртки 31.12.14. Документы ввода остатков при этом почему то формируются на 01.01.15 o_O
После этого в оборотно-сальдовой сальдо на начало года нулевое. Но ведь это ……
ps Всё разобрался, после активизации документов ввода остатков через кнопку Активизировать, дата документов меняется на дату свёртки.
(7) i.c.h, Где её конкретно искать так и не нашел!
Не рекомендую обрабатывать регистр сведений «УчетнаяПолитикаОрганизаций». Рекомендую делать предварительное тестирование и исправление базы.
(4) Rustig, Вы решили свою проблему? Сообщите как, если решили.
(7) i.c.h, где на юзерсе искать обработки?
(16) qwed557, когда откроете БП 2.0 для платформы 8.2, то почти в самом низу странице находится:
Апдейт обработки с диска ИТС «Свертка информационной базы» для БП 1.6 для правильной работы в БП 2.0
(7) i.c.h, Подскажите пожалуйста где ее там найти, В каком разделе. На итс не нашли, а в личном кабинете не могу сориентироваться.
(16) qwed557, Нашла спасибо.
(17) YNik, (11) UralKIT, помогите ночику. Каков правильный порядок работы с обработкой. ? По умолчанию, установили дату свертки 31122014 и нажали кнопочку СВЕРНУТЬ БАЗУ, база свернулась но БЕЗ остатков ОТ обороты за 2015 копейка в копейку а нач остатков нет.
Все дело в закладке Документы ввода остатков я так понимаю. НУжно До свертки их там сформировать? а потом запустить свертку? верно?
(20) MakNat, в обработке в правом нижнем углу есть кнопка со знаком вопроса, там подробная инструкция.
Вы, скорее всего, не выполнили после свертки пункт 6:
Активизировать документы ввода остатков (кнопка «Активизировать» на закладке «Документы ввода остатков»). На этом этапе документы ввода остатков переносятся в дату свертки, у движений устанавливается признак активности.
YNik спс. В архиве скаченном с сайта есть файлик с полным описанием всех действий.
Почему ни в одном документе расчета с контрагентом нет номера и даты входящего документа? Например, в бух 3.0 после свертки эти номера идут в книги покупок/продаж. Думаю в бух 2.0 логика та же..
А планируется ли доработка данной обработки ?) По желаниям телезрителей, пытающихся свернуть базу…
(24) b-dm, а в чем у вас возникла проблема со сверткой?
(25) — уже не помню, но если написал значит не сработала…а вы автор обработки или хотите-можете помочь со сверткой ?)
Обработка типовая свернули 2 базы дописанную и типовую все ок прошло в принципе. Пишите вопросы. думаю поможем)
(27) Подскажите, пожалуйста, где взять типовую обработку? есть доступ на сайт users.1c.ru но что-то не нахожу там нужного мне
(28), см. комментарий (17)
(27) Здравствуйте. Скачала типовую обработку с сайта ИТС, сворачивала базу Бухгалтерия 2.0, ничего не свернулось, документы не удалились, регистры так и остались заполнены. В чем может быть проблема?
(30)Приложите скрины всех страниц с настройками указанными в обработке свертки.
И опишите какие изменения произошли с базой, НИКАКИХ? даже оборотки все остались неизменны?