<?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='\
Здравствуйте. Очень заинтересовала обработка.
Подскажите пожалуйста, возможно ли применить ее в Бухгалтерии 3.0?
При запуске в работу отражается пустая вкладка, формы нет.
Что необходимо сделать?
(1) обработка написана для неуправляемого приложения. Для Бух 3.0 её надо переписывать под управляемые
Жаль, спасибо за ответ.
Обработка интересная.
Планируете ли для управляемого приложения ее сделать?
(4) своей необходимости в этом нет.
Спасибо за разработку.. Вроде все мое, НО… У меня сертификат дополнительно требует пароль.. Как его добавить при подписании?
(6) Alex, вроде как, кроме поставить галочку Запомнить пароль, вариантов нет.
(6)Я так делаю:
МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = ПарольЗакрытогоКлюча;
Кто может подсказать по сабжу. При указании
МенеджерКрипто.ВключениеСертификатовВПодпись = РежимВключенияСертификатовКриптографии.НеВключать;
проверку на валидность не проходит. Если не указывать или выбрать другой вариант, то все нормально. 1С:Предприятие 8.3 (8.3.9.1850)
На ИТС написано, что помимо файлов, можно подписывать и объекты программы.
Цитирую: «Для электронной подписи и шифрования требуется установить специальную программу электронной подписи и шифрования (криптопровайдер).
Можно выполнять следующие операции:
■ Подписывать объекты программы (например, в документе поля Наименование и Краткое содержание);
»
Дело в том, что необходимо согласовать/подписать 1с-документ посредством ЭЦП. Вложенные файлы не рассматриваем.
Кто-нибудь делал такое на практике, если да, поделитесь опытом.
для файлов с расширением sig можно пользоваться обработкой ?
(10)Подать на подпись ссылку на объект. В Документообороте так подписываются элементы справочников.
(11) Подписать можно любые файлы, если вы об этом. Формат подписанного файла — только *.p7s.
Менеджер криптографии, описанный в платформе, умеет создавать только в таком виде.
Здравствуйте. Подскажите пожалуйста какую программу Вы использовали для выпуска собственных сертификатов?
(14) в ОС ClearOS есть возможность выпускать собственные сертификаты. Есть и другие программные продукты, но их основной принцип, что где-то должен быть сервер УЦ (удостоверяющий центр). В данном случае мой сервер с ClearOS и был таким УЦ. Собственно доверие ему было только на нашем внутреннем уровне.
(0)В каком формате должен быть сертификат-файл?
У меня в ОС модуль криптографии с типом 1 называется «Microsoft Strong Cryptographic Provider».
А есть ли какой способ сделать подпись SHA256+RSA?
(17) Вы решили как подписать? похожая ситуация, только RSA + SHA1
(18) С помощью публикации001. Криптография и цифровая подпись RSA-sha256 на платформе 1С мне удалось все сделать
Добавил в модуль криптографии Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider с типом 80 и выдает непонятную ошибку.
Подскажите, как быть?
(20) А ключ гост 2012?
возможно приспособить для подписи документов в упп?
(22) Собственно для УПП в качестве пробы пера и делалось. Но столько лет минуло, а от бумажного документооборота уходить не собираются.
(23) есть пример подписи документа?
Сама по себе разработка интересная. Только по моему если уж приобрели Рутокен с серификатом, то уж и постановка криптопровайдера к нему как бы подразумевается. Не? Хотя может я просто перфекционист))