| 
    
        
     
     | 
    
  | 
Таблица в запросе | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        247tsm    
     01.05.13 
            ✎
    18:15 
 | 
         
        Добрый день,
  
        Я не силен в запросах, поэтому большая просьба подсказать, как подправить запрос, в котором выдается ошибка "Таблица не найдена "РегистрСведенийМенеджер.ЦенаНоменклатурыПоГруппамСкладов.СрезПоследних": Запрос=Новый Запрос(); Запрос.Текст=" |Выбрать | Остатки.Субконто1 Как Субконто1, | Остатки.Субконто3 Как Субконто3, | Остатки.Субконто4 Как Субконто4, | Остатки.Субконто2 Как Субконто2, | Сумма(Остатки.СуммаОстаток) Как Сумма, | Сумма(Остатки.КоличествоОстаток) Как Количество, | ТоварЦена.Цена Как Цена |Из | РегистрБухгалтерии.РегистрДляПланаСчетов_Основной.Остатки( | &Период, Счет = ЗНАЧЕНИЕ(ПланСчетов.Основной.A217_1), , ) КАК Остатки, | РегистрСведений.ЦенаНоменклатурыПоГруппамСкладов.СрезПоследних(&Период) КАК ТоварЦена"; Спасибо.  | 
|||
| 
    1
    
        IamAlexy    
     01.05.13 
            ✎
    18:15 
 | 
         
        определиться как на самом деле называется регистр и периодический ли он     
         | 
|||
| 
    2
    
        IamAlexy    
     01.05.13 
            ✎
    18:16 
 | 
         
        пожалуйста     
         | 
|||
| 
    3
    
        247tsm    
     01.05.13 
            ✎
    18:17 
 | 
         
        Да, это регистр сведений и он периодический и называется именно так: ЦенаНоменклатурыПоГруппамСкладов     
         | 
|||
| 
    4
    
        Wobland    
     01.05.13 
            ✎
    18:18 
 | 
         
        (3) ошибка не соотносится с текстом запроса. следующая попыька     
         | 
|||
| 
    5
    
        247tsm    
     01.05.13 
            ✎
    18:19 
 | 
         
        Я краем уха слышал про менеджер временных таблиц или пакетный запрос - может в этом ответ. Но я не знаю, как применить менеджер временных таблиц или как составить пакетный запрос.     
         | 
|||
| 
    6
    
        Wobland    
     01.05.13 
            ✎
    18:20 
 | 
         
        (5) пожалеть?     
         | 
|||
| 
    7
    
        247tsm    
     01.05.13 
            ✎
    18:23 
 | 
         
        Вот полный текст сообщения об ошибке:
  
        Ошибка при вызове метода контекста (Выполнить): {(13, 2)}: Таблица не найдена "РегистрСведенийМенеджер.ЦенаНоменклатурыПоГруппамСкладов.СрезПоследних" <<?>>РегистрСведенийМенеджер.ЦенаНоменклатурыПоГруппамСкладов.СрезПоследних(&Период) КАК ТоварЦена Где Истина И Истина И Истина И Истина И Истина И Истина И Истина выборка=Запрос.Выполнить(); по причине: {(13, 2)}: Таблица не найдена "РегистрСведенийМенеджер.ЦенаНоменклатурыПоГруппамСкладов.СрезПоследних" <<?>>РегистрСведенийМенеджер.ЦенаНоменклатурыПоГруппамСкладов.СрезПоследних(&Период) КАК ТоварЦена Где Истина И Истина И Истина И Истина И Истина И Истина И Истина  | 
|||
| 
    8
    
        Wobland    
     01.05.13 
            ✎
    18:26 
 | 
         
        (7) не бывает таких таблиц РегистрСведенийМенеджер...     
         | 
|||
| 
    9
    
        Wobland    
     01.05.13 
            ✎
    18:26 
 | 
         
        и истин явно маловато     
         | 
|||
| 
    10
    
        craxx    
     01.05.13 
            ✎
    18:27 
 | 
         
        Слово "Менеджер" выкоси отовсюду     
         | 
|||
| 
    11
    
        247tsm    
     01.05.13 
            ✎
    18:30 
 | 
         
        У меня передаются параметры, поэтому столько ИСТИН ;)
  
        Уточнение: это сообщение появляется, когда я использую РегистрСведенийМенеджер. Если я использую РегистрСведений, то ошибка: Ошибка при вызове метода контекста (Выполнить): {(9, 3)}: Поле не входит в группу "ТоварЦена.Цена" <<?>>ТоварЦена.Цена Как Цена выборка=Запрос.Выполнить(); по причине: {(9, 3)}: Поле не входит в группу "ТоварЦена.Цена" <<?>>ТоварЦена.Цена Как Цена РегистрСведений ЦенаНоменклатурыПоГруппамСкладов имеет: Измерения - Номенклатура, ГруппаСкладов Ресурсы - Цена  | 
|||
| 
    12
    
        craxx    
     01.05.13 
            ✎
    18:33 
 | 
         
        я не совсем понимаю... ты запрос руками пишешь что-ли?
  
        используй конструктор и посмотри как он тебе сделает - попытайся понять логику  | 
|||
| 
    13
    
        Wobland    
     01.05.13 
            ✎
    18:34 
 | 
         
        (11) теперь оно тебе говорит, что ты пыьтаешься выбрать поле, не применяя к нему агрегатной функции и не делаю по нему группировку     
         | 
|||
| 
    14
    
        247tsm    
     01.05.13 
            ✎
    18:45 
 | 
         
        (13) а какую агрегатную функцию можно применить к полю "Цена" - Сумма...?     
         | 
|||
| 
    15
    
        Wobland    
     01.05.13 
            ✎
    18:46 
 | 
         
        (14) а также максимум, минимум и количество. будешь продолжать задавать глупые вопросы - будешь продолжать получать на них точные ответы     
         | 
|||
| 
    16
    
        247tsm    
     01.05.13 
            ✎
    18:53 
 | 
         
        а если мне нужно получить просто цену на определенную дату? Мне не нужны не максимум, ни минимум, ни количество, ни сумма ..., то как быть в этом случае?     
         | 
|||
| 
    17
    
        Wobland    
     01.05.13 
            ✎
    18:54 
 | 
         
        (16) брать срез последних     
         | 
|||
| 
    18
    
        hhhh    
     01.05.13 
            ✎
    19:29 
 | 
         
        (16) Сумма() убери. Это бред, Оно и так просуммировано там.     
         | 
|||
| 
    19
    
        GANR    
     01.05.13 
            ✎
    20:11 
 | 
         
        (0) В каком субконто лежит номенклатура??? Вот по нему и надо написать условие соединения. А так запрос будет примерно вот таким:
  
        Запрос=Новый Запрос(); Запрос.Текст= "ВЫБРАТЬ | Остатки.Субконто1 Как Субконто1, | Остатки.Субконто3 Как Субконто3, | Остатки.Субконто4 Как Субконто4, | Остатки.Субконто2 Как Субконто2, | Остатки.СуммаОстаток Как Сумма, | Остатки.КоличествоОстаток Как Количество, | ЕСТЬNULL(ТоварЦена.Цена, 0) Как Цена |Из | РегистрБухгалтерии.РегистрДляПланаСчетов_Основной.Остатки( | &Период, Счет = ЗНАЧЕНИЕ(ПланСчетов.Основной.A217_1), , ) КАК Остатки ЛЕВОЕ СОЕДИНЕНИЕ | РегистрСведений.ЦенаНоменклатурыПоГруппамСкладов.СрезПоследних(&Период, ) КАК ТоварЦена ПО Остатки.Субконто1 = ТоварЦена.Номенклатура";  | 
|||
| 
    20
    
        247tsm    
     01.05.13 
            ✎
    20:54 
 | 
         
        Всё получилось. Я сначала сделал, как в (19), но вместо "ЛЕВОЕ СОЕДИНЕНИЕ" просто поставил ",". А потом сделал точно, как в (19) и получил тот же результат.
  
        Всем огромное спасибо.  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |