Вход | Регистрация

  1  2  3  4
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Опять запрос.. (я не умею называть темы)

v7: Опять запрос.. (я не умею называть темы)
Я
   bananan
 
17.01.13 - 17:15
Есть готовый запрос
Текст запроса такой:
Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
        "//{{ЗАПРОС(Сформировать)
 
        |Период с ВыбНачПериода по ВыбКонПериода;
        |Обрабатывать НеПомеченныеНаУдаление;
        |ТМЦ = Регистр.Обороты.ТМЦ;
        |Клиент = Регистр.Обороты.Клиент;
        |Агент = Регистр.Обороты.Агент;
        |РасходГрн = Регистр.Обороты.РасходГрн;
        |РасходКво = Регистр.Обороты.РасходКво;
        |Функция РасходГрнСумма = Сумма(РасходГрн);
        |Функция КвоРасход = Сумма(РасходКво);
        |Группировка Агент без групп;
        |Группировка Клиент  без групп;
        |Группировка ТМЦ;
        |Условие(ТМЦ в ВыбТМЦ);
        |Условие(Клиент в ВыбКлиент);
        |Условие(Агент в ВыбАгент);";
        Если СпИнкас.ТекущаяСтрока() = 2 Тогда
            ТекстЗапроса = ТекстЗапроса +"       
            |Условие(Клиент.Инкас =0);";
        ИначеЕсли СпИнкас.ТекущаяСтрока() = 3 Тогда 
            ТекстЗапроса = ТекстЗапроса +"       
            |Условие(Клиент.Инкас =1);";
        Конецесли;
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;
Так вот: нужно сюда добавить возможность выбора склада..
я сделал так:
    "//{{ЗАПРОС(Сформировать)
 
        |Период с ВыбНачПериода по ВыбКонПериода;
        |Обрабатывать НеПомеченныеНаУдаление;
        |Склад = Регистр.Обороты.Склад;
        |ТМЦ = Регистр.Обороты.ТМЦ;
        |Клиент = Регистр.Обороты.Клиент;
        |Агент = Регистр.Обороты.Агент;
        |РасходГрн = Регистр.Обороты.РасходГрн;
        |РасходКво = Регистр.Обороты.РасходКво;
        |Функция РасходГрнСумма = Сумма(РасходГрн);
        |Функция КвоРасход = Сумма(РасходКво);
        |Группировка Агент без групп;
        |Группировка Клиент  без групп;
        |Группировка ТМЦ;
        |Условие(Склад в выбСклад);
        |Условие(ТМЦ в ВыбТМЦ);
        |Условие(Клиент в ВыбКлиент);
        |Условие(Агент в ВыбАгент);";
        Если СпИнкас.ТекущаяСтрока() = 2 Тогда
            ТекстЗапроса = ТекстЗапроса +"       
            |Условие(Клиент.Инкас =0);";
        ИначеЕсли СпИнкас.ТекущаяСтрока() = 3 Тогда 
            ТекстЗапроса = ТекстЗапроса +"       
            |Условие(Клиент.Инкас =1);";
        Конецесли;
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
НИчего в результатах не изменилось.
К тому же в форме добавил "поле" для выбора склада...
ну и кнопки к этому полю..
Когда при открытии отчета в первый раз нажимаю кнопку выбора - нормально работает. А когда после этого еще раз нажимаю на кнопку выбора - выдает ошибку:
Если выбСклад.РазмерСписка()>0 Тогда
{\\SERVER12\VPKTEST$\EXTFORMS\ОТЧЕТПОАГЕНАМСВ.ERT(436)}: Поле агрегатного объекта не обнаружено (РазмерСписка)
Ну и два впороса:
1. Что не так у меня в запросе
2. Что не так с полем выбора склада?
 
 
   Mikeware
 
301 - 23.01.13 - 19:01
(297) :-))
   Wobland
 
302 - 23.01.13 - 19:02
(299) что такое "Запрос"?
   Wobland
 
303 - 23.01.13 - 19:04
(302) какой тип у переменной? что туда присваивается?
   bananan
 
304 - 23.01.13 - 19:15
Разве запрос:
   |SELECT
            |Внутренний.ID as [Сотрудник $Справочник.Сотрудники],
            | SUM(Внутренний.Став) as Ставка
              |
              |From
              |(
              |  SELECT
              |    Сотр.ID as ID,
              |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став
              |  FROM
              |    $Справочник.Сотрудники Сотр
              |  WHERE
              |     Сотр.ID IN (SELECT Val FROM #tmpSotr)
              |    AND $Сотр.ДатаПриема> :Дат1 
              |    AND $Сотр.ДатаПриема<= :ДатаАктуальности 
              |    AND  ($Сотр.ДатаУвольнения = '01.01.1753' or  $Сотр.ДатаУвольнения>= :ДатаАктуальности )
              |) as Внутренний
            |Group by 
            |   Внутренний.ID
            |";
Вернет структуру, а не число??
   Wobland
 
305 - 23.01.13 - 19:17
(304) выбираешь ИД и ждёшь числу?
   bananan
 
306 - 23.01.13 - 19:26
Такой код:
    |SELECT
            | SUM(Внутренний.Став) as Ставка
              |
              |From
              |(
              |  SELECT
              |    Сотр.ID as ID,
              |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став
              |  FROM
              |    $Справочник.Сотрудники Сотр
              |  WHERE
              |     Сотр.ID IN (SELECT Val FROM #tmpSotr)
              |    AND $Сотр.ДатаПриема> :Дат1 
              |    AND $Сотр.ДатаПриема<= :ДатаАктуальности 
              |    AND  ($Сотр.ДатаУвольнения = '01.01.1753' or  $Сотр.ДатаУвольнения>= :ДатаАктуальности )
              |) as Внутренний
            |Group by 
            |   Внутренний.ID
            |";
выдает в любом случае 1 (единицу)!!!
   bananan
 
307 - 23.01.13 - 19:33
+(306) убрал:
|Group by
            |   Внутренний.ID
 

Теперь считает так как надо! Всем большое спасибо.!!!
   Wobland
 
308 - 23.01.13 - 19:48
Сотр.ID as ID, убери ещё
  1  2  3  4

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует