);
		if($contractorId > 0)
			$arGeneral["CONTRACTOR_ID"] = $contractorId;
		if(strlen($currency) > 0)
			$arGeneral["CURRENCY"] = $currency;
		if(strlen($_REQUEST["CAT_DOCUMENT_SUM"]) > 0)
			$arGeneral["TOTAL"] = doubleval($_REQUEST["CAT_DOCUMENT_SUM"]);

		if($ID > 0)
		{
			unset($arGeneral['CREATED_BY']);
			if(CCatalogDocs::update($ID, $arGeneral))
				$docId = $ID;
		}
		else
			$ID = $docId = CCatalogDocs::add($arGeneral);
		if($ID > 0)
		{
			$dbElement = CCatalogStoreDocsElement::getList(array(), array("DOC_ID" => $ID), false, false, array("ID"));
			while($arElement = $dbElement->Fetch())
			{
				CCatalogStoreDocsElement::delete($arElement["ID"]);
				$dbDocsBarcode = CCatalogStoreDocsBarcode::getList(array(), array("DOC_ELEMENT_ID" => $arElement["ID"]), false, false, array("ID"));
				while($arDocsBarcode = $dbDocsBarcode->Fetch())
					CCatalogStoreDocsBarcode::delete($arDocsBarcode["ID"]);
			}
		}
		if(isset($_POST["PRODUCT"]) && is_array($_POST["PRODUCT"]) && $docId)
		{
			$arProducts = ($_POST["PRODUCT"]);
			foreach($arProducts as $key => $val)
						{
								$arElement[$key] = $value;
						}
						if($arDocumentElement['IS_MULTIPLY_BARCODE'] == 'N')
						{
							$dbDocumentElementBarcode = CCatalogStoreDocsBarcode::getList(array(), array("DOC_ELEMENT_ID" => $arDocumentElement["ID"]), false, false, array("BARCODE"));
							while($arDocumentElementBarcode = $dbDocumentElementBarcode->Fetch())
							{
								$arElement["BARCODE"][] = $arDocumentElementBarcode["BARCODE"];
							}
						}

						$arResult["ELEMENT"][] = $arElement;
					}
				}
				$result = CCatalogDocs::add($arResult);
				if($result == true)
					$DB->Commit();
				else
					$DB->Rollback();

				if($ex = $APPLICATION->GetException())
				{
					$strError = $ex->GetString();
					$lAdmin->AddGroupError($strError, $ID);
				}
				break;
		}
	}
}