• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Factory.php
  • Класс: Bitrix\Crm\Service\Factory
  • Вызов: Factory::getEditorAdapter
public function getEditorAdapter(): EditorAdapter
{
	if (!$this->editorAdapter)
	{
		$fieldsThatAreAccessibleToCurrentUser = VisibilityManager::filterNotAccessibleFields(
			$this->getEntityTypeId(),
			$this->getFieldsCollection()->getFieldNameList(),
		);
		$fieldsThatAreAccessibleToCurrentUserMap = array_flip($fieldsThatAreAccessibleToCurrentUser);
		$editorFields = [];
		foreach ($this->getFieldsCollection() as $field)
		{
			if (isset($fieldsThatAreAccessibleToCurrentUserMap[$field->getName()]))
			{
				$editorFields[] = $field;
			}
		}

		$this->editorAdapter = new EditorAdapter(
			new Field\Collection($editorFields),
			$this->getDependantFieldsMap(),
		);

		if ($this->isClientEnabled())
		{
			$this->editorAdapter->addEntityField(
				EditorAdapter::getClientField(
					$this->getFieldCaption(EditorAdapter::FIELD_CLIENT),
					EditorAdapter::FIELD_CLIENT,
					EditorAdapter::FIELD_CLIENT_DATA_NAME,
					['entityTypeId' => $this->getEntityTypeId()]
				)
			);
		}
		if ($this->isLinkWithProductsEnabled())
		{
			$this->editorAdapter->addEntityField(
				EditorAdapter::getOpportunityField(
					$this->getFieldCaption(EditorAdapter::FIELD_OPPORTUNITY),
					EditorAdapter::FIELD_OPPORTUNITY,
					$this->isPaymentsEnabled()
				)
			);
			$this->editorAdapter->addEntityField(
				EditorAdapter::getProductRowSummaryField(
					$this->getFieldCaption(EditorAdapter::FIELD_PRODUCT_ROW_SUMMARY)
				)
			);
		}
	}

	return $this->editorAdapter;
}