8.х УТ Запрос не работает

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем Peters012, 19 сен 2011.

  1. TopicStarter Overlay
    Peters012
    Offline

    Peters012

    Регистрация:
    28 авг 2011
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Написал функцию для проверки наличия товара в регистре ТоварыОрганизации, но что-то не работает, не пойму что. Может кто что подскажет.

    Код:
     &НаСервере
    Функция ПоискНаСкладах(Номенкл, НомерГТД)
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Номенклатура", Номенкл);
    Запрос.УстановитьПараметр("НомерГТД", НомерГТД);
    Запрос.УстановитьПараметр("Склад", Склад);
    Запрос.Текст = "ВЫБРАТЬ
    |	КоличествоОстаток
    |ИЗ
    |	РегистрНакопления.ТоварыОрганизаций.Остатки КАК Остатки
    |ГДЕ
    |	Остатки.Номенклатура = &Номенклатура
    |	И Остатки.НомерГТД = &НомерГТД
    |	И Остатки.Склад = &Склад";	   	  
    Результат = Запрос.Выполнить().Выгрузить();
    Кол = Результат.КоличествоОстаток;
    
    Если Кол <> 0 <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда		</span>
    Возврат Истина;   		
    Иначе
    Возврат Ложь;  
    КонецЕсли;
    КонецФункции // ПоискНаСкладах
    
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Во-первых, условия лучше писать в параметрах виртуальной таблицы:
    Код:
    "ИЗ
    |РегистрНакопления.ТоварыОрганизаций.Остатки(, Номенклатура = &Номенклатура И НомерГТД = &НомерГТД И Склад = &Склад) КАК Остатки"
    
    
    Во-вторых, после вызова метода Выгрузить(), Вы получаете таблицу значений.
    Соответственно, надо так:
    Код:
    Кол = Результат[0].КоличествоОстаток;
    
    
  3. BVB_berserk
    Offline

    BVB_berserk Опытный в 1С

    Регистрация:
    30 янв 2009
    Сообщения:
    162
    Симпатии:
    0
    Баллы:
    26
    Во-первых, условия в параметры вирутальной таблицы. Во-вторых, у вас нигде не определен параметр Склад, откуда берется его значение? Если он пустой вы и получите пустоту в результате.
  4. comol
    Offline

    comol Опытный в 1С

    Регистрация:
    8 сен 2011
    Сообщения:
    153
    Симпатии:
    0
    Баллы:
    26
    В третьих блокировку нужно бы ставить перед контролем остатков..
  5. BVB_berserk
    Offline

    BVB_berserk Опытный в 1С

    Регистрация:
    30 янв 2009
    Сообщения:
    162
    Симпатии:
    0
    Баллы:
    26
    А это необязательный пункт, зависит от задачи и от режима управления блокировок.

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