загрузка...
Дата публикации: 31.01.2018 11:57:50 |
Часть вторая . Реализация обмена нетиповой 1с с нетиповым сайтом
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
function AddUSER($F,$I,$O, $Mail){
/*
LOGIN* - логин (имя входа)
NAME - имя пользователя
LAST_NAME - фамилия пользователя
SECOND_NAME - отчество пользователя
EMAIL* - E-Mail адрес пользователя
PASSWORD* - пароль пользователя
CONFIRM_PASSWORD* - подтверждение пароля (должно быть равным PASSWORD)
GROUP_ID - массив ID групп к которым будет приписан пользователь
ACTIVE - флаг активности пользователя [Y|N]
LID - ID сайта по умолчанию для уведомлений
ADMIN_NOTES - заметки администратора
*/
$UID="";
$DocID="";
$user = new CUser;
$arFields = Array(
"NAME" => $I,
"LAST_NAME" => $F,
"SECOND_NAME" => $O,
"EMAIL" => $Mail,
"LOGIN" => $Mail,
"LID" => "s2",
"ACTIVE" => "Y",
"GROUP_ID" => 5,
"PASSWORD" => "q1w2e3R$",
"CONFIRM_PASSWORD" => "q1w2e3R$",
"ADMIN_NOTES" => "Добавлен из 1С"
);
$ID = $user->Add($arFields);
if (intval($ID) > 0)
$UID=$ID;
else
echo $user->LAST_ERROR;
$rsUser = CUser::GetByID($ID);
$arUser = $rsUser->Fetch();
$userName= $arUser["LAST_NAME"]." ".$arUser["NAME"];
$el = new CIBlockElement;
$PROP = array();
$PROP[189] = $ID;//$rsUser; // свойству с кодом 12 присваиваем значение "Белый"
$arLoadProductArray = Array(
"MODIFIED_BY" => $ID, // элемент изменен текущим пользователем
"IBLOCK_SECTION_ID" => false, // элемент лежит в корне раздела
"IBLOCK_ID" => 34,
"PROPERTY_VALUES"=> $PROP,
"NAME" => $userName,
"ACTIVE" => "Y", // активен
"PREVIEW_TEXT" => "",
"DETAIL_TEXT" => "",
"DETAIL_PICTURE" => ""
);
if($PRODUCT_ID = $el->Add($arLoadProductArray))
$DocID=$PRODUCT_ID;
else
echo "Doc Error: ".$el->LAST_ERROR;
echo $DocID."#".$UID;
}
function UnLoadGA($id){
$FN="PROPERTY_GENERATED_APPLICATION_VALUE";
$arSelect =Array("ID", str_replace("_VALUE","",$FN) , "PROPERTY_AP_REG_ADDRESS" ,"PROPERTY_AP_INN" ,"PROPERTY_AP_POST_ADDRESS" ,"PROPERTY_AP_PASSPORT" ,"PROPERTY_AP_PASSPROT_DATE" ,"PROPERTY_AP_PASSPORT_WHOM" ,"PROPERTY_AP_CERTIFICATE_NUMBER" ,"PROPERTY_AP_CERTIFICATE_DATE" ,"PROPERTY_AP_CERTIFICATE_WHOME");
//,"PROPERTY_AP_INN","PROPERTY_AP_SNILS","PROPERTY_AP_PASSPORT","PROPERTY_AP_PASSPROT_DATE","PROPERTY_AP_PASSPORT_WHOM" ,"PROPERTY_AP_CERTIFICATE_NUMBER","PROPERTY_AP_CERTIFICATE_DATE","PROPERTY_AP_CERTIFICATE_WHOME"
$arOrder = Array("created"=>"DESC");
$arFilter = Array("IBLOCK_ID"=> 34, "ID"=> $id);
$rsRes = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
while($ob = $rsRes->GetNextElement())
{
$arFields = $ob->GetFields();
$af = CFile::GetFileArray($arFields[$FN]);
//$file= CFile::GetPath($arFields[$FN]);
echo $af["SRC"]." ; ".$af["CONTENT_TYPE"]." ; ".$af["FILE_NAME"]." ; ".$af["FILE_SIZE"]." ; ".$arFields["PROPERTY_AP_REG_ADDRESS_VALUE"]." ; ".$arFields["PROPERTY_AP_INN_VALUE"]." ; ".$arFields["PROPERTY_AP_POST_ADDRESS_VALUE"]." ; ".$arFields["PROPERTY_AP_PASSPORT_VALUE"]." ; ".$arFields["PROPERTY_AP_PASSPROT_DATE_VALUE"]." ; ".$arFields["PROPERTY_AP_PASSPORT_WHOM_VALUE"]." ; ".$arFields["PROPERTY_AP_CERTIFICATE_NUMBER_VALUE"]." ; ".$arFields["PROPERTY_AP_CERTIFICATE_DATE_VALUE"]." ; ".$arFields["PROPERTY_AP_CERTIFICATE_WHOME_VALUE"];
}
}
function UnLoadFile($id,$dtype){
$FN="";
//["DISPLAY_PROPERTIES"]["LOGOLOGO"]["DISPLAY_VALUE"]
switch($dtype)
{
case '1': $FN="PROPERTY_ZAYAVLNIE_VALUE";break;
case '2': $FN="PROPERTY_ATESTAT_VALUE";break;
case '3': $FN="PROPERTY_SVIDETELSTVO_VALUE";break;
case '4': $FN="PROPERTY_PASPORT_VALUE";break;
case '5': $FN="PROPERTY_DOGOVOR_VALUE";break;
case '6': $FN="PROPERTY_DIPLOM_VALUE";break;
case '7': $FN="PROPERTY_SNILS_VALUE";break;
case '9': $FN="PROPERTY_SOGLOBPD_VALUE";break;
case '10': $FN="PROPERTY_SPRAVKAPOL_VALUE";break;
case '11': $FN="PROPERTY_SPRAVKANAL_VALUE";break;
default: echo "Not";break;
}
$arSelect =Array("ID", str_replace("_VALUE","",$FN));
$arOrder = Array("created"=>"DESC");
$arFilter = Array("IBLOCK_ID"=> 34, "ID"=> $id);
$rsRes = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
while($ob = $rsRes->GetNextElement())
{
$arFields = $ob->GetFields();
$af = CFile::GetFileArray($arFields[$FN]);
//$file= CFile::GetPath($arFields[$FN]);
if(!empty($af)){
echo $af["SRC"]." ; ".$af["CONTENT_TYPE"]." ; ".$af["FILE_NAME"]." ; ".$af["FILE_SIZE"];
}else{ if($FN=="PROPERTY_ZAYAVLNIE_VALUE") UnLoadGA($id);}
}
//LocalRedirect($file);
}
function LoadFile($id,$dtype,$U){
$submit = ( isset($_POST['submit']) ) ? intval($_POST['submit']) : false;
//$decode = ( isset($_POST['decode']) ) ? intval($_POST['decode']) : false;
$message = ( isset($_POST['message']) ) ? htmlspecialchars($_POST['message']) : '';
//Проверим user-agent, хотя большого толку от такой проверки нет. См. статью.
//if ( $_SERVER['HTTP_USER_AGENT'] != '1C+Enterprise/8.1' )
//{
//@header('HTTP/1.0 403 Forbidden');
//die('Hacking attempt');
//}
if ( $submit )
{
//Здесь работаем с содержимым переданного файла.
$uploadFile = $_FILES['datafile'];
$tmp_name = $uploadFile['tmp_name'];
$data_filename = $uploadFile['name'];
if ( !is_uploaded_file($tmp_name) )
{
die('Ошибка при загрузке файла ' . $data_filename);
}
else
{
//Считываем файл в строку
$data = file_get_contents($tmp_name);
// if ($decode)
//{
//При необходимости декодируем данные
// $data = base64_decode($data);
//}
//Теперь нормальный файл можно сохранить на диске
//if ( !empty($data) && ($fp = @fopen($data_filename, 'wb')) )
//{
// @fwrite($fp, $data);
// @fclose($fp);
//}
//else
//{
// die('Ошибка при записи файла ' . $data_filename);
//}
$PRODUCT_ID = $id;
$el = new CIBlockElement;
//190 01. Заполненное заявление установленного Pdf
//191 02. Копия квалификационного аттестата кадастрового инженера Pdf
//192 03. Копия свидетельства о постановке на учет в налоговом органе. Pdf
//193 04. Копия паспорта или иного документа, удостоверяющего личность в соответствии с законодательством Российской Федерации. Pdf
//194 05. Копия свидетельства о государственной регистрации физического лица в качестве индивидуального предпринимателя или копию подписанного труд. догов. Pdf
//195 06. Копия документа о высшем или средне-профессиональном образовании. Pdf
//196 07. СНИЛС Pdf
//8 08. Фото Pdf
//240 09. Согласие на обработку персональных данных Pdf
//241 10. Справка об отсутствии непогашенной или неснятой судимости за совершение умышленного преступления. Pdf
//242 11. Справка об отсутствии наказания в виде дисквалификации. Pdf
$PROP = array();
$PROP[189] = $U; // свойству с кодом 12 присваиваем значение "Белый"
switch($dtype)
{
case '1': $PROP[190] = $uploadFile;break;
case '2': $PROP[191] = $uploadFile;break;
case '3': $PROP[192] = $uploadFile;break;
case '4': $PROP[193] = $uploadFile;break;
case '5': $PROP[194] = $uploadFile;break;
case '6': $PROP[195] = $uploadFile;break;
case '7': $PROP[196] = $uploadFile;break;
case '9': $PROP[240] = $uploadFile;break;
case '10': $PROP[241] = $uploadFile;break;
case '11': $PROP[242] = $uploadFile;break;
default: echo "Not";break;
}
$arLoadProductArray = Array(
"IBLOCK_SECTION_ID" => false, // элемент лежит в корне раздела
"IBLOCK_ID" => 34,
"PROPERTY_VALUES"=> $PROP
);
if($el->Update($PRODUCT_ID,$arLoadProductArray))
echo "Изменен ".$PRODUCT_ID;
else
echo "Error: ".$el->LAST_ERROR;
@header('HTTP/1.1 200 Ok');
$answer = "\n" . 'Файл ' . $data_filename . ' успешно загружен. ' . "\n" . 'Переданное сообщение: ' . $message;
print ($answer);
}
}
}
function export(){
$arSelect =Array("ID","PROPERTY_USER","CREATED_DATE");
$arOrder = Array("created"=>"DESC");
$arFilter = Array("IBLOCK_ID"=> 34, "PROPERTY_STATE_VALUE"=>"Участник");
$rsRes = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
while($ob = $rsRes->GetNextElement())
{
$arFields = $ob->GetFields();
echo $arFields["ID"]."; ";
echo $arFields["PROPERTY_USER_VALUE"]."; ";
// echo $arFields["PROPERTY_STATE_VALUE"]."; ";
$rsUser = CUser::GetByID($arFields["PROPERTY_USER_VALUE"]);
$arUser = $rsUser->Fetch();
echo $arUser["LAST_NAME"]."; ".$arUser["NAME"]."; ".$arUser["SECOND_NAME"]."; ".$arUser["EMAIL"]."; ";
echo $arFields["CREATED_DATE"];
echo "\n";
}
}
function exportR(){
$arSelect =Array("ID","PROPERTY_USER","CREATED_DATE","PROPERTY_GENERATED_APPLICATION","PROPERTY_ZAYAVLNIE");
$arOrder = Array("created"=>"DESC");
//$arFilter = Array("IBLOCK_ID"=> 34, "PROPERTY_STATE_VALUE"=>"Участник");
$arFilter = Array("IBLOCK_ID"=> 34);
$rsRes = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
while($ob = $rsRes->GetNextElement())
{
$arFields = $ob->GetFields();
if((!empty($arFields["PROPERTY_GENERATED_APPLICATION_VALUE"])) || (!empty($arFields["PROPERTY_ZAYAVLNIE_VALUE"]))){
echo $arFields["ID"]."; ";
echo $arFields["PROPERTY_USER_VALUE"]."; ";
// echo $arFields["PROPERTY_STATE_VALUE"]."; ";
$rsUser = CUser::GetByID($arFields["PROPERTY_USER_VALUE"]);
$arUser = $rsUser->Fetch();
echo $arUser["LAST_NAME"]."; ".$arUser["NAME"]."; ".$arUser["SECOND_NAME"]."; ".$arUser["EMAIL"]."; ";
echo $arFields["CREATED_DATE"];
//echo "\n";
echo "
";
}
}
}
CModule::IncludeModule("iblock");
$APPLICATION->SetTitle("export");
global $USER;
if($USER->IsAdmin()){
$param=$_REQUEST["param"];
$id=$_REQUEST["id"];
$dtype=$_REQUEST["dtype"];
$F=$_REQUEST["F"];
$I=$_REQUEST["I"];
$O=$_REQUEST["O"];
$Mail=$_REQUEST["Mail"];
$U=$_REQUEST["U"];
switch($param)
{
case 'addu': AddUSER($F,$I,$O, $Mail); break;
case 'loadf':LoadFile($id,$dtype,$U); break;
case 'uloadf':UnLoadFile($id,$dtype); break;
case 'myf':exportR();break;
default: export();break;
}
}
? >
Назад в раздел