Package com.ipc.oce.objects

Source Code of com.ipc.oce.objects.OCAccountingRegisterManager

/**
*
*/
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"));
  }

}
TOP

Related Classes of com.ipc.oce.objects.OCAccountingRegisterManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.