|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectru.j1c.RecordSet
public class RecordSet
Класс используется для работы с данными 1С "напрямую", посредством SQL языка.
Так как класс реализует интерфейс Statement доступна вся функциональность
выражений SQL для работы с данными. Кроме того имеется возможность использования метаимен.
Метаимена - это расширение SQL языка, облегчающие работу с данными 1С. Синтаксис метаимен
совместим в большей части с синтаксисом языка запросов 1CPP.
Пример работы:
String statement = "SELECT Обороты.Период
, Обороты.Номенклатура as [Товар $Справочник.Номенклатура]
FROM $РегистрОбороты.ОстаткиНаСкладах(:НачДата" +
",:КонДата,Неделя"+
",LEFT JOIN $Справочник.Номенклатура AS Товар" +
",Товар.id = $Остатки.Номенклатура,,) AS Обороты";
RecordSet1C recordSet = getV7().getRecordSet();
ResultSet res = recordSet.executeQuery(statement);
while(res.next()){
CatalogReference ref = res.getObject("Товар");
System.out.println(ref);
}
recordSet.close();
Далее описывается расширение языка запросов.
Спецификация типизирующих имен[<ИмяПоля> $<Тип1С>]
ИмяПоля- имя, которое будет доступно для обращения к полюТип1С- строка, представляющая тип 1С, который будет назначен полю
| Типизирующее имя | Допустимые SQL типы в наборе данных | Целевой тип j1c |
|---|---|---|
| {Справочник|Reference} | char(13) | CatalogReference |
| {Справочник|Reference}<Справочник> | char(9) | CatalogReference |
| {Документ|Document}<Справочник> |
| DocumentReference |
| {ВидДокумента|DocumentKind} |
|
Document |
| {Перечисление|Enum}<ВидПеречисления> | char(9) | EnumerationReference |
| {Неопределенный|Undefine} | char(23) | Undefine |
| {ВидРасчета|CalculationKind} |
|
пока не реализовано |
| {Календарь|Calendar} | char(13) | CalendarReference |
| {Субконто|Subconto} | char(13) - идентификатор значения субконто (с видом или без вида). Типизируется в значение субконто, кроме того в наборе данных должна находиться колонка с именем составленным из имени этой колонки и суффикса {_вид|_kind} (чувствительно к регистру), в которой должны содержаться идентификаторы видов субконто. Тип колонки SQL: int, DBF: char(4). Типизация субконто простых типов (число, строка, дата) не поддерживается. | Object |
| {ВидСубконто|SubcontoKind} |
|
Metadatas.SubcontoKind |
${Справочник|Reference}.<Справочник> = scXXXX
${Документ|Document}.<Документ> = dhXXXX
${ДокументСтроки|DocumentStrings}.<Документ> = dtXXXX
${Регистр|Register}.<Регистр> = raXXXX
${РегистрИтоги|RegisterTotals}.<Регистр> = rgXXXX
${ЖурналРасчетов|CalcJournal}.<ЖурналРасчетов> = cjXXXX
${Справочник|Reference}.<Справочник>.<Реквизит> = spХХХХ
${Документ|Document}.<Документ>.<РеквизитШапки> = spХХХХ
${ДокументСтроки|DocumentStrings}.<Документ>.<РеквизитТабличнойЧасти> = spХХХХ
${Регистр|Register}.<Регистр>.<Измерение | Ресурс | Реквизит> = spХХХХ
${РегистрИтоги|RegisterTotals}.<Регистр>.<Измерение | Ресурс> = spХХХХ
$.<Реквизит | РеквизитШапки | РеквизитТабличнойЧасти | Измерение | Ресурс> = .spХХХХ
${ОбщийРеквизит|CommonProperty}.<ОбщийРеквизит> = spХХХХ
${ФлагРегистра|RegisterFlag}.<Регистр> = rfХХХХ
${Последовательность|Sequence}.<Последовательность> = dsХХХХ
${ЖурналРасчетов|CalcJournal}.<ЖурналРасчетов>.<Реквизит> = spXXXX
пока не реализовано
${ГрафаЖурналаРасчетов|ColumnCalcJournal}.<ЖурналРасчетов>.<ГрафаОтбораЖР> = ffXXXX
пока не реализовано
${Проводка|Entry}.<Реквизит> = spXXXX
${Операция|Operation}.<Реквизит> = spXXXX
${Константа|Constant}.<Константа> = XXXX
${ВидСправочника|ReferenceKind}.<Справочник> = ХХХХ
${ВидСправочника36|ReferenceKind36}.<Справочник> = 'ZZZZ'
${ВидДокумента|DocumentKind}.<Документ> = {XXXX | 'ZZZZ'}
${ВидДокумента36|DocumentKind36}.<Документ> = 'ZZZZ'
${ВидПеречисления36|EnumKind36}.<ВидПеречисления> = 'ZZZZ'
${ИсторияРеквизита|PropertyHistory}.<Справочник>.<ПериодическийРеквизит> = ХХХХ
${ЖурналДокументов|DocsJournal}.<ЖурналДокументов> = ХХХХ
${ГрафаОтбора|SelectionColumn}.<ГрафыОтбора> = ХХХХ
${Календарь|Calendar}.<Календарь> = ХХХХ
${Праздники|Holidays} = ХХХХ
пока не реализовано
${ВидЖурналаРасчетов|CalcJournalKind}.<ЖурналРасчетов> = XXXX
пока не реализовано
${ВидРасчета|Algorithm}.<ВидРасчета> = {XXXX | 'ZZZZ'}
пока не реализовано
${ПустойИД|EmptyID} = ' 0 ' - SQL, ' 0' - DBF
${ПустойИД13|EmptyID13} = ' 0 0 ' - SQL, ' 0 0' - DBF
${Перечисление|Enumeration}.<Перечисление>.<ЗначениеПеречисления> : char(9)
${Перечисление23|Enumeration23}.<Перечисление>.<ЗначениеПеречисления> : char(23)
${ВидСубконто|SubcontoKind}.<Идентификатор> : {XXXX | 'ZZZZ'}
${ПланСчетов|Plan}.<Идентификатор> : {XXXX | 'ZZZZ'}
${ПланСчетов36|Plan36}.<Идентификатор> : 'ZZZZ'
${ОсновнойПланСчетов|MainPlan}.<Идентификатор> : {XXXX | 'ZZZZ'}
${ОсновнойПланСчетов36|MainPlan36}.<Идентификатор> : 'ZZZZ'
StringDateInteger, BigDecimalPositionEnumerationReference, DocumentReference, CatalogReference, AccountReference:DocumentReference
Metadatas.QualifierВиртуальная таблица остатков
Синтаксис
$РегистрОстатки.<ИмяРегистра>([<ГраницаРасчета>][,
<Соединение>][,
<Условие>][,
<Измерение>][,<Ресурс>]
) [as <Алиас>]
Параметры
Параметры
Оптимизация расчета:
Виртуальная таблица оборотов
Синтаксис:
$РегистрОбороты.<ИмяРегистра>([<НачалоПериода>][, <КонецПериода>][,<Периодичность>][,
<Соединение>][,
<Условие>][,
<Измерение>][,<Ресурс>]
) [as <Алиас>]
Параметры
Поля
Оптимизация расчета
Виртуальная таблица остатков и оборотов
Синтаксис:
$РегистрОбороты.<ИмяРегистра>([<НачалоПериода>][, <КонецПериода>][,<Периодичность>][,<МетодДополнения>][,
<Соединение>][,
<Условие>][,
<Измерение>][,<Ресурс>]
) [as <Алиас>]
Параметры
Поля
Оптимизация расчета
Таблица субконто (по которым устанвлен принзнак отбора)
Синтаксис
$БИСубконто [AS <Алиас>]
Поля:
Описание:
Таблица отбора проводок по значению субконто. Связь с таблицей проводок рекомендуется по полям ПозицияДокумента, НомерПроводки, НомерКорреспонденции. Поле Вид определяет вид субконто данного значения. ВТ содержит информацию только по тем видам субконто, по которым в конфигураторе включён отбор. Базовая таблица (_1SSBSEL) не привязана к планам счетов, поэтому синтаксис не включает в себя идентификатор плана.
Пример использования:
См. пример к ВТ БИДвиженияССубконто.
Таблица движений с субконто
Синтаксис
$БИДвиженияССубконто.<ПланСчетов>([<НачалоПериода>], [<КонецПериода>],
[<Соединение>], [<Условие>]) [AS <Алиас>]
Параметры:
Поля:
Пример использования:
SELECT ПозицияДокумента
, СчетДт [СчетДт $Счет.Основной]
, СчетКт [СчетКт $Счет.Основной]
, Валюта [Валюта $Справочник.Валюты]
, СубконтоДт1 [СубконтоДт1 $Субконто]
, СубконтоДт1_вид
, СубконтоДт2 [СубконтоДт2 $Субконто]
, СубконтоДт2_вид
, СубконтоДт3 [СубконтоДт3 $Субконто]
, СубконтоДт3_вид
, СубконтоКт1 [СубконтоКт1 $Субконто]
, СубконтоКт1_вид
, СубконтоКт2 [СубконтоКт2 $Субконто]
, СубконтоКт2_вид
, СубконтоКт3 [СубконтоКт3 $Субконто]
, СубконтоКт3_вид
, Сумма
, ВалютнаяСумма
, Количество
, СодержаниеПроводки
FROM $БИДвиженияССубконто.Основной({d'2001-01-01'},,
INNER JOIN $БИСубконто БИС ON (ПозицияДокумента = БИС.ПозицияДокумента)
AND (НомерПроводки = БИС.НомерПроводки)
AND (НомерКорреспонденции = БИС.НомерКорреспонденции),
(БИС.Вид = $ВидСубконто.Контрагенты)
AND(Активность = ' ')
) Проводки
Получение начала периода
Синтаксис:
$НачалоПериода|BeginPeriod.<Период>(<ИсходнаяДата>[,<ТипПредставления>])
Параметры
Получение начала следующего периода
Синтаксис:
$СледующийПериод|NextPeriod.<Период>(<ИсходнаяДата>[,<ТипПредставления>])
Параметры
Получение наиболее позднего периодического значения
Синтаксис:
$ПоследнееЗначение.{<ИмяСправочника> | Константа}.{<ИмяРеквизита | ИмяКонстанты>}(
<ИдОбъекта>, <Дата>[, <Время>[, <ИДДокумента>]]
)
Параметры
| Field Summary |
|---|
| Fields inherited from interface java.sql.Statement |
|---|
CLOSE_ALL_RESULTS, CLOSE_CURRENT_RESULT, EXECUTE_FAILED, KEEP_CURRENT_RESULT, NO_GENERATED_KEYS, RETURN_GENERATED_KEYS, SUCCESS_NO_INFO |
| Method Summary | ||
|---|---|---|
void |
addBatch(String sql)
|
|
void |
cancel()
|
|
void |
clearBatch()
|
|
void |
clearWarnings()
|
|
void |
close()
|
|
boolean |
execute()
|
|
boolean |
execute(String sql)
|
|
boolean |
execute(String sql,
int autoGeneratedKeys)
|
|
boolean |
execute(String sql,
int[] columnIndexes)
|
|
boolean |
execute(String sql,
String[] columnNames)
|
|
int[] |
executeBatch()
|
|
ResultSet1C |
executeQuery()
Выполнить запрос. |
|
ResultSet1C |
executeQuery(String sql)
|
|
int |
executeUpdate()
Выполнить запрос. |
|
int |
executeUpdate(String sql)
|
|
int |
executeUpdate(String sql,
int autoGeneratedKeys)
|
|
int |
executeUpdate(String sql,
int[] columnIndexes)
|
|
int |
executeUpdate(String sql,
String[] columnNames)
|
|
Connection |
getConnection()
|
|
int |
getFetchDirection()
|
|
int |
getFetchSize()
|
|
ResultSet |
getGeneratedKeys()
|
|
int |
getMaxFieldSize()
|
|
int |
getMaxRows()
|
|
boolean |
getMoreResults()
|
|
boolean |
getMoreResults(int current)
|
|
Object |
getParameter(String key)
Получить текстовый параметр |
|
int |
getQueryTimeout()
|
|
ResultSet1C |
getResultSet()
|
|
int |
getResultSetConcurrency()
|
|
int |
getResultSetHoldability()
|
|
int |
getResultSetType()
|
|
String |
getText()
Получить текст запроса |
|
int |
getUpdateCount()
|
|
V7 |
getV7()
|
|
SQLWarning |
getWarnings()
|
|
boolean |
isClosed()
|
|
boolean |
isPoolable()
|
|
boolean |
isWrapperFor(Class<?> iface)
|
|
String |
parse(String textQuery)
Преобразовать текст запроса из нотации j1c в t-sql Если какие параметры не установлены - вызывается исключение приложения |
|
String |
parseBatch(String textQuery)
Преобразовать текст запроса из нотации j1c в t-sql Если какие параметры не установлены - вызывается исключение приложения |
|
void |
setCursorName(String name)
|
|
void |
setEscapeProcessing(boolean enable)
|
|
void |
setFetchDirection(int direction)
|
|
void |
setFetchSize(int rows)
|
|
void |
setMaxFieldSize(int max)
|
|
void |
setMaxRows(int max)
|
|
void |
setParameter(String key,
Object value)
Установить текстовый параметр запроса. |
|
void |
setPoolable(boolean poolable)
|
|
void |
setQueryTimeout(int seconds)
|
|
void |
setRPC(boolean modRPC)
Переводит объект в специальный режим выполнения запросов. |
|
void |
setText(String value)
Установить текст запроса |
|
|
unwrap(Class<T> iface)
|
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public V7 getV7()
public void close()
throws SQLException
close in interface StatementSQLExceptionpublic void setRPC(boolean modRPC)
modRPC - Режим RPC. true - режим включен, false - выключен (по умолчанию, режим выключен)public String parseBatch(String textQuery)
textQuery - запрос на j1c
ExceptionAPIpublic String parse(String textQuery)
textQuery - запрос на j1c
ExceptionAPI
public void setParameter(String key,
Object value)
select * from $Справочник.Номенклатура as спр where спр.id=:Перем
key - Имя параметра в тексте запроса (без ":")value - Значение параметра.public Object getParameter(String key)
key - Имя параметра
public String getText()
public void setText(String value)
value - Текст запроса
public int executeUpdate()
throws SQLException
setText(String)
SQLException
public int executeUpdate(String sql)
throws SQLException
executeUpdate in interface StatementSQLException
public boolean execute()
throws SQLException
SQLException
public boolean execute(String sql)
throws SQLException
execute in interface StatementSQLException
public ResultSet1C getResultSet()
throws SQLException
getResultSet in interface StatementSQLException
public int getUpdateCount()
throws SQLException
getUpdateCount in interface StatementSQLException
public ResultSet1C executeQuery()
throws SQLException
setText(String)
SQLException
public ResultSet1C executeQuery(String sql)
throws SQLException
executeQuery in interface StatementSQLException
public void addBatch(String sql)
throws SQLException
addBatch in interface StatementSQLException
public void cancel()
throws SQLException
cancel in interface StatementSQLException
public void clearBatch()
throws SQLException
clearBatch in interface StatementSQLException
public void clearWarnings()
throws SQLException
clearWarnings in interface StatementSQLException
public boolean execute(String sql,
int autoGeneratedKeys)
throws SQLException
execute in interface StatementSQLException
public boolean execute(String sql,
int[] columnIndexes)
throws SQLException
execute in interface StatementSQLException
public boolean execute(String sql,
String[] columnNames)
throws SQLException
execute in interface StatementSQLException
public int[] executeBatch()
throws SQLException
executeBatch in interface StatementSQLException
public int executeUpdate(String sql,
int autoGeneratedKeys)
throws SQLException
executeUpdate in interface StatementSQLException
public int executeUpdate(String sql,
int[] columnIndexes)
throws SQLException
executeUpdate in interface StatementSQLException
public int executeUpdate(String sql,
String[] columnNames)
throws SQLException
executeUpdate in interface StatementSQLException
public Connection getConnection()
throws SQLException
getConnection in interface StatementSQLException
public int getFetchDirection()
throws SQLException
getFetchDirection in interface StatementSQLException
public int getFetchSize()
throws SQLException
getFetchSize in interface StatementSQLException
public ResultSet getGeneratedKeys()
throws SQLException
getGeneratedKeys in interface StatementSQLException
public int getMaxFieldSize()
throws SQLException
getMaxFieldSize in interface StatementSQLException
public int getMaxRows()
throws SQLException
getMaxRows in interface StatementSQLException
public boolean getMoreResults()
throws SQLException
getMoreResults in interface StatementSQLException
public boolean getMoreResults(int current)
throws SQLException
getMoreResults in interface StatementSQLException
public int getQueryTimeout()
throws SQLException
getQueryTimeout in interface StatementSQLException
public int getResultSetConcurrency()
throws SQLException
getResultSetConcurrency in interface StatementSQLException
public int getResultSetHoldability()
throws SQLException
getResultSetHoldability in interface StatementSQLException
public int getResultSetType()
throws SQLException
getResultSetType in interface StatementSQLException
public SQLWarning getWarnings()
throws SQLException
getWarnings in interface StatementSQLException
public boolean isClosed()
throws SQLException
isClosed in interface StatementSQLException
public boolean isPoolable()
throws SQLException
isPoolable in interface StatementSQLException
public void setCursorName(String name)
throws SQLException
setCursorName in interface StatementSQLException
public void setEscapeProcessing(boolean enable)
throws SQLException
setEscapeProcessing in interface StatementSQLException
public void setFetchDirection(int direction)
throws SQLException
setFetchDirection in interface StatementSQLException
public void setFetchSize(int rows)
throws SQLException
setFetchSize in interface StatementSQLException
public void setMaxFieldSize(int max)
throws SQLException
setMaxFieldSize in interface StatementSQLException
public void setMaxRows(int max)
throws SQLException
setMaxRows in interface StatementSQLException
public void setPoolable(boolean poolable)
throws SQLException
setPoolable in interface StatementSQLException
public void setQueryTimeout(int seconds)
throws SQLException
setQueryTimeout in interface StatementSQLException
public boolean isWrapperFor(Class<?> iface)
throws SQLException
isWrapperFor in interface WrapperSQLException
public <T> T unwrap(Class<T> iface)
throws SQLException
unwrap in interface WrapperSQLException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||