Дополнительная табличная часть документа как расширение таблицы базы данных HYDB™

Последние изменение: 04.10.2018

Платформа Mobile SMARTS версии 3 позволяет вести запись в дополнительную табличную часть документа, по структуре повторяющую таблицу базы данных. При этом, запрос к дополнительной таблице базы данных будет искать и в соответствующей табличной части документа.

В качестве примера записи в дополнительную табличную часть документа будет использована работа с сериями в поступлении, Mobile SMARTS: Магазин 15.

Работа с дополнительной табличной частью документа

Каждый документ Mobile SMARTS может использовать табличные части, имеющие имя и структуру, аналогичные дополнительным таблицам базы данных. Создавать вручную такие дополнительные части не нужно, они будут созданы автоматически при записи.

Например, в операции Поступление нет дополнительных табличных частей, но есть дополнительная таблица базы данных Серия:


Запись в дополнительную табличную часть

Запись данных в дополнительную табличную часть документа:

НоваяСтрока = new Cleverence.Warehouse.Row()
НоваяСтрока.Поле1 = данные
...
Document.ИмяТаблицыБазы.Rows.Add(НоваяСтрока)

Здесь:

НоваяСтрока = new Cleverence.Warehouse.Row() - создание нового объекта строки с именем НоваяСтрока;

НоваяСтрока.Поле1 = данные - заполнение поля строки. Структура полей берётся из таблицы базы данных;

Document.ИмяТаблицыБазы.Rows.Add(НоваяСтрока) - занесение строки НоваяСтрока в табличную часть документа ИмяТаблицыБазы.

Рассмотрим на примере занесения новых серий в операции Поступление. Для записи новых серий используется операция СозданиеСерии:


Как видим, при заполнении полей строки данными, структура полей взята из дополнительной таблицы базы данных Серии. Запись производится в дополнительную табличную часть документа (Document.Серии).

Работа с записанными данными

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

Например, запрос select (*) from {Серии} выведет все имеющиеся строки из дополнительной таблицы базы данных (Серии) и из дополнительной табличной части документа (Document.Серии).

Можно ограничить поиск только дополнительной табличной частью документа, обратившись только к ней. В этом случае запрос примет следующий вид: select (*) from {Document.Серии}.

При завершении документа все новые строки вместе с документом попадут на сервер, и их можно будет загрузить и обработать в учетной системе.