Документ предназначен для проведения операций с массивами ссылочной информации. Физически документ соответствует одной таблице в базе данных и таблицам табличных частей в базе данных.
Документ содержит:
В свойствах документа задаются:
Виды нумерации – варианты автоматической нумерации документов:
Если программно задается префикс номера, то автоматическая нумерация осуществляется с учетом префикса.
Экранные формы:
Если экранные формы не указаны, то система автоматически сгенерирует экранные формы на основе полей и табличных частей документа.
Документы, создаваемые на основании - содержит перечень документов, которые могу создаваться на основании текущего документа.
Содержит перечень системных полей и полей, заданных пользователем.
Системные поля:
Список табличных частей документа задает табличные части, принадлежащие этому документу.
Табличные части содержат список системных полей и полей, заданных пользователем.
Системные поля:
Содержит список выбранных объектов Регистр и объектов История, по которым документ может осуществлять движения. Движения по выбранным регистрам и историям описываются в Исполняемом коде документа.
Содержит список экранных форм документа.
В модуле программного кода описываются методы и обработчики команд интерфейса
Предопределенные поля модуля:
//Ссылка на объект данных
public BSReference Context;
//Ссылка на объект структуры
public Reference StructureObject;
//Ссылка на объект формы
public Forma ScreenForma;
//Ссылка на объект FormSimple
public FSForm FSFormObject;
//Список объектов формы WinForm
public List<object> ControlsList;// = new List<Control>();
//Абстрактная прослойка для работы объектом
public BSActions Action;
//Ссылка на программный код объекта
public dynamic ObjectModule;
//Список полей объекта, обращение к полю по имени через точку
public dynamic ObjectFields;
//Список полей формы, обращение к полю по имени через точку
public dynamic FormFields;
//Список элементов управления формы, обращение по имени через точку
public dynamic FormControls;
Предопределенные методы формы:
Форма списка документа
//Вызывается при получении данных списка
public void OnRefresh()
//Вызывается при открытии формы
public void OnShow()
Форма документа
//Вызывается при получении данных формы
public void OnRefresh()
//Вызывается при открытии формы
public void OnShow()
//Вызывается при записи объекта
public void OnSave()
//Вызывается после записи объекта
public void OnAfterSave()
//Вызывается при закрытии объекта
//Если возвращается true - форма закрывается, false - форма остатется открытой
public bool OnClose()
Содержит список печатных форм документа.
В модуле документа описываются методы работы с объектом документа и описание формирования движений по регистрам
Предопределенные свойства модуля документа:
//Ссылка на объект с данными записи справочника
public BSRererence Context
//Ссылка на объект структуры
public Rererence StructureObject
//Абстрактная прослойка для работы объектом
public BSActions Action
//Список полей объекта, обращение к полю по имени через точку
public dynamic ObjectFields
Предопределенные методы модуля документа:
//Вызывается при создании документа
public void OnCreate()
//Вызывается при чтении записи из базы
public void OnReadData()
//Вызывается перед записью документа
public bool OnBeforeSave()
//Вызывается при активации документа
public bool OnActivate()
//Вызывается при деактивации документа
public void OnDeActivate()
//Вызывается при создании документа на основании другого
public void OnBaseCreate(BSDocument baseDoc)
//Вызывается после записи документа
public void OnAfterSave()
//Вызывается при установке пометки на удаление
public bool OnMarkDelete()
//Вызывается при снятии пометки на удаление
public bool OnUnMarkDelete()
Пример использования объекта Document:
//Создание и запись документа
using (var bsDoc = new BSDocument("Счет"))
{
bsDoc.CreateRecord(); //Создание нового документа
bsDoc.Save(true); //Запись документа. True активирует документ
}
//================================================
//Пример работы с табличной частью документа, добавление строки
BSDocumentTable ТЧТаблица = Action.MGetDocumentTable("Товары");
DataRow СтрокаТЧ = ТЧТаблица.CreateNewRow();
СтрокаТЧ[“Идентификатор поля таблицы”] = “Значение”;
ТЧТаблица.AddNewRow(СтрокаТЧ);
//================================================
//Пример работы с табличной частью документа, перебор строк
//Получение объекта DataTable таб.части
DataTable dt = Action.MGetDocumentDataTable("Товары");
//Перебор строк
foreach(DataRow СтрокаТЧ in dt.Rows)
{
//получение или установка значния колонки строки таб.части
var Значение = СтрокаТЧ["Идентификатор поля таблицы"];
СтрокаТЧ["Идентификатор поля таблицы"] = "Значение";
}
Содержит список запросов, заданных для этого документа.