static function import1CProfiles()
{
$codes = array(
'CLIENT_NAME' => array('FULL_NAME' , 'GROUP' => 'CLIENT', 'SORT' => 100, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_LAST_NAME' => array('SURNAME' , 'GROUP' => 'CLIENT', 'SORT' => 200, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_FIRST_NAME' => array('NAME' , 'GROUP' => 'CLIENT', 'SORT' => 300, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_SECOND_NAME' => array('SECOND_NAME' , 'GROUP' => 'CLIENT', 'SORT' => 400, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_AGENT_NAME' => array('AGENT_NAME' , 'GROUP' => 'CLIENT', 'SORT' => 500, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_CONTACT_NAME' => array('CONTACT_PERSON', 'GROUP' => 'CLIENT', 'SORT' => 600, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_BIRTHDAY' => array('BIRTHDAY' , 'GROUP' => 'CLIENT', 'SORT' => 700, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_SEX' => array('MALE' , 'GROUP' => 'CLIENT', 'SORT' => 800, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_INN' => array('INN' , 'GROUP' => 'CLIENT', 'SORT' => 900, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_KPP' => array('KPP' , 'GROUP' => 'CLIENT', 'SORT' => 1000, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_ADDRESS' => array('ADDRESS_FULL' , 'GROUP' => 'CLIENT', 'SORT' => 1100, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_ZIP' => array('INDEX' , 'GROUP' => 'CLIENT', 'SORT' => 1200, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_COUNTRY' => array('COUNTRY' , 'GROUP' => 'CLIENT', 'SORT' => 1300, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_REGION' => array('REGION' , 'GROUP' => 'CLIENT', 'SORT' => 1400, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_STATE' => array('STATE' , 'GROUP' => 'CLIENT', 'SORT' => 1500, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_TOWN' => array('TOWN' , 'GROUP' => 'CLIENT', 'SORT' => 1600, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_CITY' => array('CITY' , 'GROUP' => 'CLIENT', 'SORT' => 1700, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_STREET' => array('STREET' , 'GROUP' => 'CLIENT', 'SORT' => 1800, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_HOUSING' => array('BUILDING' , 'GROUP' => 'CLIENT', 'SORT' => 1900, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_BUILDING' => array('HOUSE' , 'GROUP' => 'CLIENT', 'SORT' => 2000, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_APARTMENT' => array('FLAT' , 'GROUP' => 'CLIENT', 'SORT' => 2100, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_PHONE' => array('PHONE' , 'GROUP' => 'CLIENT', 'SORT' => 2200, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'CLIENT_EMAIL' => array('EMAIL' , 'GROUP' => 'CLIENT', 'SORT' => 2300, 'DOMAIN' => BusinessValue::INDIVIDUAL_DOMAIN, 'MAP' => array()),
'COMPANY_AGENT_NAME' => array('AGENT_NAME' , 'GROUP' => 'COMPANY', 'SORT' => 100, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_NAME' => array('FULL_NAME' , 'GROUP' => 'COMPANY', 'SORT' => 200, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_ADDRESS' => array('ADDRESS_FULL' , 'GROUP' => 'COMPANY', 'SORT' => 300, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_ZIP' => array('INDEX' , 'GROUP' => 'COMPANY', 'SORT' => 400, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_COUNTRY' => array('COUNTRY' , 'GROUP' => 'COMPANY', 'SORT' => 500, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_REGION' => array('REGION' , 'GROUP' => 'COMPANY', 'SORT' => 600, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_STATE' => array('STATE' , 'GROUP' => 'COMPANY', 'SORT' => 700, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_TOWN' => array('TOWN' , 'GROUP' => 'COMPANY', 'SORT' => 800, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_CITY' => array('CITY' , 'GROUP' => 'COMPANY', 'SORT' => 900, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_STREET' => array('STREET' , 'GROUP' => 'COMPANY', 'SORT' => 1000, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_HOUSING' => array('BUILDING' , 'GROUP' => 'COMPANY', 'SORT' => 1100, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_BUILDING' => array('HOUSE' , 'GROUP' => 'COMPANY', 'SORT' => 1200, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_APARTMENT' => array('FLAT' , 'GROUP' => 'COMPANY', 'SORT' => 1300, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_INN' => array('INN' , 'GROUP' => 'COMPANY', 'SORT' => 1400, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_KPP' => array('KPP' , 'GROUP' => 'COMPANY', 'SORT' => 1500, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_EGRPO' => array('EGRPO' , 'GROUP' => 'COMPANY', 'SORT' => 1600, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_OKVED' => array('OKVED' , 'GROUP' => 'COMPANY', 'SORT' => 1700, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_OKDP' => array('OKDP' , 'GROUP' => 'COMPANY', 'SORT' => 1800, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_OKOPF' => array('OKOPF' , 'GROUP' => 'COMPANY', 'SORT' => 1900, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_OKFC' => array('OKFC' , 'GROUP' => 'COMPANY', 'SORT' => 2000, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_OKPO' => array('OKPO' , 'GROUP' => 'COMPANY', 'SORT' => 2100, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_BANK_ACCOUNT' => array('ACCOUNT_NUMBER', 'GROUP' => 'COMPANY', 'SORT' => 2200, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_PHONE' => array('PHONE' , 'GROUP' => 'COMPANY', 'SORT' => 2300, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_EMAIL' => array('EMAIL' , 'GROUP' => 'COMPANY', 'SORT' => 2400, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
'COMPANY_CONTACT_NAME' => array('CONTACT_PERSON', 'GROUP' => 'COMPANY', 'SORT' => 2500, 'DOMAIN' => BusinessValue::ENTITY_DOMAIN, 'MAP' => array()),
);
$personsDomains = array();
$result = Application::getConnection()->query('SELECT * FROM b_sale_export');
while ($row = $result->fetch())
{
if (($import = unserialize($row['VARS'])) && is_array($import))
{
$personId = $row['PERSON_TYPE_ID'];
$domain = $import['IS_FIZ'] === 'Y' ? BusinessValue::INDIVIDUAL_DOMAIN : BusinessValue::ENTITY_DOMAIN;
$personsDomains[$personId] = $domain;
foreach ($codes as &$code)
{
if ($code['DOMAIN'] == $domain && ($map = $import[$code[0]]) && is_array($map) && ($item = $map['VALUE']))
{
$entity = $map['TYPE'];
switch ($entity)
{
case '' : break;
case 'USER' : break;
case 'ORDER' : break;
case 'PROPERTY':
if (! is_numeric($item)) // TODO: 6_COUNTRY, 6_CITY, 18_COUNTRY, 18_CITY
$entity = null;
break;
default: $entity = null;
}
if ($entity !== null)
$code['MAP'][$personId] = array($entity, $item);
}
}
unset($code);
}
}
return BusinessValue::install('1C_INTEGRATION', '/bitrix/modules/sale/1c_integration_codes.php', array(
'PERSON_DOMAIN' => $personsDomains,
'GROUPS' => array(
'COMPANY' => array('SORT' => 100),
'CLIENT' => array('SORT' => 200),
),
'CODES' => $codes,
));
}