<?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='\
При попытке печати выдал такую ошибку:
{Форма.Форма(265)}: Метод объекта не обнаружен (СформироватьСуммуПрописью)
ОбластьМакета.Параметры.ОтпущеноНаСуммуПрописью = РаботаСДиалогами.СформироватьСуммуПрописью(ИтогоСуммаСНДС, Константы.ВалютаРегламентированногоУчета.Получить());
Мой 1С
1С:Предприятие 8.1 (8.1.15.14)
Бухгалтерия предприятия, редакция 1.6 (1.6.28.2)
Что нужно сделать, что все заработало?
Очень нужна такая форма…
Выложил исправленную, для 1.6.25.9 и старше.
Спасибо, что откликнулись. Вот теперь все работает
Спасибо!
1С:Предприятие 8.1 (8.1.15.14)
Бухгалтерия предприятия, редакция 2.0 (2.0.19.13)
«Печать ТТН: 8.1, редакция 2.0 и редакция 1.6 (релиз 1.6.24.7 и более ранние)»
При попытке печати получаю следующую ошибку:
{Форма.Форма(58)}: Ошибка при вызове метода контекста (Выполнить): {(18, 21)}: Поле не найдено «ДоговорКонтрагента.ВедениеВзаиморасчетов»
ДоговорКонтрагента.<<?>>ВедениеВзаиморасчетов КАК ВедениеВзаиморасчетов,
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(18, 21)}: Поле не найдено «ДоговорКонтрагента.ВедениеВзаиморасчетов»
ДоговорКонтрагента.<<?>>ВедениеВзаиморасчетов КАК ВедениеВзаиморасчетов,
1Сники опять чего-то нового наворотили в 2.0.19.3 🙂 Исправлю в ближайшем будущем
Исправлены выявленные ошибки и расширен функционал: теперь помимо автомобиля, прицепа и водителя имеется возможность сохранять перевозчика, заказчика, пункты погрузки и разгрузки.
! Ура 🙂
А можно пожалуйста такую же обработку для УТ 10.3, т.к. все остальные на сайте не доработанные.
Добавил аналогичную форму для УТ 10.3 на обе платформы. Наверное, буду делать и для УТ 11.
А что можно сделать, чтобы введенные в списки значения были доступны всем пользователям? (Сейчас пользователю доступны только те значения, которые он вводил, и недоступны значения, введёные другими пользователями).
А для Торговли 11.0 возможна одоптация
(12) Теоретически да, но лень разбираться с заморочками управляемого приложения…
Где-бы взять форму, которая будет использоваться после 25 июля. Никто еще не делал? Типа этойhttp://infostart.ru/public/86944/ , только для восьмерки
(14) По горло загружен работой, некогда. Берите за основу мою и переделывайте, если хотите 🙂
Являясь пользователем Вашей разработки хотчу уточнить — планируется ли доработка под новую форму ТН?
Здесь уже выложили несколько варинатов новой формы, в том числе с сохранением значений. Так что смысла писать уже не вижу. Ко времени принятия новой формы не успел, а сейчас уже незачем.
Господа сливающие и плюсующие… Я, конечно, рад безумно, но данная форма — не та, которая вышла с лета 2011 года, а та, которая была до этого…
Спасибо за обработку, пользовался ей когда нужно было распечатать документы задним числом, для наших запросов функционала хватило
(18) приспособить под новую форму не долго, как «рыба» подойдёт