7.7 Помогите с запросом SQL

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем W@rt, 15 апр 2009.

  1. TopicStarter Overlay
    W@rt
    Offline

    W@rt Опытный в 1С

    Регистрация:
    22 сен 2008
    Сообщения:
    236
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте! Имеется вопрос, после переноса базы на SQL, справочник номенклатура начал тормозить. Переписал запрос таким образом. При открытии:
    Код:
     ЗапросODBC = СоздатьОбъект("ODBCRecordSet");
    КонецПопытки;
    ЗапросODBC.Отладка();
    ТекстЗапросаODBC=	
    "select 
    | $Рег.Количество as Количество
    | from $Регистр.Остатки as Рег 
    | where Рег.Period = :ПериодТА
    | and  $Рег.Фирма = :Фирма 
    | $Рег.Товар = ?
    |";                    	  ЗапросODBC.УстановитьТекстовыйПараметр("ПериодТА",ЗапросODBC.мд.ПолучитьНачПериода(ПолучитьДатуТА()));
    ЗапросODBC.УстановитьТекстовыйПараметр("Фирма",Фирма);
    Если ЗапросODBC.Подготовить(ТекстЗапросаODBC)<>1 Тогда
    Сообщить("ODBCRecordset error:"+РазделительСтрок+ЗапросODBC.ПолучитьОписаниеОшибки());
    Возврат;
    КонецЕсли;
    ЗапросODBC.ПостроитьПараметры();
    ЗапросODBC.УстПараметр(1, ЗапросODBC.мд.ПолучитьНачПериода(ПолучитьДатуТА()));
    ЗапросODBC.УстПараметр(2, Фирма); 
    
    Затем в функции остаток по параметру Товар, нужно вывести остаток(т.е. чтобы несколько раз не вызывать запрос) Выбираем строку из запроса и двигаемся по товару при отображая остаток:
    Код:
      
    ЗапросODBC.УстПараметр(3, ТекущийЭлемент());
    Кол=ЗапросODBC.ВыполнитьСкалярный();
    
    
    Но он возвращает ошибку неправильный индекс у товара. если убираю параметр то пустой остаток.
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104

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