7.7 Запрос по доках расходная накладная по реквизите менеджер

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

  1. TopicStarter Overlay
    fantas
    Offline

    fantas Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    В запросе я отбираю доки расходная накладная в указанном периоде.
    Надо выводить в таблице менеджера (Менеджер - реквизит шапки дока расходная накладная ) и ниже список расходных накладных, в которых есть этот менеджер.

    Вот код:

    //-----------------------------
    Процедура ОтборМенеджеров(Запрос)

    ТекстЗапр = "//{{ЗАПРОС(ОтборМенеджеров)
    |С НачДата По КонДата;
    |РасходнаяНакладная= Документ.РасходнаяНакладная.ТекущийДокумент;
    |зМенеджер = Справочник.Менеджер.ТекущийЭлемент;
    |Группировка зМенеджер упорядочить по зМенеджер.Наименование;
    |Группировка РасходнаяНакладная упорядочить по РасходнаяНакладная.НомерДок;
    |Функция Сума = Сумма(РасходнаяНакладная.СуммаСНДС);
    |Условие (РасходнаяНакладная.Менеджер в Менеджер);
    |";//}}ЗАПРОС

    Запрос=СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапр) = 0 Тогда
    Сообщить("Запрос не выполнился!",0);
    Возврат;
    КонецЕсли;

    Пока Запрос.Группировка("зМенеджер")=1 Цикл
    Таб.ВывестиСекцию("Менеджер");
    змМен=Запрос.зМенеджер;
    Пока Запрос.Группировка("РасходнаяНакладная")=1 Цикл
    змРасходнаяНакладная = Запрос.РасходнаяНакладная;
    Если змРасходнаяНакладная.Менеджер.Выбран()=1 Тогда
    Если змМен = змРасходнаяНакладная.Менеджер Тогда
    Таб.ВывестиСекцию("Таблица");
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    Таб.ВывестиСекцию("Дно");

    КонецПроцедуры //ОтборМенеджеров


    Так 1С мне выдает ошибку: "Значение не представляет агрегатный объект (Менеджер): 2" и не выводить мне секцию "Таблица", в которой идет розшифровка доков по менеджеру выведенному выше в секции "Менеджер".
    Хотя Функция Сума = Сумма(РасходнаяНакладная.СуммаСНДС) в секции "Дно" выводит итог по реквизите "СуммаСНДС" по всех доках.

    Что не так?
  2. 77dpi
    Offline

    77dpi Опытный в 1С

    Регистрация:
    17 окт 2006
    Сообщения:
    66
    Симпатии:
    0
    Баллы:
    26
    Условие (РасходнаяНакладная.Менеджер в Менеджер);

    по первому взгляду - Менеджер - это наверное "зМенеджер"
    и ссылка в условии "РасходнаяНакладная.Менеджер" не нравится, попробуй вместо нее переменную в запросе типа
    наклМенеджер=Документ.РасходнаяНакладная.Менеджер
  3. TopicStarter Overlay
    fantas
    Offline

    fantas Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Баллы:
    26
    Нужно так писать запрос:


    Процедура ОтборМенеджеров(Запрос)

    ТекстЗапр = "//{{ЗАПРОС(ОтборМенеджеров)
    |С НачДата По КонДата;
    |РасходнаяНакладная= Документ.РасходнаяНакладная.ТекущийДокумент;
    |зМенеджер = РасходнаяНакладная.Менеджер;
    |Группировка зМенеджер упорядочить по зМенеджер.Наименование;
    |Группировка РасходнаяНакладная упорядочить по РасходнаяНакладная.НомерДок;
    |Функция Сума = Сумма(РасходнаяНакладная.СуммаСНДС);
    |Условие (РасходнаяНакладная.Менеджер в Менеджер);
    |";//}}ЗАПРОС

    Запрос=СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапр) = 0 Тогда
    Сообщить("Запрос не выполнился!",0);
    Возврат;
    КонецЕсли;

    Пока Запрос.Группировка(1)=1 Цикл
    Таб.ВывестиСекцию("Менеджер");
    змМен=Запрос.зМенеджер;
    Пока Запрос.Группировка(2)=1 Цикл
    Таб.ВывестиСекцию("Таблица");
    КонецЦикла;
    КонецЦикла;
    Таб.ВывестиСекцию("Дно");

    КонецПроцедуры //ОтборМенеджеров


    Нужно чтобы внутренная группировка была связана как-то с внешней (знакомый программист подсказал).

    Тему можно закрыть.

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