7.7 Запрос к регистру на ODBCRecordSet

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем umah, 17 май 2011.

  1. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток.

    Запрос ODBCRecordSet.

    Код:
    	ТекстЗапроса ="
    |SELECT
    |	right(Рег.ПозицияДокумента, 9) as [Док $Документ],
    |	Жур.IDDocDef as Док_вид,
    |	Рег.Номенклатура as [Ном $Справочник.Номенклатура],
    |	Рег.СуммаРасход as СуммаЗ
    |FROM
    |	$РегистрОбороты.ПартииНаличие(:Дата1,:Дата2~,ДОКУМЕНТ,,
    |	КодОперации = $Перечисление.КодыОпераций.Продажа"+?(ПустоеЗначение(Фирма)=0," AND Фирма = :Фирм","")+",
    |	(Номенклатура,ЕдИзм),
    |	(Количество,Сумма)
    |	) as Рег
    |INNER JOIN _1SJourn  Жур(nolock) 
    |	ON Жур.[IDDOC] = right(Рег.ПозицияДокумента, 9)
    |
    |";
    
    
    Необходимо также получить значение реквизита регистра 'Оборот'

    Если конструкция выглядит так:

    Код:
    ТекстЗапроса ="
    |SELECT
    |	right(Рег.ПозицияДокумента, 9) as [Док $Документ],
    |	Жур.IDDocDef as Док_вид,
    |	Рег.Номенклатура as [Ном $Справочник.Номенклатура],
    |	Рег.СуммаРасход as СуммаЗ,
    |	Рег.Оборот as СуммаП                                                   // РЕКВИЗИТ
    |FROM
    ............ И т.д
    </span>
    </FONT></FONT></pre>
    то ругается invalid column name 'Оборот'

    В мануале по классу про обращение к реквизитам регистра ничего не сказано.
    Подскажите, это вообще возможно сделать?
  2. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    может "СуммаОборот"? это просто предположил - по аналогии с запросом 8-ки ;)
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если речь идет о ТиС то ПартииНаличие это регистры остатков - причем здесь обороты?
  4. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Да, это ТиС, но запрос отрабатывает нормально. Вопрос не в том, что это регистр остатков или оборотов, а в том, как обратиться к реквизиту регистра. Может название реквизита вводит в заблуждение - пускай вместо реквизита Оборот будет КодОперации.
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да внешне все верно. Может имя ей не нравится?
  6. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Не, плевать ей на имя, это с любым реквизитом происходит.
  7. TopicStarter Overlay
    umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    "Бэримор! Тазик отменяется - мы обосрались"

    Чтобы получить доступ к реквизиту регистра, запрос должен иметь вот такую конструкцию:

    Код:
    	|SELECT
    |	Жур.IDDOC as [Док $Документ],
    |	Жур.IDDocDef as Док_вид,
    |	$РегПН.Номенклатура as [Ном $Справочник.Номенклатура],
    |	$РегПН.Сумма as СуммаЗ,
    |	$РегПН.Оборот as СуммаП
    |FROM
    |	$Регистр.ПартииНаличие AS РегПН(nolock)
    |INNER JOIN _1SJourn Жур(nolock) 
    |	ON Жур.IDDOC = РегПН.IDDoc
    |
    
    
    Судя по всему, в первоначальном варианте это невозможно, что очень печально :angry:

Поделиться этой страницей