Имя: Пароль:
1C
1С v8
Таблица в запросе
,
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) и получил тот же результат.

Всем огромное спасибо.
Закон Брукера: Даже маленькая практика стоит большой теории.