<?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)формы настроек (отчета, обработки, документа — из текста статьи не понятно что за объект);
2)Печатной формы, если она присутствует в данной разработке.
А где нужно ввести членов комиссии? Форма не формируется, пишет, что не указан ни один член комиссии.
Открывайте обработку как внешюю обработку. не надо ее явно привязывать к документу списание материалов
Спасибо за обработку ❗
Хорошая вещь!
Спасибо обработка работает в Бух1.6 ,а в Бух 2.0 ругается
Ошибка при вызове метода контекста (Выполнить): {(48, 48)}: Поле не найдено «ТребованиеНакладнаяМатериалыЗаказчика.Ссылка.ПодразделениеОрганизации»
ТребованиеНакладнаяМатериалыЗаказчика.Ссылка.<<?>>ПодразделениеОрганизации КАК Подразделение,
🙁
если можно доработай для Бух2.0
)) Бух 2.0 еще даже не ставил. Ничего не могу сказать пока.
Спасибо. Работает и на БП 2.0
Обработка замечательная в 1С:Предприятие Бухгалтерия предприятия, редакция 1.6 работала без вопросов
Но перешли на редакцию 2.0 — ЗАСАДА
Регистрируемая печатная форма акта списания предназначена для использования в конфигурации
«Бухгалтерия предприятия», редакция 1.6.
ПОМОГИТЕ!!!!!!!!!
К хорошему так быстро привыкаешь, теперь без обрабатки, как без рук 😥
Господа, подскажите пытаюсь открыть скачанный файл конфигуратором 8.2, пишет ошибка открытия файла, файл целиком не скачался или просто под 8.2 не заточено?
Перезалил файл, открыл конфигуратором, при этом он попросил произвести конвертацию, но при работе в 1С 8.2 упп при нажатии кнопки печать вылезают ошибки, Идет обращение к данным которых там нет. Может быть я чего-то не понимаю, но напрямую заставить работать отчет не удалось. Сижу допиливаю в конфигураторе.
Под 8.2 завтра залью. не помню какую то мелочь исправил в начале года и работает. Есть кстати решение Акта списания по Подотчетнику за период и по подразделению за период.
Обработку устанавливала и на бухгалтерию 2.0. ПРактически ничего не подправляла, все работает. Бухи довольны.
Спасибо за обработку, только печатную форму нужно немного доработать
спасибо большое за обработку, вроде бы все как надо.
А на основании отчета производства за смену он не может работать?
пригодилась обработка в свое время делал на для 1С Предприятие 7.7. Бухгалтерский учет, как внешнюю форму к документы требование накладная, в пояснении к обработке можно добавить список видов документов для которых форма формируется, попробую скачать
Извините, но я что-то не увидела, где здесь в печатной форме отражено поле «назначение использования»?
Добрый деньподскажите для какой конфигурации подходит данная обработка — есть ли выбор членов комиссии или это просто шаблон под который нужно еще дописывать дополнительную форму. Подходит ли для редакции 2.0???
Спасибо.Все красиво.))