/**
*
*/
package com.ipc.oce.objects;
import java.util.Date;
import org.jinterop.dcom.common.JIException;
import org.jinterop.dcom.core.JIVariant;
import org.jinterop.dcom.impls.automation.IJIDispatch;
import com.ipc.oce.OCApp;
import com.ipc.oce.OCArray;
import com.ipc.oce.OCObject;
import com.ipc.oce.OCStructure;
import com.ipc.oce.OCValueTable;
import com.ipc.oce.OCVariant;
import com.ipc.oce.metadata.objects.OCAccountingRegisterMetadataObject;
/**
* Предназначен для управления данными конкретного регистра бухгалтерии.
* Предназначен для поиска записей, выборки и создания записей регистра
* бухгалтерии
*
* @author Konovalov
*
*/
public class OCAccountingRegisterManager extends _OCAbstractManager {
/**
* @param aDispatch
*/
public OCAccountingRegisterManager(IJIDispatch aDispatch) {
super(aDispatch);
}
/**
* @param aDispatch
* @throws JIException
*/
public OCAccountingRegisterManager(JIVariant aDispatch) throws JIException {
super(aDispatch);
}
/**
* @param object
*/
public OCAccountingRegisterManager(OCObject object) {
super(object);
}
@Override
protected OCAccountingRegisterMetadataObject loadMetadata() throws JIException {
return OCApp.getInstance(getAssociatedSessionID()).getMetadata().getAccountingRegisters().find(managerName);
}
@Override
public OCAccountingRegisterMetadataObject getMetadata() throws JIException {
return new OCAccountingRegisterMetadataObject(super.getMetadata());
}
/**
* Формирует выборку записей регистра бухгалтерии. Если какая-либо граница
* интервала не задана, то по данной границе интервала выборка не
* ограничена.
*
* @param startDate
* - Определяет начало интервала для выборки записей регистра
* @param endDate
* - Определяет конец интервала для выборки записей регистра
* @param structure
* - Задает поле и значение отбора открываемой выборки. Ключ
* структуры описывает имя поля, а значение структуры - значение
* отбора по этому полю. В качестве полей для отбора могут
* задаваться измерения или реквизиты, для которых в
* конфигураторе признак индексирования установлен в значение
* "Индексировать". Важно! Структура может содержать только один
* элемент.
* @param order
* - Может содержать слово "Возр" или "Убыв", тогда стандартный
* порядок будет использоваться с указанным направлением. По
* умолчанию "Возр". Может содержать имя поля (реквизита или
* измерения, имеющими базовый тип и для которых установлен
* признак индексирования) и через пробел слово "Возр" или
* "Убыв", тогда упорядочивание будет производится по указанному
* полю в указанном порядке. Значение по умолчанию: Пустая строка
* @return OCAccountingRegisterSelection
* @throws JIException
*/
public OCAccountingRegisterSelection select(Date startDate, Date endDate,
OCStructure structure, String order) throws JIException {
return new OCAccountingRegisterSelection(
callMethodA(
"Select",
new Object[] {
new JIVariant(startDate),
new JIVariant(endDate),
structure != null ? ocObject2Dispatch(structure) : null,
new JIVariant(order)
})[0]);
}
/**
* Формирует выборку записей регистра бухгалтерии. Если какая-либо граница
* интервала не задана, то по данной границе интервала выборка не
* ограничена.
*
* @param startDate
* - Определяет начало интервала для выборки записей регистра
* @param endDate
* - Определяет конец интервала для выборки записей регистра
* @return OCAccountingRegisterSelection
* @throws JIException
*/
public OCAccountingRegisterSelection select(Date startDate, Date endDate) throws JIException{
return select(startDate, endDate, null, null);
}
/**
* Формирует выборку записей регистра бухгалтерии по регистратору.
* @param ref - Значение регистратора (OCDocumentRef)
* @return OCAccountingRegisterSelection
* @throws JIException
*/
public OCAccountingRegisterSelection selectByRecorder(OCDocumentRef ref) throws JIException{
return new OCAccountingRegisterSelection(callMethodA(
"SelectByRecorder", new Object[] { ocObject2Dispatch(ref) })[0]);
}
/**
* Получает обороты по регистру бухгалтерии на заданный момент. Обороты
* получаются в разрезе заданных измерений и по заданным ресурсам. В
* измерения входят счет, субконто, измерения, кор. счет, кор. субконто,
* кор. измерения. Примечание: Параметры "Виды субконто" и
* "Виды кор. субконто" не существуют, если при конфигурировании для плана
* счетов не указаны субконто.
*
* @param startDate
* - Момент времени, начиная с которого необходимо получить
* обороты. Если параметр не указан, то обороты будут получены
* начиная с момента ведения базы данных. Если в качестве
* параметра передана Дата или МоментВремени, то обороты за
* указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param endDate
* - Момент времени, определяющий конец периода за который
* необходимо получить обороты. Если параметр не указан, то
* обороты будут получены до самого позднего движения регистра.
* Если в качестве параметра передана Дата или МоментВремени, то
* обороты за указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param subkonto
* - Передается ссылка или массив ссылок на виды субконто. Виды
* субконто определяют, какие значения субконто будут доступны по
* именам "Субконто1", "Субконто2" и т.д. Кроме того, обороты
* будут посчитаны только по счетам, имеющим заданные виды
* субконто. Если виды субконто не заданы, то обращение к
* значениям субконто осуществляется по порядку (индексу), как
* они определены на соответствующем счете. Параметр не
* существует, если при конфигурировании для плана счетов не
* указаны субконто.
* @param korSubkonto
* - Передается ссылка или массив ссылок на виды субконто. Виды
* кор. субконто определяют, какие значения корреспондирующих
* субконто будут доступны по именам "КорСубконто1",
* "КорСубконто2" и т.д. Кроме того, обороты будут посчитаны
* только по кор. счетам, имеющим заданные виды кор. субконто.
* Если виды кор. субконто не заданы, то обращение к значениям
* кор. субконто осуществляется по порядку (индексу), как они
* определены на соответствующем счете. Важно! Имеет смысл только
* для регистра бухгалтерии с поддержкой корреспонденцией. Для
* регистра без корреспонденции параметр не существует! Параметр
* не существует, если при конфигурировании для плана счетов не
* указаны субконто.
* @param structure
* - Структура, содержащая набор значений измерений регистра, по
* которым надо отбирать итоги. Допустимые значения ключа: Счет,
* Субконто<Номер>, <Имя измерения>, КорСчет, КорСубконто<Номер>,
* <Имя измерения>Кор (только для не балансовых измерений). Если
* параметр не указан, то отбор не используется.
* @param dimension
* - Список измерений, для которых надо получить обороты. Строка,
* содержащая имена измерений, разделенных запятыми. Допустимые
* имена измерений: Счет, Субконто<Номер>, <Имя измерения>,
* КорСчет, КорСубконто<Номер>, <Имя измерения>Кор. Если параметр
* не указан или указана пустая строка, то обороты будут
* сформированы по всем измерениям. Значение по умолчанию: Пустая
* строка
* @param resouces
* - Список ресурсов, для которых надо получить обороты. Строка,
* содержащая имена ресурсов, разделенных запятыми. Если параметр
* не указан или указана пустая строка, то обороты будут
* сформированы по всем ресурсам. Значение по умолчанию: Пустая
* строка
* @return OCValueTable В таблице содержатся поля "ОборотДт" и "ОборотКт".
* @throws JIException
* ошибка DCOM
*/
public OCValueTable getTurnovers(Date startDate, Date endDate, OCChartOfCharacteristicTypesRef subkonto, OCChartOfCharacteristicTypesRef korSubkonto, OCStructure structure, String dimension, String resouces) throws JIException {
OCApp inst = OCApp.getInstance(getAssociatedSessionID());
OCArray subkontoArray = null;
OCArray korSubkontoArray = null;
if (subkonto != null) {
subkontoArray = inst.newArray();
subkontoArray.add(new OCVariant(subkonto));
}
if (korSubkonto != null) {
korSubkontoArray = inst.newArray();
korSubkontoArray.add(new OCVariant(korSubkonto));
}
return getTurnovers(startDate, endDate, subkontoArray, korSubkontoArray, structure, dimension, resouces);
}
/**
* Получает обороты по регистру бухгалтерии на заданный момент. Обороты
* получаются в разрезе заданных измерений и по заданным ресурсам. В
* измерения входят счет, субконто, измерения, кор. счет, кор. субконто,
* кор. измерения. Примечание: Параметры "Виды субконто" и
* "Виды кор. субконто" не существуют, если при конфигурировании для плана
* счетов не указаны субконто.
*
* @param startDate
* - Момент времени, начиная с которого необходимо получить
* обороты. Если параметр не указан, то обороты будут получены
* начиная с момента ведения базы данных. Если в качестве
* параметра передана Дата или МоментВремени, то обороты за
* указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param endDate
* - Момент времени, определяющий конец периода за который
* необходимо получить обороты. Если параметр не указан, то
* обороты будут получены до самого позднего движения регистра.
* Если в качестве параметра передана Дата или МоментВремени, то
* обороты за указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param subkonto
* - Передается ссылка или массив ссылок на виды субконто. Виды
* субконто определяют, какие значения субконто будут доступны по
* именам "Субконто1", "Субконто2" и т.д. Кроме того, обороты
* будут посчитаны только по счетам, имеющим заданные виды
* субконто. Если виды субконто не заданы, то обращение к
* значениям субконто осуществляется по порядку (индексу), как
* они определены на соответствующем счете. Параметр не
* существует, если при конфигурировании для плана счетов не
* указаны субконто.
* @param korSubkonto
* - Передается ссылка или массив ссылок на виды субконто. Виды
* кор. субконто определяют, какие значения корреспондирующих
* субконто будут доступны по именам "КорСубконто1",
* "КорСубконто2" и т.д. Кроме того, обороты будут посчитаны
* только по кор. счетам, имеющим заданные виды кор. субконто.
* Если виды кор. субконто не заданы, то обращение к значениям
* кор. субконто осуществляется по порядку (индексу), как они
* определены на соответствующем счете. Важно! Имеет смысл только
* для регистра бухгалтерии с поддержкой корреспонденцией. Для
* регистра без корреспонденции параметр не существует! Параметр
* не существует, если при конфигурировании для плана счетов не
* указаны субконто.
* @param structure
* - Структура, содержащая набор значений измерений регистра, по
* которым надо отбирать итоги. Допустимые значения ключа: Счет,
* Субконто<Номер>, <Имя измерения>, КорСчет, КорСубконто<Номер>,
* <Имя измерения>Кор (только для не балансовых измерений). Если
* параметр не указан, то отбор не используется.
* @param dimension
* - Список измерений, для которых надо получить обороты. Строка,
* содержащая имена измерений, разделенных запятыми. Допустимые
* имена измерений: Счет, Субконто<Номер>, <Имя измерения>,
* КорСчет, КорСубконто<Номер>, <Имя измерения>Кор. Если параметр
* не указан или указана пустая строка, то обороты будут
* сформированы по всем измерениям. Значение по умолчанию: Пустая
* строка
* @param resouces
* - Список ресурсов, для которых надо получить обороты. Строка,
* содержащая имена ресурсов, разделенных запятыми. Если параметр
* не указан или указана пустая строка, то обороты будут
* сформированы по всем ресурсам. Значение по умолчанию: Пустая
* строка
* @return OCValueTable В таблице содержатся поля "ОборотДт" и "ОборотКт".
* @throws JIException
* ошибка DCOM
*/
public OCValueTable getTurnovers(Date startDate, Date endDate, OCArray subkonto, OCArray korSubkonto, OCStructure structure, String dimension, String resouces) throws JIException {
return new OCValueTable(callMethodA("Turnovers", new Object[]{
new JIVariant(startDate),
new JIVariant(endDate),
subkonto != null ? ocObject2Dispatch(subkonto) : null,
korSubkonto != null ? ocObject2Dispatch(korSubkonto) : null,
new JIVariant(dimension),
new JIVariant(resouces)
})[0]);
}
/**
* Получает обороты по регистру бухгалтерии на заданный момент. Обороты
* получаются в разрезе заданных измерений и по заданным ресурсам. В
* измерения входят счет, субконто, измерения, кор. счет, кор. субконто,
* кор. измерения. Примечание: Параметры "Виды субконто" и
* "Виды кор. субконто" не существуют, если при конфигурировании для плана
* счетов не указаны субконто.
*
* @param startDate
* - Момент времени, начиная с которого необходимо получить
* обороты. Если параметр не указан, то обороты будут получены
* начиная с момента ведения базы данных. Если в качестве
* параметра передана Дата или МоментВремени, то обороты за
* указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param endDate
* - Момент времени, определяющий конец периода за который
* необходимо получить обороты. Если параметр не указан, то
* обороты будут получены до самого позднего движения регистра.
* Если в качестве параметра передана Дата или МоментВремени, то
* обороты за указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @return OCValueTable В таблице содержатся поля "ОборотДт" и "ОборотКт".
* @throws JIException
* ошибка DCOM
*/
public OCValueTable getTurnovers(Date startDate, Date endDate) throws JIException{
return getTurnovers(startDate, endDate, (OCArray) null, (OCArray) null,
null, null, null);
}
/**
* Получает обороты по регистру бухгалтерии на заданный момент. Обороты
* получаются в разрезе заданных измерений и по заданным ресурсам. В
* измерения входят счет дебета, субконто дебета, счет кредита, субконто
* кредита, измерения кредита, измерения (для балансовых) и измерения
* дебета, измерения кредита (для не балансовых).
*
* @param startDate
* - Момент времени, начиная с которого необходимо получить
* обороты. Если параметр не указан, то обороты будут получены
* начиная с момента ведения базы данных. Если в качестве
* параметра передана Дата или МоментВремени, то обороты за
* указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param endDate
* - Момент времени, определяющий конец периода за который
* необходимо получить обороты. Если параметр не указан, то
* обороты будут получены до самого позднего движения регистра.
* Если в качестве параметра передана Дата или МоментВремени, то
* обороты за указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param subkontoDr
* - Передается ссылка или массив ссылок на виды субконто.
* Параметр определяет, какие значения субконто дебета будут
* доступны по именам "СубконтоДт1", "СубконтоДт2" и т.д. Кроме
* того, обороты будут посчитаны только по счетам дебета, имеющим
* заданные виды субконто дебета. Если параметр не задан, то
* обращение к значениям субконто дебета осуществляется по
* порядку (индексу), как они определены на соответствующем
* счете. Параметр не существует, если при конфигурировании для
* плана счетов не указаны субконто.
* @param subkontoCr
* - Передается ссылка или массив ссылок на виды субконто. Виды
* субконто определяют, какие значения субконто кредита будут
* доступны по именам "СубконтоКт1", "СубконтоКт2" и т.д. Кроме
* того, обороты будут посчитаны только по счетам кредита,
* имеющим заданные виды субконто кредита. Если виды субконто
* кредита не заданы, то обращение к значениям субконто кредита
* осуществляется по порядку, как они определены на
* соответствующем счете. Параметр не существует, если при
* конфигурировании для плана счетов не указаны субконто.
* @param structure
* - Структура, содержащая набор значений измерений регистра, по
* которым надо отбирать итоги. Допустимые значения ключа:
* СчетДт, СубконтоДт<Номер>, СчетКт, СубконтоКт<Номер>, <Имя
* измерения> или <Имя измерения>Дт и <Имя измерения>Кт. Если
* параметр не указан, то отбор не используется.
* @param dimension
* - Список измерений, для которых надо получить обороты. Строка,
* содержащая имена измерений, разделенных запятыми. Допустимые
* имена измерений: СчетДт, СубконтоДт<Номер>, СчетКт,
* СубконтоКт<Номер>, <Имя измерения> или <Имя измерения>Дт и
* <Имя измерения>Кт. Если параметр не указан или указано
* Неопределено, то обороты будут сформированы по всем
* измерениям. Значение по умолчанию: Неопределено
* @param resouces
* - Список ресурсов, для которых надо получить обороты. Строка,
* содержащая имена ресурсов, разделенных запятыми. Если параметр
* не указан или указано Неопределено, то обороты будут
* сформированы по всем ресурсам. Значение по умолчанию:
* Неопределено
* @return OCValueTable
* @throws JIException
* ошибка обращения к DCOM-серверу
*/
public OCValueTable getDrCrTurnovers(Date startDate, Date endDate, OCArray subkontoDr, OCArray subkontoCr, OCStructure structure, String dimension, String resouces) throws JIException {
return new OCValueTable(callMethodA("DrCrTurnovers", new Object[]{
new JIVariant(startDate),
new JIVariant(endDate),
subkontoDr != null ? ocObject2Dispatch(subkontoDr) : null,
subkontoCr != null ? ocObject2Dispatch(subkontoCr) : null,
new JIVariant(dimension),
new JIVariant(resouces)
})[0]);
}
/**
* Получает обороты по регистру бухгалтерии на заданный момент. Обороты
* получаются в разрезе заданных измерений и по заданным ресурсам. В
* измерения входят счет дебета, субконто дебета, счет кредита, субконто
* кредита, измерения кредита, измерения (для балансовых) и измерения
* дебета, измерения кредита (для не балансовых).
*
* @param startDate
* - Момент времени, начиная с которого необходимо получить
* обороты. Если параметр не указан, то обороты будут получены
* начиная с момента ведения базы данных. Если в качестве
* параметра передана Дата или МоментВремени, то обороты за
* указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param endDate
* - Момент времени, определяющий конец периода за который
* необходимо получить обороты. Если параметр не указан, то
* обороты будут получены до самого позднего движения регистра.
* Если в качестве параметра передана Дата или МоментВремени, то
* обороты за указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param subkontoDr
* - Передается ссылка или массив ссылок на виды субконто.
* Параметр определяет, какие значения субконто дебета будут
* доступны по именам "СубконтоДт1", "СубконтоДт2" и т.д. Кроме
* того, обороты будут посчитаны только по счетам дебета, имеющим
* заданные виды субконто дебета. Если параметр не задан, то
* обращение к значениям субконто дебета осуществляется по
* порядку (индексу), как они определены на соответствующем
* счете. Параметр не существует, если при конфигурировании для
* плана счетов не указаны субконто.
* @param subkontoCr
* - Передается ссылка или массив ссылок на виды субконто. Виды
* субконто определяют, какие значения субконто кредита будут
* доступны по именам "СубконтоКт1", "СубконтоКт2" и т.д. Кроме
* того, обороты будут посчитаны только по счетам кредита,
* имеющим заданные виды субконто кредита. Если виды субконто
* кредита не заданы, то обращение к значениям субконто кредита
* осуществляется по порядку, как они определены на
* соответствующем счете. Параметр не существует, если при
* конфигурировании для плана счетов не указаны субконто.
* @param structure
* - Структура, содержащая набор значений измерений регистра, по
* которым надо отбирать итоги. Допустимые значения ключа:
* СчетДт, СубконтоДт<Номер>, СчетКт, СубконтоКт<Номер>, <Имя
* измерения> или <Имя измерения>Дт и <Имя измерения>Кт. Если
* параметр не указан, то отбор не используется.
* @param dimension
* - Список измерений, для которых надо получить обороты. Строка,
* содержащая имена измерений, разделенных запятыми. Допустимые
* имена измерений: СчетДт, СубконтоДт<Номер>, СчетКт,
* СубконтоКт<Номер>, <Имя измерения> или <Имя измерения>Дт и
* <Имя измерения>Кт. Если параметр не указан или указано
* Неопределено, то обороты будут сформированы по всем
* измерениям. Значение по умолчанию: Неопределено
* @param resouces
* - Список ресурсов, для которых надо получить обороты. Строка,
* содержащая имена ресурсов, разделенных запятыми. Если параметр
* не указан или указано Неопределено, то обороты будут
* сформированы по всем ресурсам. Значение по умолчанию:
* Неопределено
* @return OCValueTable
* @throws JIException
* ошибка обращения к DCOM-серверу
*/
public OCValueTable getDrCrTurnovers(Date startDate, Date endDate, OCChartOfCharacteristicTypesRef subkontoDr, OCChartOfCharacteristicTypesRef subkontoCr, OCStructure structure, String dimension, String resouces) throws JIException {
OCApp inst = OCApp.getInstance(getAssociatedSessionID());
OCArray subkontoDrArray = null;
OCArray subkontoCrArray = null;
if (subkontoDr != null) {
subkontoDrArray = inst.newArray();
subkontoDrArray.add(new OCVariant(subkontoDr));
}
if (subkontoCr != null) {
subkontoCrArray = inst.newArray();
subkontoCrArray.add(new OCVariant(subkontoCr));
}
return getDrCrTurnovers(startDate, endDate, subkontoDrArray, subkontoCrArray, structure, dimension, resouces);
}
/**
* Получает обороты по регистру бухгалтерии на заданный момент. Обороты
* получаются в разрезе заданных измерений и по заданным ресурсам. В
* измерения входят счет дебета, субконто дебета, счет кредита, субконто
* кредита, измерения кредита, измерения (для балансовых) и измерения
* дебета, измерения кредита (для не балансовых).
*
* @param startDate
* - Момент времени, начиная с которого необходимо получить
* обороты. Если параметр не указан, то обороты будут получены
* начиная с момента ведения базы данных. Если в качестве
* параметра передана Дата или МоментВремени, то обороты за
* указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @param endDate
* - Момент времени, определяющий конец периода за который
* необходимо получить обороты. Если параметр не указан, то
* обороты будут получены до самого позднего движения регистра.
* Если в качестве параметра передана Дата или МоментВремени, то
* обороты за указанную дату (момент времени) будут включены в
* результирующую таблицу значений.
* @return OCValueTable
* @throws JIException
* ошибка обращения к DCOM-серверу
*/
public OCValueTable getDrCrTurnovers(Date startDate, Date endDate) throws JIException{
return getDrCrTurnovers(startDate, endDate, (OCArray) null, (OCArray) null, null, null, null);
}
/**
* Получает остатки по регистру бухгалтерии на заданный момент. Остатки
* получаются в разрезе заданных измерений и по заданным ресурсам. В
* измерения входят счет и субконто, зависящие от счета. Если параметр <Виды
* субконто> не задан, то обращение к субконто осуществляется по индексу в
* том порядке, как виды субконто определены на соответствующем счете. Если
* параметр <Виды субконто> задан, то остатки будут считаться только по
* счетам, у которых определены заданные виды субконто, обращение к
* значениям субконто осуществляется в порядке, заданном параметром <Виды
* субконто>. Примечание: Параметр "Виды субконто" не существует, если при
* конфигурировании для плана счетов не указаны субконто
*
* @param date
* - Момент времени, на который необходимо получить остатки. Если
* параметр не указан или установлен в Неопределено, то будут
* получены текущие остатки (на максимальную дату движений
* регистра). Если в качестве параметра передана Дата, то остатки
* будут получены на начало дня, если МоментВремени - то в
* остатках не будут учтены движения регистра, произошедшие в тот
* же момент времени.
* @param ref
* - Передается ссылка или массив ссылок на виды субконто. Виды
* субконто определяют, какие значения субконто будут доступны по
* именам "Субконто1", "Субконто2" и т.д. Кроме того, остатки
* будут посчитаны только по счетам, имеющим заданные виды
* субконто. Если виды субконто не заданы, то обращение к
* значениям субконто осуществляется по порядку (индексу), как
* они определены на соответствующем счете. Параметр не
* существует, если при конфигурировании для плана счетов не
* указаны субконто.
* @param structure
* - Структура, содержащая набор значений измерений регистра, по
* которым надо отбирать итоги. Допустимые значения ключа: Счет,
* Субконто<Номер>, <Имя измерения>. Если параметр не указан, то
* отбор не используется.
* @param dimensions
* - Список измерений, для которых надо получить остатки. Строка,
* содержащая имена измерений, разделенные запятыми. Допустимые
* имена измерений: Счет, Субконто<Номер>, <Имя измерения>. Если
* параметр не указан или указано Неопределено, то остатки будут
* сформированы по всем измерениям. Значение по умолчанию:
* Неопределено
* @param resources
* - Список ресурсов, для которых надо получить остатки. Строка,
* содержащая имена ресурсов, разделенные запятыми. Если параметр
* не указан или указано Неопределено, то остатки будут
* сформированы по всем ресурсам. Значение по умолчанию:
* Неопределено
* @return В таблице содержатся поля "ОборотДт" и "ОборотКт".
* @throws JIException
*/
public OCValueTable getBalance(Date date, OCChartOfCharacteristicTypesRef ref, OCStructure structure, String dimensions, String resources) throws JIException {
OCApp inst = OCApp.getInstance(getAssociatedSessionID());
OCArray refsArray = null;
if (ref != null) {
refsArray = inst.newArray();
refsArray.add(new OCVariant(ref));
}
return getBalance(date, refsArray, structure, dimensions, resources);
}
/**
* Получает остатки по регистру бухгалтерии на заданный момент. Остатки
* получаются в разрезе заданных измерений и по заданным ресурсам. В
* измерения входят счет и субконто, зависящие от счета. Если параметр <Виды
* субконто> не задан, то обращение к субконто осуществляется по индексу в
* том порядке, как виды субконто определены на соответствующем счете. Если
* параметр <Виды субконто> задан, то остатки будут считаться только по
* счетам, у которых определены заданные виды субконто, обращение к
* значениям субконто осуществляется в порядке, заданном параметром <Виды
* субконто>. Примечание: Параметр "Виды субконто" не существует, если при
* конфигурировании для плана счетов не указаны субконто
*
* @param date
* - Момент времени, на который необходимо получить остатки. Если
* параметр не указан или установлен в Неопределено, то будут
* получены текущие остатки (на максимальную дату движений
* регистра). Если в качестве параметра передана Дата, то остатки
* будут получены на начало дня, если МоментВремени - то в
* остатках не будут учтены движения регистра, произошедшие в тот
* же момент времени.
* @param ref
* - Передается ссылка или массив ссылок на виды субконто. Виды
* субконто определяют, какие значения субконто будут доступны по
* именам "Субконто1", "Субконто2" и т.д. Кроме того, остатки
* будут посчитаны только по счетам, имеющим заданные виды
* субконто. Если виды субконто не заданы, то обращение к
* значениям субконто осуществляется по порядку (индексу), как
* они определены на соответствующем счете. Параметр не
* существует, если при конфигурировании для плана счетов не
* указаны субконто.
* @param structure
* - Структура, содержащая набор значений измерений регистра, по
* которым надо отбирать итоги. Допустимые значения ключа: Счет,
* Субконто<Номер>, <Имя измерения>. Если параметр не указан, то
* отбор не используется.
* @param dimensions
* - Список измерений, для которых надо получить остатки. Строка,
* содержащая имена измерений, разделенные запятыми. Допустимые
* имена измерений: Счет, Субконто<Номер>, <Имя измерения>. Если
* параметр не указан или указано Неопределено, то остатки будут
* сформированы по всем измерениям. Значение по умолчанию:
* Неопределено
* @param resources
* - Список ресурсов, для которых надо получить остатки. Строка,
* содержащая имена ресурсов, разделенные запятыми. Если параметр
* не указан или указано Неопределено, то остатки будут
* сформированы по всем ресурсам. Значение по умолчанию:
* Неопределено
* @return В таблице содержатся поля "ОборотДт" и "ОборотКт".
* @throws JIException
*/
public OCValueTable getBalance(Date date, OCArray refs, OCStructure structure, String dimensions, String resources) throws JIException {
return new OCValueTable(callMethodA("Balance", new Object[]{
new JIVariant(date),
refs != null ? ocObject2Dispatch(refs) : null,
ocObject2Dispatch(structure),
new JIVariant(dimensions),
new JIVariant(resources)
})[0]);
}
/**
* Выполняет полный пересчет итогов регистра бухгалтерии.
* @throws JIException
*/
public void recalcTotals() throws JIException {
callMethod("RecalcTotals");
}
/**
* Выполняет полный пересчет итогов регистра бухгалтерии.
* @param startDate - Начало периода пересчета. Если параметр не задан, то пересчет выполняется с самого начала
* @param endDate - Конец периода пересчета. Если параметр не задан, то пересчет выполняется до самого конца
* @throws JIException
*/
public void recalcTotalsForPeriod(Date startDate, Date endDate) throws JIException {
callMethod("RecalcTotalsForPeriod", new Object[]{new JIVariant(startDate), new JIVariant(endDate)});
}
/**
* Выполняет пересчет текущих итогов регистра бухгалтерии.
* @throws JIException
*/
public void recalcPresentTotals() throws JIException {
callMethod("RecalcPresentTotals");
}
/**
* Получает признак использования итогов. Если использование итогов
* отключено, то при записи набора записей регистра не будет производиться
* пересчет итогов, но при этом будут не доступны виртуальные таблицы
* расчета остатков и оборотов. Данный режим работы регистра позволяет
* повысить скорость записи набора записей регистра. Он может быть полезен
* при массовых загрузках данных
*
* @return Boolean
* @throws JIException
*/
public Boolean getTotalsUsing() throws JIException {
return callMethodA("GetTotalsUsing").getObjectAsBoolean();
}
/**
* Устанавливает признак использования итогов. Если использование итогов
* отключено, то при записи набора записей регистра не будет производиться
* пересчет итогов, но при этом будут не доступны виртуальные таблицы
* расчета остатков и оборотов. Данный режим работы регистра позволяет
* повысить скорость записи набора записей регистра. Он может быть полезен
* при массовых загрузках данных. При установке признака использования
* итогов производится пересчет всех итогов.
*
* @param using
* - Признак использования итогов.
* @throws JIException
*/
public void setTotalsUsing(boolean using) throws JIException {
callMethod("SetTotalsUsing", new Object[]{new JIVariant(using)});
}
/**
* Получает флаг использования текущих итогов.
* @return
* @throws JIException
*/
public Boolean getPresentTotalsUsing() throws JIException {
return callMethodA("GetPresentTotalsUsing").getObjectAsBoolean();
}
/**
* Устанавливает флаг использования текущих итогов. Возможен обмен с
* сервером. Примечание: Влияет на наличие актуальных итогов. Если
* использование актуальных итогов выключено, то расчет актуальных остатков
* будет производиться следующим образом: сначала будут получены остатки на
* самые поздние хранимые итоги, а потом по движениям за оставшийся период
* будут получены актуальные остатки. Позволяет увеличить параллельность при
* записи наборов записей данного регистра, так как не требуется обновления
* актуальных итогов.
*
*
* @param using
* - Значение флага использования разделителя итогов
* @return Boolean
* @throws JIException
*/
public Boolean setPresentTotalsUsing(boolean using) throws JIException {
return callMethodA("SetPresentTotalsUsing", new Object[]{new JIVariant(using)})[0].getObjectAsBoolean();
}
/**
* Получает период рассчитанных итогов.
* @return
* @throws JIException
*/
public Date getTotalsPeriod() throws JIException {
return callMethodA("GetTotalsPeriod").getObjectAsDate();
}
/**
* Устанавливает период, на который рассчитаны итоги. Влияет только на
* производительность получения остатков и оборотов по данному регистру. При
* установке может выполнятся расчет итогов за новые открытые периоды.
* Периодичность расчета месяц. В параметре указывается конец периода, по
* который должны быть рассчитаны итоги. Если указана дата 31.01.2000 то это
* значит что будут рассчитаны итоги на 01.02.2000. Для получения итогов
* после этой даты будут использоваться актуальные итоги. Примечание:
* Период, на который рассчитаны итоги, влияет только на производительность
* получения остатков по данному регистру. Для получения итогов регистра
* после установленного периода расчета будут использоваться полученные в
* результате использования метода результаты.
*
* @param period
* - Период, на который необходимо рассчитать итоги.
* @throws JIException
*/
public void setTotalsPeriod(Date period) throws JIException {
callMethod("SetTotalsPeriod", new Object[]{new JIVariant(period)});
}
/**
* Получает флаг включенности механизма разделителя итогов.
* @return Boolean
* @throws JIException
*/
public Boolean getTotalsSplittingMode() throws JIException {
return callMethodA("GetTotalsSplittingMode").getObjectAsBoolean();
}
/**
* Устанавливает флаг использования механизма разделителя итогов.
*
* @param mode
* - Значение флага использования разделителя итогов. Если флаг
* установлен в значение Истина, то будет задействован механизм
* разделения итогов, который обеспечивает более высокую
* параллельность работы при записи в регистр. Система при
* одновременной записи движений несколькими сеансами не будет
* обновлять одни и те же записи итогов, а будет записывать
* изменения итогов в отдельные записи. При получении итогов эти
* данные складываются. Таким образом, обеспечивается и
* поддержание в актуальном состоянии итогов (например, для
* быстрого получения отчетов) и параллельность записи движений.
* Этот режим требует дополнительных расходов ресурсов (например,
* увеличивается количество данных в итоговых таблицах). Записи
* будут "размножаться" только при параллельно выполняемых
* транзакциях. Их количество по каждой комбинации измерений
* будет зависеть от максимального количества одновременно
* выполняемых транзакций. При пересчете итогов накопленные
* отдельные записи сворачиваются.
* @throws JIException
*/
public void setTotalsSplittingMode(Boolean mode) throws JIException {
callMethod("SetTotalsSplittingMode", new Object[]{new JIVariant(mode)});
}
/**
* Создает ключ записи по переданной структуре.
* @param structure - Структура, содержащая значения для заполнения свойств ключа записи. Идентификаторы элементов структуры должны соответствовать идентификаторам ключевых полей.
* @return OCAccountingRegisterRecordKey
* @throws JIException
*/
public OCAccountingRegisterRecordKey createRecordKey(OCStructure structure) throws JIException {
return new OCAccountingRegisterRecordKey(
callMethodA("CreateRecordKey", new Object[]{
ocObject2Dispatch(structure)
})[0]);
}
/**
* Создает набор записей регистра бухгалтерии. Набор записей создается пустым
* @return OCAccountingRegisterRecordSet
* @throws JIException
*/
public OCAccountingRegisterRecordSet createRecordSet() throws JIException {
return new OCAccountingRegisterRecordSet(callMethodA("CreateRecordSet"));
}
}