Описание модулей

database_reader

class onec_dtools.database_reader.DatabaseReader(db_file)
Параметры:db_file (BufferedReader) – файл базы данных
locale = None

Язык БД

tables = None

Словарь таблиц БД.

Ключ: Имя таблицы

Значение: Объект класса Table

total_pages = None

Количество страниц в БД

version = None

Версия формата

class onec_dtools.database_reader.Table(db_file, description)

Таблица файловой БД

Параметры:
  • db_file (BufferedReader) – Объект файла БД
  • description (string) – Описание таблицы во внутреннем формате 1С
__getitem__(key)

Реализует интерфейс работы с таблицой как со списком

Параметры:key (int) – индекс строки
Результат:строка таблицы
Тип результата:Row
__iter__()

Реализует интерфейс перебора строк табилцы

Результат:Итератор строк таблицы
__len__()

Позволяет получать число строк в таблице

Результат:Общее количество строк в таблице (включая пустые)
Тип результата:int
fields = None

Словарь описаний полей таблицы

name = None

Имя таблицы

class onec_dtools.database_reader.Row(db_file, row_bytes, table)

Строка БД

Параметры:
  • db_file (BufferedReader) – Объект файла БД
  • row_bytes (bytearray) – Внутреннее представление строки
  • table (Table) – Таблица БД, которой принадлежит строка.
__getitem__(key)

Позволяет получать значения полей по имени колонки

Параметры:key (string) – Имя колонки
Результат:Значение поля
as_dict(read_blobs=False)

Возвращает представление строки таблицы в виде словаря

Параметры:read_blobs (bool) – Флаг считывания значений BLOB полей
Результат:Строка таблицы
Тип результата:OrderedDict
as_list(read_blobs=False)

Возвращает представление строки таблицы в виде списка

Параметры:read_blobs (bool) – Флаг считывания значений BLOB полей
Результат:Строка таблицы
Тип результата:list
is_empty = None

Флаг пустой строки. Все поля пустой строки равны None

class onec_dtools.database_reader.Blob(db_file, blob_size, blob_offset, blob_chunk_offset, field_type)

Поле неограниченной длины

Параметры:
  • db_file (BufferedReader) – Объект файла БД
  • blob_size (int) – Размер BLOB в байтах
  • blob_offset (int) – Смещение объекта BLOB данных таблицы в файле БД (страниц)
  • blob_chunk_offset (int) – Смещение данных внутри BLOB объекта (число блоков по 256 байт)
  • field_type (string) – тип поля неограниченной длины (I или NT)
__iter__()

Позволяет считывать данные поля блоками.

Результат:Итератор BLOB кусками по 256 байт
Тип результата:bytearray
__len__()
Результат:Размер поля в байтах
Тип результата:int
value
Результат:Значение поля
Тип результата:bytearray или string
class onec_dtools.database_reader.DBObject(db_file, object_offset)

Объект БД

Параметры:
  • db_file (BufferedReader) – Объект файла БД
  • object_offset (int) – смещение объекта БД относительно начала файла БД (в страницах)
__len__()

Реализует интерфейс получения размера объета

Результат:Размер объекта в байтах
Тип результата:int
read(size=-1)

Читает не более size байт данных объекта БД

Параметры:size (int) – Размер считываемых данных. Size < 0 для чтения всего объекта.
Результат:данные объекта
Тип результата:bytearray
seek(pos)

Позиционируется на смещении относительно начала данных объекта

Параметры:pos (int) – Байт от начала данных объекта
class onec_dtools.database_reader.FieldDescription

Описание поля таблицы

type
null_exists
length
precision

Длина дробной части для типа Numeric

case_sensitive
data_offset

Смещение данных поля относительно начала строки (байт)

data_length

Длина данных поля (байт)

onec_dtools.database_reader.database_header(db_file)

Читает заголовок файла БД

Параметры:db_file (BufferedReader) – Объект файла БД
Результат:версия и число страниц
Тип результата:tuple
onec_dtools.database_reader.root_object(db_file)

Читает корневой объет БД

Параметры:db_file (BufferedReader) – Объект файла БД
Результат:язык и смещения объектов описания таблиц БД
Тип результата:tuple
onec_dtools.database_reader.raw_tables_descriptions(db_file, tables_offsets)

Получает описания таблиц БД во внутренне формате 1С.

Параметры:
  • db_file (BufferedReader) – Объект файла БД
  • tables_offsets (tuple) – Cмещения объектов описания таблиц БД
Результат:

Описания таблиц

Тип результата:

list

onec_dtools.database_reader.calc_field_size(field_type, length)

Рассчитывает размер данных поля

Параметры:
  • field_type (string) – Тип поля
  • length (int) – Длина поля
Результат:

Длина поля в байтах

Тип результата:

int

onec_dtools.database_reader.numeric_to_int(numeric, length, precision)

Преобразуем Numeric формат 1С в число.

Параметры:
  • numeric (bytearray) – число в формате Numeric
  • length (int) – длина поля
  • precision (int) – точность
Результат:

Числовое представление

Тип результата:

int или float

onec_dtools.database_reader.nvc_to_string(nvc)

Преобразует NVarChar формат 1С в строку.

Параметры:nvc (bytearray) – строка в формате NVC
Результат:Строковое представление
Тип результата:string
onec_dtools.database_reader.bytes_to_datetime(bts)

Пробразует данные типа DT в дату/время

Параметры:bts (bytearray) – значение в формате DT
Результат:дата+время
Тип результата:datetime

container_reader

class onec_dtools.container_reader.ContainerReader(file)

Класс для чтения контейнеров

entries = None

Список файлов в контейнере

extract(path, deflate=False, recursive=False)

Распаковывает содержимое контейнера в каталог

Параметры:
  • path (string) – каталог распаковки
  • deflate (bool) – разархивировать содержимое файлов
  • recursive (bool) – выполнять рекурсивно
onec_dtools.container_reader.extract(filename, folder)

Распаковка контейнера. Сахар для ContainerReader

Параметры:
  • filename (string) – полное имя файла-контейнера
  • folder (string) – каталог назначения
onec_dtools.container_reader.read_header(file)

Считывыет заголовок контейнера.

Параметры:file (BufferedReader) – объект файла контейнера
Результат:Заголовок контейнера
Тип результата:Header
onec_dtools.container_reader.read_block(file, offset, max_data_length=None)

Считывает блок данных из контейнера.

Параметры:
  • file (BufferedReader) – объект файла контейнера
  • offset (int) – смещение блока в файле контейнера (байт)
  • max_data_length (int) – максимальный размер считываемых данных из блока (байт)
Результат:

объект блока данных

Тип результата:

Block

onec_dtools.container_reader.read_document(file, offset)

Считывает документ из контейнера. В качестве данных документа возвращается генератор.

Параметры:
  • file (BufferedReader) – объект файла контейнера
  • offset (int) – смещение документа в контейнере
Результат:

объект документа

Тип результата:

Document

onec_dtools.container_reader.read_full_document(file, offset)

Считывает документ из контейнера. Данные документа считываются целиком.

Параметры:
  • file (BufferedReader) – объект файла контейнера
  • offset (int) – смещение документа в контейнере (байт)
Результат:

объект документа

Тип результата:

Document

onec_dtools.container_reader.parse_datetime(time)

Преобразует внутренний формат хранения дат файлов в контейнере в обычную дату

Параметры:time (string) – внутреннее представление даты
Результат:дата/время
Тип результата:datetime
onec_dtools.container_reader.read_entries(file)

Считывает оглавление контейнера

Параметры:file (BufferedReader) – объект файла контейнера
Результат:словарь файлов в контейнере
Тип результата:OrderedDict

container_writer

class onec_dtools.container_writer.ContainerWriter(file)

Класс для записи контейнеров

Параметры:file (BufferedReader) – объект файла контейнера
__enter__()

Вход в блок. Позволяет применять оператор with.

__exit__(exc_type, exc_val, exc_tb)

Выход из блока. Позволяет применять оператор with.

add_file(fd, name, inflate=False)

Добавляет файл в контейнер

Параметры:
  • fd (BufferedReader) – file-like объект файла
  • name (string) – Имя файла в контейнере
  • inflate (bool) – флаг сжатия
write_block(data, **kwargs)

Записывает блок данных в контейнер

Параметры:
  • data – file-like объект
  • kwargs – Опциональные параметры
Результат:

смещение записанных данных (байт)

Тип результата:

int

write_header()

Записывает заголовок контейнера

write_toc()

Записывает оглавление контейнера

onec_dtools.container_writer.build(folder, filename)

Запакоывает каталог в контейнер включая вложенные каталоги. Сахар для ContainerWriter.

Параметры:
  • folder (string) – каталог с данными, запаковываемыми в контейнер
  • filename (string) – имя файла контейнера
onec_dtools.container_writer.add_entries(container, folder, nested=False)

Рекурсивно добавляет файлы из директории в контейнер

Параметры:
  • container (BufferedReader) – объет файла контейнера
  • folder (string) – каталог файлов, которые надо поместить в контейнер
  • nested (bool) – обрабатывать вложенные каталоги
onec_dtools.container_writer.epoch2int(epoch_time)

Преобразует время в формате “количество секунд с начала эпохи” в количество сотых микросекундных интервалов с 0001.01.01

Параметры:epoch_time (real) – время в формате Python
Результат:количество сотых микросекундных интервалов
Тип результата:int
onec_dtools.container_writer.int2hex(value)

Получает строковое представление целого числа в шестнадцатиричном формате длиной не менее 4 байт

Параметры:value (int) – конвертируемое число
Результат:предоставление числа
Type:string
onec_dtools.container_writer.get_size(file)

Возвращает размер file-like объекта

Параметры:file (BufferedReader) – объекта файла
Результат:размер в байтах
Тип результата:int