Имя: Пароль:
1C
1С v8
А почему запрос так работает непонятно?
0 Таня
 
29.01.12
14:55
|////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    *
       |ИЗ
       |    РегистрНакопления.ОстаткиНоменклатуры.Обороты(
       |            &ДатаПоступления,
       |            &МоментВремени,
       |            Регистратор,
       |            Номенклатура В
       |                (ВЫБРАТЬ
       |                    НоменклатураПрихода.Номенклатура
       |                ИЗ
       |                    НоменклатураПрихода КАК НоменклатураПрихода)) КАК ОстаткиНоменклатурыОбороты
       |ГДЕ
       |    ОстаткиНоменклатурыОбороты.СрокГодности = ДАТАВРЕМЯ(1, 1, 1)
       |    И ОстаткиНоменклатурыОбороты.СтоимостьРасход = 0
       |    И ОстаткиНоменклатурыОбороты.Партия = &Партия";

Вот так работает, а если не все поля указывать, а к примеру так:
   |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    ОстаткиНоменклатурыОбороты.Регистратор,
       |    ОстаткиНоменклатурыОбороты.Номенклатура,
       |    ОстаткиНоменклатурыОбороты.Партия,
       |    ОстаткиНоменклатурыОбороты.СрокГодности,
       |    ОстаткиНоменклатурыОбороты.СтоимостьРасход
       |ИЗ
       |    РегистрНакопления.ОстаткиНоменклатуры.Обороты(
       |            &ДатаПоступления,
       |            &МоментВремени,
       |            Регистратор,
       |            Номенклатура В
       |                (ВЫБРАТЬ
       |                    НоменклатураПрихода.Номенклатура
       |                ИЗ
       |                    НоменклатураПрихода КАК НоменклатураПрихода)) КАК ОстаткиНоменклатурыОбороты
       |ГДЕ
       |    ОстаткиНоменклатурыОбороты.СрокГодности = ДАТАВРЕМЯ(1, 1, 1)
       |    И ОстаткиНоменклатурыОбороты.СтоимостьРасход = 0
       |    И ОстаткиНоменклатурыОбороты.Партия = &Партия";

то в выборке пусто
1 echo77
 
29.01.12
16:50
Условие из раздела ГДЕ убрать и посмотреть в чем дело
2 Таня
 
29.01.12
17:32
если условие убрать то показывает, но мне же условие надо
3 Таня
 
29.01.12
17:32
вобщем я выбрала из основной таблицы ОстаткиНоменклатуры. Мне надо только регистраторы.
4 Classic
 
29.01.12
17:34
А если так


       |ВЫБРАТЬ
       |    ОстаткиНоменклатурыОбороты.Регистратор,
       |    ОстаткиНоменклатурыОбороты.Номенклатура,
       |    ОстаткиНоменклатурыОбороты.Партия,
       |    ОстаткиНоменклатурыОбороты.СрокГодности,
       |    ОстаткиНоменклатурыОбороты.СтоимостьПриход,
       |    ОстаткиНоменклатурыОбороты.СтоимостьРасход
5 Таня
 
29.01.12
17:34
(4) не поняла
6 Classic
 
29.01.12
17:35
Добавить

       |    ОстаткиНоменклатурыОбороты.СтоимостьПриход,
7 Таня
 
29.01.12
17:36
да мне вообще ни приход ни расход не надо, мне только регистратор
если хотя бы одного поля не хватает из полного набора - показывает фигу
8 Classic
 
29.01.12
17:37
Сомневаюсь. Добавь СтоимостьПриход и посмотрим :)
9 Classic
 
29.01.12
17:38
Или что у тебя там ненулевое в выборке должно быть
10 Таня
 
29.01.12
17:41
расход должно быть ненулевое
11 Classic
 
29.01.12
17:42
Так зачем ты в условии пишешь


      |    И ОстаткиНоменклатурыОбороты.СтоимостьРасход = 0

?

Т.е. ты хочешь выбрать все регистраторы по регистру с нулевым расходом. Я правильно понял?
12 Таня
 
29.01.12
17:43
да
13 Classic
 
29.01.12
17:45
(12) с (10) не коррелирует :)
вот эта фигня

       |ИЗ
       |    РегистрНакопления.ОстаткиНоменклатуры.Обороты()

работает весьма специфически. Она группирует все рессурсы с !!указанной тобой выборки!! по всем измерениям, !!!указанным тобой в выборке!!! и берет ненулевые значения.

ты указываешь из рессурсов в выборке только Стоимостьрасход. как следствие тебе таблица возвращает с ненулевым стоимостьРасход, а потом ты все эти строки грохаешь условием
14 Таня
 
29.01.12
17:48
ну ок, а так правильно?
       "ВЫБРАТЬ
       |    ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура
       |ПОМЕСТИТЬ НоменклатураПрихода
       |ИЗ
       |    Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
       |ГДЕ
       |    ПриходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
       |
       |СГРУППИРОВАТЬ ПО
       |    ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    ОстаткиНоменклатуры.Регистратор КАК Регистратор
       |ИЗ
       |    РегистрНакопления.ОстаткиНоменклатуры КАК ОстаткиНоменклатуры
       |        ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураПрихода КАК НоменклатураПрихода
       |        ПО ОстаткиНоменклатуры.Номенклатура = НоменклатураПрихода.Номенклатура
       |ГДЕ
       |    ОстаткиНоменклатуры.СрокГодности = ДАТАВРЕМЯ(1, 1, 1)
       |    И ОстаткиНоменклатуры.Партия = &Партия
       |    И ОстаткиНоменклатуры.ВидДвижения = &ВидДвижения
       |    И ОстаткиНоменклатуры.Стоимость = 0
       |
       |УПОРЯДОЧИТЬ ПО
       |    Регистратор";
15 Classic
 
29.01.12
17:52
(14)
Жестяк какой-то.
Можешь полностью задачу описать?
16 Таня
 
29.01.12
17:55
лень вообще то
задача 1,6 сборника подготовки к специалисту
сначала расходы вводятся без контроля остатков, а потом приход появляется и надо определить какие расходы перепровести надо
17 Classic
 
29.01.12
18:02
Ну весь расход по тем номенклатурам, по которым был приход.
Я так понимаю, что был расход по количеству, но его не было по стоимости.
если я правильно понял, то тебе во втором запросе (0) сообщения надо поменять в выборке

       |    ОстаткиНоменклатурыОбороты.СтоимостьРасход

На


       |    ОстаткиНоменклатурыОбороты.КоличествоРасход
18 Classic
 
29.01.12
18:02
А условие оставить как было