• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/storedocumenttable.php
  • Класс: BitrixCatalogStoreDocumentTable
  • Вызов: StoreDocumentTable::getMap
static function getMap()
{
	return [
		'ID' => new IntegerField(
			'ID',
			[
				'primary' => true,
				'autocomplete' => true,
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_ID_FIELD'),
			]
		),
		'TITLE' => new StringField(
			'TITLE',
			[
				'validation' => [__CLASS__, 'validateTitle'],
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_TITLE_FIELD')
			]
		),
		'DOC_TYPE' => new EnumField(
			'DOC_TYPE',
			[
				'required' => true,
				'values' => static::getTypeList(),
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DOC_TYPE_FIELD'),
			]
		),
		'DOC_NUMBER' => new StringField(
			'DOC_NUMBER',
			[
				'validation' => [__CLASS__, 'validateDocNumber'],
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DOC_NUMBER_FIELD'),
			]
		),
		'SITE_ID' => new StringField(
			'SITE_ID',
			[
				'validation' => [__CLASS__, 'validateSiteId'],
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_SITE_ID_FIELD'),
			]
		),
		'CONTRACTOR' => new MainORMFieldsRelationsReference(
			'CONTRACTOR',
			ContractorTable::class,
			MainORMQueryJoin::on('this.CONTRACTOR_ID', 'ref.ID')
		),
		'CONTRACTOR_ID' => new IntegerField(
			'CONTRACTOR_ID',
			[
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_CONTRACTOR_ID_FIELD'),
			]
		),
		'DATE_MODIFY' => new DatetimeField(
			'DATE_MODIFY',
			[
				'default_value' => function()
					{
						return new MainTypeDateTime();
					},
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DATE_MODIFY_FIELD'),
			]
		),
		'DATE_CREATE' => new DatetimeField(
			'DATE_CREATE',
			[
				'default_value' => function()
				{
					return new MainTypeDateTime();
				},
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DATE_CREATE_FIELD'),
			]
		),
		'CREATED_BY' => new IntegerField(
			'CREATED_BY',
			[
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_CREATED_BY_FIELD'),
			]
		),
		'CREATED_BY_USER' => new MainORMFieldsRelationsReference(
			'CREATED_BY_USER',
			UserTable::class,
			MainORMQueryJoin::on('this.CREATED_BY', 'ref.ID')
		),
		'MODIFIED_BY' => new IntegerField(
			'MODIFIED_BY',
			[
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_MODIFIED_BY_FIELD'),
			]
		),
		'MODIFIED_BY_USER' => new MainORMFieldsRelationsReference(
			'MODIFIED_BY_USER',
			UserTable::class,
			MainORMQueryJoin::on('this.MODIFIED_BY', 'ref.ID')
		),
		'RESPONSIBLE_ID' => new IntegerField(
			'RESPONSIBLE_ID',
			[
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_RESPONSIBLE_ID_FIELD')
			]
		),
		'RESPONSIBLE' => new MainORMFieldsRelationsReference(
			'RESPONSIBLE',
			UserTable::class,
			MainORMQueryJoin::on('this.RESPONSIBLE_ID', 'ref.ID')
		),
		'CURRENCY' => new StringField(
			'CURRENCY',
			[
				'validation' => [__CLASS__, 'validateCurrency'],
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_CURRENCY_FIELD'),
			]
		),
		'STATUS' => new BooleanField(
			'STATUS',
			[
				'values' => ['N', 'Y'],
				'default' => 'N',
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_STATUS_FIELD'),
			]
		),
		'WAS_CANCELLED' => new BooleanField(
			'WAS_CANCELLED',
			[
				'values' => array('N', 'Y'),
				'default' => 'N',
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_WAS_CANCELLED_FIELD'),
			]
		),
		'DATE_STATUS' => new DatetimeField(
			'DATE_STATUS',
			[
				'default_value' => null,
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DATE_STATUS_FIELD'),
			]
		),
		'DATE_DOCUMENT' => new DatetimeField(
			'DATE_DOCUMENT',
			[
				'default_value' => function()
				{
					return new MainTypeDateTime();
				},
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_DATE_DOCUMENT_FIELD'),
			]
		),
		'STATUS_BY' => new IntegerField(
			'STATUS_BY',
			[
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_STATUS_BY_FIELD'),
			]
		),
		'STATUS_BY_USER' => new MainORMFieldsRelationsReference(
			'STATUS_BY_USER',
			UserTable::class,
			MainORMQueryJoin::on('this.STATUS_BY', 'ref.ID')
		),
		'TOTAL' => new FloatField(
			'TOTAL',
			[
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_TOTAL_FIELD'),
			]
		),
		'COMMENTARY' => new StringField(
			'COMMENTARY',
			[
				'validation' => [__CLASS__, 'validateCommentary'],
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_COMMENTARY_FIELD'),
			]
		),
		'ITEMS_ORDER_DATE' => new DatetimeField(
			'ITEMS_ORDER_DATE',
			[
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_ITEMS_ORDER_DATE_FIELD')
			]
		),
		'ITEMS_RECEIVED_DATE' => new DatetimeField(
			'ITEMS_RECEIVED_DATE',
			[
				'title' => Loc::getMessage('INVENTORY_DOCUMENT_ENTITY_ITEMS_RECEIVED_DATE_FIELD')
			]
		),
		'ELEMENTS' => (new MainORMFieldsRelationsOneToMany(
			'ELEMENTS',
			StoreDocumentElementTable::class,
			'DOCUMENT'
		))->configureJoinType('left'),
	];
}