Перейти к содержанию

CDictionaryElement

Класс для взаимодействия с массивом объектов справочника.

Наследуется от CAttributes, но тут учитываются и значения атрибутов справочника.

Инициализация

Раздел для опытных пользователей

Отдельно инициализировать класс не нужно, т.к. он приходит при получении элементов справочника.

from src.service_dictionary.elements import CDictionaryElement
CDictionaryElement(
    elements: Optional[List] = None,
    fields: Optional[List[Dict]] = None
)
  • elements - массив со значениями атрибутов.
  • fields - массив с описанием атрибутов.

Можно не передавать атрибуты при инициализации, а добавить их позднее, методами add_attributes или refresh_attributes.

Очистка класса

При ручной инициализации класса, необходимо вызвать очистку (метод .clear()) после завершения работы.

Параметры

Наследуются от CAttributes.

Свойства

Наследуются от CAttributes. К ним так же добавляются:

  • hash_primary_key-> int - Получение хеша первичного ключа. Хеш берется по словарю {<id>: <value>}

Методы

Наследуются от CAttributes. К ним так же добавляются:

serialize

Сериализация атрибутов и данных справочника в словарь

serialize() -> Dict

Пример сериализации

{
    "elements": {},
    "fields": []
}
Где elements сериализуются методом to_json() а fields - CAttributes.serialize()

compare_primary_keys

Сравнение первичных ключей по хешу

compare_primary_keys(keys: Dict) -> bool

fill_from_attributes

Заполнение класса с использованием созданного CAttributes

fill_from_attributes(attributes: CAttributes, elements: Optional[List] = None) -> None

to_json

Получение словаря с данными справочника

to_json() -> Dict

to_old_format_json

Получение объекта справочника (устаревший метод)

to_old_format_json(
    binding: Optional[Dict] = None,
    block_id: Optional[str] = None,
    dict_id: Optional[str] = None,
    revision_id: Optional[str] = None,
) -> Dict: