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

Тема в разделе "1C и всё что с ней связано", создана пользователем -, 20 янв 2009.

  1. Гость

    Уважаемые профи, решите пожалуйста ребус, теоретически должно работать, а не работает.
    Методом "ВыбратьДвижения" всё показывает, а запросом нет.

    Процедура СформироватьЗапрос()

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Наименование = Регистр.Остатки.Товар.Наименование;
    |Кол = Регистр.Остатки.Количество;
    |Группировка Наименование;
    |Группировка Кол;
    |"//}}ЗАПРОС
    ;

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    Пока Запрос.Группировка(1) = 1 Цикл
    Сообщить(Запрос.Наименование);

    Пока Запрос.Группировка(2) = 1 Цикл
    Сообщить(Запрос.Кол);
    КонецЦикла;

    КонецЦикла;
    КонецПроцедуры
     
  2. mialord

    mialord Гость

    Если хотите чтобы люди начали вам отвечать, то для начала укажите необходимые параметры системы<Версия, Конфига для начала>. :(
     
  3. Гость

    Извиняюсь, это 7,7. :(
     
  4. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Процедура СформироватьЗапрос()

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с Выбнач по ВыбКон;// период обязателен! а то непонятно на какой момент количества считать
    |Наименование = Регистр.Остатки.Товар;// ну не любит запрос подсссылки на реквизиты, лучше без них
    |Кол = Регистр.Остатки.Количество;
    |Группировка Наименование;
    |Функция КолНач = НачОст(Кол);
    |Функция КолПрих = Приход(Кол);// само количество только ресурс - движение получают через функции, вот если бы был измерением - тогда да, нужна //была бы группировка.
    |Функция КолНач = Расход(Кол);
    |Функция КолКон = КонОст(Кол);
    |"//}}ЗАПРОС
    ;

    // если регистр оборотов, то там можно узнать только сумму |Функция КолКон = Сумма(Кол); и остатки
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    Пока Запрос.Группировка(1) = 1 Цикл
    Сообщить(Запрос.Наименование);

    Пока Запрос.Группировка(2) = 1 Цикл
    Сообщить(Запрос.КолНач);
    Сообщить(Запрос.КолПрих);
    Сообщить(Запрос.КолРасх);
    Сообщить(Запрос.КолКон);
    КонецЦикла;

    КонецЦикла;
    КонецПроцедуры
     
  5. Гость

    Спасибо Puh, очень подробно ответили! теперь ясно, что основная причина была в отсутствии интервала периода, но очень хотелось чтобы всю базу лопатил, вот осознанно даты не указывал.
    Но с Вашими пояснениями теперь хоть в голове устаканилось!
     
  6. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Неужели после прочтения книжки ничего не устаканивалось? Там же русским по белому написано: при выполнении запроса к регистрам в обязательном порядке должна быть функция...
     
  7. Гость

    Ну всё и не упомниш из книг, там же столько всего )
     
Загрузка...

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