7.7 Запрос к регистрам

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Vertex, 15 июн 2011.

  1. TopicStarter Overlay
    Vertex
    Offline

    Vertex Опытный в 1С

    Регистрация:
    14 июн 2011
    Сообщения:
    468
    Симпатии:
    4
    Баллы:
    29
    Доброго времени, не стал создавать отдельную тему
    вопрос касаемо запросов.

    Как я понял для запросов к регистрам обязательно использовать атрибут Функция?

    Например такая ситуация...
    Написал запрос

    Код:
    Запрос = СоздатьОбъект("ЗАпрос");    
    ТекстЗапроса = "
    |С НачДата По КонДата;
    |Фирма            = Регистр.ПартииНаличие.Фирма;
    |Номенклатура  = Регистр.ПартииНаличие.Номенклатура;
    |Док = Регистр.ПартииНаличие.ТекущийДокумент;
    |Количество      = Регистр.ПартииНаличие.Количество;  
    |Себест               = Регистр.ПартииНаличие.СуммаРуб;
    |Функция Кол    = Приход(Количество);
    |Условие (Товар = Номенклатура);
    |Группировка Номенклатура;
    |";
    Если ЗАпрос.Выполнить(ТекстЗапроса)=0 Тогда
    Возврат;
    КонецЕсли;  
    
    Пока ЗАпрос.Группировка(1)=1 Цикл
    Сообщить("     " +Запрос.Номенклатура+"  "+Запрос.Количество  );
    КонецЦикла;    
    
    
    После окончания запроса при обращении к переменной "Количество" выдаёт верное значение как в документе, а при обращении к переменной возвращённой функции "Кол" значение удваивается.....
    Тогда не понимаю смылся использования функции так как результатом я её не пользуюсь он не актуален в данном случае, или эта функция Приход актуальна только для оборотных регистров?
    Заранее спасибо
  2. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Да. Как раз для регистров остатков. Просто вы не доразбирались с группировками. Если поствить группировку по документу - все посчитается.
  3. TopicStarter Overlay
    Vertex
    Offline

    Vertex Опытный в 1С

    Регистрация:
    14 июн 2011
    Сообщения:
    468
    Симпатии:
    4
    Баллы:
    29
    Если не затруднит можно пояснить!?
  4. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Функция выдает значение для текущей группировки. У вас это Номенклатура. Если вам нужны значения для документов, то добавляйте еще одну группировку. Хотя в вашем случае (Условие (Товар = Номенклатура)) достаточно одной группировки по документам.
    Код:
    ТекстЗапроса = "
    |С НачДата По КонДата;
    |Фирма            = Регистр.ПартииНаличие.Фирма;
    |Номенклатура  = Регистр.ПартииНаличие.Номенклатура;
    |Док = Регистр.ПартииНаличие.ТекущийДокумент;
    |Количество      = Регистр.ПартииНаличие.Количество;  
    |Себест               = Регистр.ПартииНаличие.СуммаРуб;
    |Функция Кол    = Приход(Количество);
    |Условие (Товар = Номенклатура);
    |Группировка Док;
    |";
    
    
    

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