<?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='\
Баян. Моя жена такое тож выкладывала.
Ваша обработка сделана как внешняя-для-заполнения-таб.частей, или как просто внешняя?
Зато бесплатно! Спасибо!
Чтоб она покруче стала сначала сделай ее бесплатной.
не качается 🙁
(2) — вызывает отрицательные чувства…
Вот, откопал:
(4) — Качественный и функциональный продукт не бывает бесплатным, а эта, извините за выражение, «разработка» — для любителей халявы
С каких времен, извините, крутость разработки зависит от ценника? Очнитесь…
(9) противоречите, сами себе 😉
(10) — нет, не противоречу, а просто оспорил мнение (4)
Платформа 8.1.12.101, релиз 10.3.6.8, стандартная (без изменений)- обработка не может быть прочитана текущей версией программы 🙁
(12) — теперь можете скачивать и на 81.
Что касается (11)- могу судить что действительно обработка по функционалу шире, но давайте подумаем для кого она в этом случае предназначена, я прихожу к выводу, что или к продвинутому пользователю или программисту. А теперь согласитесть что писать обработку для программиста и продавать ее ему несколько нелепо.
имхо: И поэтому в моем случае есть небольшой отрыв, даже считаю что я слишком переусердствовал в наличии кнопок и таб.частей, в любом случае спасибо за критику.
Заполнение таб частей универсальный помошник 81
{Форма.Форма(72)}: Поле объекта не обнаружено (комментарий)
НД.комментарий = «Таб. часть загружена из: «+Строка(ДокументОснование)+текстКоментария;
Обработка действительна для любой конфигурации…
Вот если бы еще можно было бы и реквизиты настраивать….. 🙂
Правда не соглашусь с тем что должен создаваться новый документ…. иногда действительно требуется заполнить уже существующий…..
(7) — те обработки предназначены для заполнения ТЧ через механизм подключения внешних обработок заполнения ТЧ, а эта идет как самостоятельная обработка.
Ерунда какая-то. Написано для любой конфигурации 8, а у меня на Бухгалтерии ничего не заполняет. Кто-то этим пользуется !?
Почему элементарные реквизиты не заполняются, такие как Контрагент, Организация, Склад … ?
в 1с 8.1 УПП всё отличненько работает))
А где найти такую для 7.7 ?
У меня тоже для Бухгалтерии ничего не заполняет.
Совсем не рабочая
Примитив
нормально работает, надо нормально заполнять графы
А кто нибудь знает такую обработку для ГБУ 8.2, а то очень надо. Ну и чтобы обязательно заполняла всю табличную часть, а то к сожалению пока такую не нашёл, но если просмотрел то подскажите.
Рабочая обработка
Спасибо, полезная обработка
Спасибо, нужная вещь.
нужна такая же для 8.2
Народ вот держите мою обработку
Универсальная обработка заполняет выбранные реквизиты и табличные части по любому документу-основанию, в любых конфигурациях.
Новшества (18-07-2013):
1) Добавление версии обработки для платформы 1С 8.2
2) Доработка самой обработки: появилась новая функция автоматического соответствия реквизитов и табличных частей при выборе вида документа-приемника
Можете доработать чуть чуть? Нужно чтобы несколько документов можно было выбирать в «Документ основание». Допустим надо из 10 поступлений переместить товары в заказ поставщику. Спасибо