Имя: Пароль:
1C
1C 7.7
v7: Прямой запрос к базе ODBCRecordset
0 кассир
 
23.12.25
15:45
В 1с 7.7 есть  1С++ который содержит встроенный тип ODBCRecordset. Он позволяет делать прямые запросы к базе SQL даже если база на 1с 7.7. Возник вопрос как в запросе к регистру Партии получить данные реквизита регистра

Дано:
Регистр Партии
     Измерение
        Товар
        Партия
     Ресурс
        Количество
     Реквизиты
        Сумма
        СуммаСкидки
        НомерСкидочнойКарты и.т.д
Запросы прямые возвращают только Измерения и Ресурс
а Реквизиты я не понимаю как достать?

    |SELECT *    
    |FROM $РегистрОстатки.Партии(,,,,) AS рег
    |";

    |SELECT *  
    |FROM $РегистрОстаткиОбороты.Партии(,,,,) AS рег
    |";

вот эти запросы как я понимаю должны показать реквизиты
а они показывают только измерения и ресурс.
Подскажите получить реквизит регистра?

Писал пользуясь документацией вот этой
https://script-coding.com/Direct_queries.html
1 кассир
 
23.12.25
15:56
Если обращаться к регистру как
$РегистрОстатки получим ИТОГИ
$РегистрОбороты получить ОБОРОТЫ
$РегистрОстаткиОбороты Получаем ИТОГИ и ОБОРОТЫ

но нет реквизитов...
2 АгентБезопасной Нацио
 
23.12.25
15:57
Ну так и обращаться как $Регистр.Партии
В чем проблема-то?
3 кассир
 
23.12.25
15:59
открыл файл DDS нашел этот регист RA.... где храниться регистр Партии

подключился к базе SQL через Menagement Studio
сделал запрос
select
  *
from
   RA...

все поля показывает включая реквизиты.. А делая запрос
из 1с через ODBCRecordset их нет..
4 АгентБезопасной Нацио
 
23.12.25
16:01
Select top 1000
*
from $Регистр.Партии
5 vicof
 
23.12.25
16:02
Переходить на 8 уже предлагали?
6 кассир
 
23.12.25
16:02
(2) При написании такого запроса
    |SELECT *    
    |FROM $Регистр.Партии(,,,,) AS рег
    |";

вылетает ошибка
odbc.ВыполнитьИнструкцию(text,tableValue,1);  
{C:\BASE\BUILD\EXTFORMS\REPORT\GOODS.ERT(164)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции ",".
7 кассир
 
23.12.25
16:03
(5) это слишком просто.
8 АгентБезопасной Нацио
 
23.12.25
16:03
(6) Где ты видишь у меня (,,,,,,) ???
9 кассир
 
23.12.25
16:10
text = "
    |SELECT top 1000 *    
    |FROM $Регистр.Партии()
    |";

выдает ошибку
odbc.ВыполнитьИнструкцию(text,tableValue,1);  
{C:\BASE\BUILD\EXTFORMS\REPORT\GOODS.ERT(164)}: State 42000, native 215, message [Microsoft][ODBC SQL Server Driver][SQL Server]Параметры предоставлены для объекта "ra9731", который не является функцией. Есл
10 АгентБезопасной Нацио
 
23.12.25
16:11
(9) где ты увидел скобки?
11 кассир
 
23.12.25
16:13
(10)Да писал со скобками как в предыдущих примерах. Без скобок заработало. Благодарю!!!  
   text = "
    |SELECT *    
    |FROM $Регистр.Партии
    |";
12 АгентБезопасной Нацио
 
23.12.25
16:17
(11) будут умные вопросы - задавай.