3namespace Bitrix\Sale\Exchange;
6use Bitrix\Main\ArgumentException;
9use Bitrix\Main\Localization\Loc;
10use Bitrix\Sale\Exchange\Entity\EntityImport;
11use Bitrix\Sale\Exchange\Entity\ShipmentImport;
12use Bitrix\Sale\Exchange\Entity\UserProfileImport;
13use Bitrix\Sale\Exchange\OneC\ConverterFactory;
14use Bitrix\Sale\Exchange\OneC\DocumentBase;
15use Bitrix\Sale\Exchange\OneC\DocumentType;
16use Bitrix\Sale\Internals\Fields;
17use Bitrix\Sale\Result;
37 foreach ($values as
$key=>$value)
49 $this->fields->set(
$name, $value);
58 return $this->fields->get(
$name);
71 $params = $item->getFieldValues();
74 if(
$fields[$item::getFieldExternalId()] ==
'')
91 $event =
new Event(
'sale', static::EVENT_ON_EXCHANGE_CONFIGURE_IMPORTER);
118 throw new ArgumentException(
"Item must be instanceof EntityImport or UserProfileImport");
120 $params = $item->getFieldValues();
124 $converter = ConverterFactory::create($item->getOwnerTypeId());
125 $converter::sanitizeFields($item->getEntity(),
$fields, $item->getSettings());
129 $criterion = $item->getCurrentCriterion($item->getEntity());
130 $collision = $item->getCurrentCollision($item->getOwnerTypeId());
133 $fieldsCriterion[
'ITEMS'] =
$params[
'ITEMS'];
135 if($criterion->equals($fieldsCriterion))
137 $collision->resolve($item);
140 if(!$criterion->equals($fieldsCriterion) ||
141 ($criterion->equals($fieldsCriterion) && !$item->hasCollisionErrors()))
160 foreach($rawFields as $raw)
164 $document = $this->documentFactoryCreate($documentTypeId);
166 $fields = $document::prepareFieldsData($raw);
187 $convertor = $this->converterFactoryCreate($document->
getTypeId());
194 $fields = $convertor->resolveParams($document);
199 if($document->
getId() <>
'')
200 $fieldsEntity = $loader->getByNumber($document->
getId());
202 $fieldsEntity = $loader->getByExternalId($document->
getExternalId());
204 if(!empty($fieldsEntity[
'ID']))
205 $fields[
'TRAITS'][
'ID'] = $fieldsEntity[
'ID'];
207 $entityImport = $this->entityFactoryCreate($entityTypeId);
210 $entityImport->setFields(
$fields);
212 return $entityImport;
231 return Loc::loadLanguageFile(
$_SERVER[
"DOCUMENT_ROOT"].
'/bitrix/components/bitrix/sale.export.1c/component.php');
static create($entityTypeID)
static getDescription($typeID)
resolveDocumentTypeId(array $fields)
static setConfig($option='', $value=true)
convertDocument(DocumentBase $document)
checkFields(array $items)
const EVENT_ON_EXCHANGE_CONFIGURE_IMPORTER
const DELIVERY_SERVICE_XMLID
resolveOwnerEntityTypeId($typeId)
static configure(ImportBase $entity)
static getSettingsByType($typeId)
static getDirectionType()
static resolveRawDocumentTypeId(array $document)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
GetMessage($name, $aReplace=null)
loggerEntities(array $items)
if(empty($signedUserToken)) $key
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']