Проектирование объектов и системные поля, доступные через #CONTEXT

Системные поля, доступные через #CONTEXT в конвейерах:

  • _selectedObjectClass – доступно в формулах видимости для кастомных поисковых атрибутов. Хранит код текущего полученного класса в поисковой панели.
  • _selectedFile – доступно в формулах видимости/блокировки для действий у элемента управления «FILE». Хранит объект {fileId, versionId, objectId} файла, на котором было вызвано действие.

Остальные поля доступны для формул видимости/блокировки у действий внутри контекста конвейера, внутри кастомных бандлов:

  • _applicationId – идентификатор текущего приложения.
  • _formView – представление текущей формы.
  • _collectionView – представление текущей коллекции.
  • _keys – массив всех ключей текущего контекста.
  • _queryParams – объект из ключей и значений текущих query-параметров URL.
  • _queryParamsArray – массив ключей текущих query параметров URL.
  • _formSaved – признак сохранения формы.
  • _formChanged – признак изменения формы.

Для форм:

Для всех форм обязательно нужно создавать элементы управления «id» и «versionId» (можно скрытые).

  • Для корректной работы обновления сущностей (PUT) необходимо создать элемент управления «recordVersion» (можно скрытый).
  • Для корректной работы функционала создания связей необходимо создать элемент управления «_uri» (можно скрытый), в который должен попасть атрибут «_uri», который приходит с бэкенда для каждого объекта. Это необходимо, так как «serviceName» и «className» для формирования URI связей берется с бэкенда.
  • Элемент управления «_uri» нужно создавать для корректной работы превью файлов, так как оттуда извлекается параметр «serviceName», который передается в прокси запрос на показ превью.
  • Элемент управления «_uri» нужно создавать для корректной работы Р7-Офис, так как оттуда извлекается параметр «serviceName», который передается в прокси запрос на получение конфигурации.

Для формул: перед вычислением формулы все значения «null» и «undefined» преобразуются к пустой строке. Если в поле *field1* хранится значение «null», то проверка на «null» сработает так: #CONTEXT.field1 = "".

Наименования библиотек у кастомных бандлов должны быть уникальны, так как наименование является ключом в глобальном объекте «window».

Для коллекций:

  • При работе с поисковым источником данных фронтенд в качестве контекста передает объект «{ goup, pageInfo, rootClass, context }». Таким образом в поисковом источнике данных контекст можно получить так: #CONTEXT.context.myKey.
  • Если для коллекции с «root class FOLDER» необходимо отобразить список корневых папок, то в источнике данных в URL запроса необходимо передать query параметр «format=CONTENT».
  • В коллекции с «root class FOLDER» при загрузке файлов в папку вызывается отдельно настроенный конвейер.

Настроить его можно в соответствующей коллекции в интерфейсе Системы.

Во время выполнения конвейера в контексте будут доступны дополнительные системные переменные:

  • «_collectionCode» – код текущей коллекции.
  • «_targetFolderId» – идентификатор папки, в которую загружаются файлы.
  • «_filesUploaded» – массив загруженных в хранилище файлов.
  • «_currentFolderId» – папка, которая открыта в текущий момент (может отличаться от папки, в которую идет загрузка файлов).
  • «_targetFolderDocuments» – массив всех документов в папке, в которую загружаются файлы.
  • «_targetFolderFileNames» – массив всех имен файлов в папке, в которую загружаются файлы.