<?php // Полная загрузка сервисных книжек, создан 2025-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) maksa2005, В описании указал, что смысл только в произвольной дате.
— более приемлемый вариант свертки?
(3) Borisych, А у меня не за деньги, а насчет приемлемости ещё неизвестно. Типовой вариант скорее всего надежнее.
Документы ввода остатков делаются? регистров по НДС? Есть демо-пример?
(5) demo-05, Разумеется, создаются. В основе штатная обработка.
День добрый!Выдает ошибку,
Ошибка инициализации модуля: Форма.Форма.Форма
по причине:
{Форма.Форма.Форма(508,56)}: Переменная не определена (СообщенияДляЖурналаРегистрации)
СоединенияИнфо = ПолучитьИнформациюОНаличииСоединений(<<?>>СообщенияДляЖурналаРегистрации);
{Форма.Форма.Форма(584,70)}: Переменная не определена (СообщенияДляЖурналаРегистрации)
ТекущиеСоединения = ПолучитьСтрокуСоединенияИИнформациюОСоединениях(<<?>>СообщенияДляЖурналаРегистрации);
{Форма.Форма.Форма(755,75)}: Переменная не определена (СообщенияДляЖурналаРегистрации)
ТекстыМакетов = ПолучитьТекстыМакетов(ИменаМакетов, СтруктураПараметров, <<?>>СообщенияДляЖурналаРегистрации);
(7) bvv003, Какой релиз?
БП 3.0.42.54
Аналогичная ошибка при запуске
(9) Sharloc, Выложил обновленную версию.
не работает, выдает ошибку Поле объекта не обнаружено
{Форма.Форма.Форма(63)}: Поле объекта не обнаружено (ИнформацияОПользователе)
Объект.ИмяАдминистратораИБ = СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента().ИнформацияОПользователе.Имя;
Не могу найти на сайте внешнюю печатную форму Акта о списании малоценных и быстроизнашивающийся предметов из документа требование-накладная для БП 3,0, нет ли у вас в наличии и сколько она будет стоить?
Релиз 3,0,42,73
(13) steelsi, А какую версию скачали?
Последняя — Свёртка базы БП 3.0 релиз 3.0.42.54
(12) steelsi, Эл. адрес давайте, скину, которой я пользуюсь.
(15) mrgo7771@rambler.ru , спасибо
Не могу найти на сайте внешнюю печатную форму Акта о списании малоценных и быстроизнашивающийся предметов из документа требование-накладная для БП 3,0, нет ли у вас в наличии и сколько она будет стоить?
А документы прошлых периодов (реализации, с/ф выданные) после свертки остаются в базе так-же как и сделано в типовом варианте обработки? Или же все сделано Документами ручного ввода и старых документов до даты свертки вообще не остается НИКАКИХ?
Ибо типовая обработка оставляет муеву тучу документов проведенными (но без проводок): в них оставлены только движения по регистрам
(17) ALLES, Как в типовом варианте.
изменение периода — работа на 5 минут
(19) ураниум, Совершенно верно. ))
(16) steelsi, Документ «Передача материалов в эксплуатацию»
Производство ® Передача материалов в эксплуатацию
Документ предназначен для отражения операций передачи в эксплуатацию специальной одежды, специальной оснастки, инвентаря и хозяйственных принадлежностей. Документ можно вводить на основании документа Поступление (акт, накладная).
Печатные формы
Ввод на основании
Вариантов не один))) вот мой
Александр, спасибо.
(23) Yureckaya, Рад, что пригодился.
(3) За описание свертки, спасибо — но ваша платная в отличие от данной.