|
||||||||||
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'
String
Date
Integer
, BigDecimal
Position
EnumerationReference
, 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 Statement
SQLException
public void setRPC(boolean modRPC)
modRPC
- Режим RPC. true - режим включен, false - выключен (по умолчанию, режим выключен)public String parseBatch(String textQuery)
textQuery
- запрос на j1c
ExceptionAPI
public 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 Statement
SQLException
public boolean execute() throws SQLException
SQLException
public boolean execute(String sql) throws SQLException
execute
in interface Statement
SQLException
public ResultSet1C getResultSet() throws SQLException
getResultSet
in interface Statement
SQLException
public int getUpdateCount() throws SQLException
getUpdateCount
in interface Statement
SQLException
public ResultSet1C executeQuery() throws SQLException
setText(String)
SQLException
public ResultSet1C executeQuery(String sql) throws SQLException
executeQuery
in interface Statement
SQLException
public void addBatch(String sql) throws SQLException
addBatch
in interface Statement
SQLException
public void cancel() throws SQLException
cancel
in interface Statement
SQLException
public void clearBatch() throws SQLException
clearBatch
in interface Statement
SQLException
public void clearWarnings() throws SQLException
clearWarnings
in interface Statement
SQLException
public boolean execute(String sql, int autoGeneratedKeys) throws SQLException
execute
in interface Statement
SQLException
public boolean execute(String sql, int[] columnIndexes) throws SQLException
execute
in interface Statement
SQLException
public boolean execute(String sql, String[] columnNames) throws SQLException
execute
in interface Statement
SQLException
public int[] executeBatch() throws SQLException
executeBatch
in interface Statement
SQLException
public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
executeUpdate
in interface Statement
SQLException
public int executeUpdate(String sql, int[] columnIndexes) throws SQLException
executeUpdate
in interface Statement
SQLException
public int executeUpdate(String sql, String[] columnNames) throws SQLException
executeUpdate
in interface Statement
SQLException
public Connection getConnection() throws SQLException
getConnection
in interface Statement
SQLException
public int getFetchDirection() throws SQLException
getFetchDirection
in interface Statement
SQLException
public int getFetchSize() throws SQLException
getFetchSize
in interface Statement
SQLException
public ResultSet getGeneratedKeys() throws SQLException
getGeneratedKeys
in interface Statement
SQLException
public int getMaxFieldSize() throws SQLException
getMaxFieldSize
in interface Statement
SQLException
public int getMaxRows() throws SQLException
getMaxRows
in interface Statement
SQLException
public boolean getMoreResults() throws SQLException
getMoreResults
in interface Statement
SQLException
public boolean getMoreResults(int current) throws SQLException
getMoreResults
in interface Statement
SQLException
public int getQueryTimeout() throws SQLException
getQueryTimeout
in interface Statement
SQLException
public int getResultSetConcurrency() throws SQLException
getResultSetConcurrency
in interface Statement
SQLException
public int getResultSetHoldability() throws SQLException
getResultSetHoldability
in interface Statement
SQLException
public int getResultSetType() throws SQLException
getResultSetType
in interface Statement
SQLException
public SQLWarning getWarnings() throws SQLException
getWarnings
in interface Statement
SQLException
public boolean isClosed() throws SQLException
isClosed
in interface Statement
SQLException
public boolean isPoolable() throws SQLException
isPoolable
in interface Statement
SQLException
public void setCursorName(String name) throws SQLException
setCursorName
in interface Statement
SQLException
public void setEscapeProcessing(boolean enable) throws SQLException
setEscapeProcessing
in interface Statement
SQLException
public void setFetchDirection(int direction) throws SQLException
setFetchDirection
in interface Statement
SQLException
public void setFetchSize(int rows) throws SQLException
setFetchSize
in interface Statement
SQLException
public void setMaxFieldSize(int max) throws SQLException
setMaxFieldSize
in interface Statement
SQLException
public void setMaxRows(int max) throws SQLException
setMaxRows
in interface Statement
SQLException
public void setPoolable(boolean poolable) throws SQLException
setPoolable
in interface Statement
SQLException
public void setQueryTimeout(int seconds) throws SQLException
setQueryTimeout
in interface Statement
SQLException
public boolean isWrapperFor(Class<?> iface) throws SQLException
isWrapperFor
in interface Wrapper
SQLException
public <T> T unwrap(Class<T> iface) throws SQLException
unwrap
in interface Wrapper
SQLException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |