3namespace Bitrix\Catalog\Document;
5use Bitrix\Catalog\StoreDocumentTable;
6use Bitrix\Main\Config\Option;
9use Bitrix\Main\Web\Json;
17 $requiredFields = Json::decode(Option::get(
'catalog',
'store_document_required_fields_' . $docType)) ?: [];
24 return $requiredFields;
30 $allowedFields = self::getAllowedRequiredSettingFieldsByDocumentId($docType);
33 $result->addError(
new Error(
'Field "' . $fieldName .
'" is not available'));
39 if (in_array($fieldName, $requiredFields,
true))
41 $result->addError(
new Error(
'Field "' . $fieldName .
'" already required'));
46 $requiredFields[] = $fieldName;
47 self::saveRequiredFields($docType, $requiredFields);
57 $fieldIndex = array_search($fieldName, $requiredFields,
true);
58 if ($fieldIndex ===
false)
60 $result->addError(
new Error(
'Field "' . $fieldName .
'" already not required'));
65 unset($requiredFields[$fieldIndex]);
66 $requiredFields = array_values($requiredFields);
67 self::saveRequiredFields($docType, $requiredFields);
72 private static function saveRequiredFields(
string $docType,
array $requiredFields): void
74 Option::set(
'catalog',
'store_document_required_fields_' . $docType, Json::encode($requiredFields));
77 private static function getAllowedRequiredSettingFieldsByDocumentId(
string $documentType):
array
79 return match ($documentType) {
85 'ITEMS_RECEIVED_DATE',
static getRequiredFields(string $docType)
static deleteRequiredField(string $docType, string $fieldName)
static addRequiredField(string $docType, string $fieldName)
const TYPE_STORE_ADJUSTMENT
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)