Имя: Пароль:
1C
1С v8
что не верно в запросе?
0 LivingStar
 
06.09.12
08:42
ВЫБРАТЬ
   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
   РасходнаяНакладнаяСписокНоменклатуры.ЕдиницаИзмерения,
   СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
   СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма,
   РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
ПОМЕСТИТЬ РасходнаяНакладная
ИЗ
   Документ.Расходная.Товары КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
   РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
   РасходнаяНакладнаяСписокНоменклатуры.ЕдиницаИзмерения,
   РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ОстаткиНоменклатурыОстатки.Номенклатура,
   ОстаткиНоменклатурыОстатки.Склад,
   ОстаткиНоменклатурыОстатки.КоличествоОстаток,
   ОстаткиНоменклатурыОстатки.СуммаОстаток
ПОМЕСТИТЬ Остатки
ИЗ
   РегистрНакопления.ОстаткиНоменклатуры.Остатки(&МоментВремени, &Склад) КАК ОстаткиНоменклатурыОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   РасходнаяНакладная.Номенклатура КАК Номенклатура,
   РасходнаяНакладная.Склад КАК Склад,
   РасходнаяНакладная.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
   РасходнаяНакладная.Количество КАК Количество,
   РасходнаяНакладная.Сумма КАК Сумма,
   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток,
   ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток1,
   ОстаткиНоменклатурыОстатки.СуммаОстаток КАК СуммаОстаток1
ИЗ
   РасходнаяНакладная КАК РасходнаяНакладная
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
               &МоментВремени,
               Номенклатура В
                   (ВЫБРАТЬ РАЗЛИЧНЫЕ
                       РН.Номенклатура
                   ИЗ
                       РасходнаяНакладная КАК РН)) КАК ОстаткиНоменклатурыОстатки
       ПО РасходнаяНакладная.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура

УПОРЯДОЧИТЬ ПО
   Склад
1 aleks-id
 
06.09.12
08:43
(0) там это... неверно на букву "Ф"
2 kosts
 
06.09.12
08:44
Я бы как то так сделал:

УПОРЯДОЧИТЬ ПО
   Склад.Наименование
3 rintik
 
06.09.12
08:47
ОстаткиНоменклатурыОстатки - таблицу строить только по той номенклатуре которая есть в Документ.Расходная.Товары. Зачем все отсатки выбирать?
4 m-serg74
 
06.09.12
08:47
че та бред какой та)
5 m-serg74
 
06.09.12
08:48
+ (3) все Остатки выбирать и не использовать нигде
6 unregistered
 
06.09.12
08:49
(0) Во-первых, непонятно для чего нужна ВТ Остатки. Она ни где не используется.
Во-вторых, в регистре ОстаткиНоменклатуры явно есть измерение Склад. Однако в последнем запросе ни в параметрах ни в условиях соединения измерение Склад не учитывается (достаточно в параметрах виртуальной таблицы ОстаткиНоменклатуры.Остатки).
В-третьих, нафига дубли типа КоличествоОстаток и КоличествоОстаток1?
7 m-serg74
 
06.09.12
08:49
а в соединении Склад по боку
8 Godofsin
 
06.09.12
08:49
(5) Пусть будут, чо... Вдруг пригодятся?
9 Живой Ископаемый
 
06.09.12
08:50
Все так. это запрос-победитель.
10 unregistered
 
06.09.12
08:52
ВЫБРАТЬ
  РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
  РасходнаяНакладнаяСписокНоменклатуры.ЕдиницаИзмерения,
  СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
  СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма,
  РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
ПОМЕСТИТЬ РасходнаяНакладная
ИЗ
  Документ.Расходная.Товары КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
  РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
   РасходнаяНакладнаяСписокНоменклатуры.ЕдиницаИзмерения,
   РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
  РасходнаяНакладная.Номенклатура КАК Номенклатура,
  РасходнаяНакладная.Склад КАК Склад,
  РасходнаяНакладная.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
  РасходнаяНакладная.Количество КАК Количество,
  РасходнаяНакладная.Сумма КАК Сумма,
  ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
  ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток
ИЗ
   РасходнаяНакладная КАК РасходнаяНакладная
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
               &МоментВремени,
               (Номенклатура, Склад) В
                   (ВЫБРАТЬ РАЗЛИЧНЫЕ
                       РН.Номенклатура,
                       РН.Склад
                   ИЗ
                       РасходнаяНакладная КАК РН)) КАК ОстаткиНоменклатурыОстатки
       ПО РасходнаяНакладная.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
          И РасходнаяНакладная.Склад = ОстаткиНоменклатурыОстатки.Склад
УПОРЯДОЧИТЬ ПО
  Склад
11 LivingStar
 
06.09.12
09:03
поправил, надо извлечь было остатки по складу, и рассчитать себестоимость общую


СГРУППИРОВАТЬ ПО
   РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
   РасходнаяНакладнаяСписокНоменклатуры.ЕдиницаИзмерения,
   РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   РасходнаяНакладная.Номенклатура КАК Номенклатура,
   РасходнаяНакладная.Склад КАК Склад,
   РасходнаяНакладная.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
   РасходнаяНакладная.Количество КАК Количество,
   РасходнаяНакладная.Сумма КАК Сумма,
   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстатокВсего,
   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстатокВсего,
   Остатки.КоличествоОстаток КАК КоличествоОстатокПоСкладу,
   Остатки.СуммаОстаток КАК СуммаОстатокПоСкладу,
   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) / ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Себестоимость
ИЗ
   РасходнаяНакладная КАК РасходнаяНакладная
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
               &МоментВремени,
               Номенклатура В
                   (ВЫБРАТЬ РАЗЛИЧНЫЕ
                       РН.Номенклатура
                   ИЗ
                       РасходнаяНакладная КАК РН)) КАК ОстаткиНоменклатурыОстатки
       ПО РасходнаяНакладная.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
       ПО РасходнаяНакладная.Номенклатура = Остатки.Номенклатура

УПОРЯДОЧИТЬ ПО
   Склад
12 LivingStar
 
06.09.12
09:04
(10) спасибо, я то думал как все склад передать вторым параметром
13 m-serg74
 
06.09.12
09:14
/ ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) т.е. на 0 делить бум)))
14 m-serg74
 
06.09.12
09:15
хотя в (11) по прежнему много и без (13) бреда
15 LivingStar
 
06.09.12
10:09
а что там, какого бреда? выбираются остатки по складу что бы проверить отрицательные остатки, и общие остатки по всем складам что бы рассчитать себестоимость


   Запрос.Текст = "
       |ВЫБРАТЬ
       |    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
       |    РасходнаяНакладнаяСписокНоменклатуры.ЕдиницаИзмерения,
       |    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
       |    СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма,
       |    РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
       |ПОМЕСТИТЬ РасходнаяНакладная
       |ИЗ
       |    Документ.Расходная.Товары КАК РасходнаяНакладнаяСписокНоменклатуры
       |ГДЕ
       |    РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
       |
       |СГРУППИРОВАТЬ ПО
       |    РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
       |    РасходнаяНакладнаяСписокНоменклатуры.ЕдиницаИзмерения,
       |    РасходнаяНакладнаяСписокНоменклатуры.Ссылка.Склад
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    ОстаткиНоменклатурыОстатки.Номенклатура,
       |    ОстаткиНоменклатурыОстатки.Склад,
       |    ОстаткиНоменклатурыОстатки.КоличествоОстаток,
       |    ОстаткиНоменклатурыОстатки.СуммаОстаток
       |ПОМЕСТИТЬ Остатки
       |ИЗ
       |    РегистрНакопления.ОстаткиНоменклатуры.Остатки(&МоментВремени, ) КАК ОстаткиНоменклатурыОстатки
       |ГДЕ
       |    ОстаткиНоменклатурыОстатки.Склад = &Склад
       |;
       |
       |////////////////////////////////////////////////////////////////////////////////
       |ВЫБРАТЬ
       |    РасходнаяНакладная.Номенклатура                       КАК Номенклатура,
       |    РасходнаяНакладная.Склад                              КАК Склад,
       |    РасходнаяНакладная.ЕдиницаИзмерения                   КАК ЕдиницаИзмерения,
       |    РасходнаяНакладная.Количество * РасходнаяНакладная.ЕдиницаИзмерения.Коэффициент КАК КоличествоВШт,
       |    РасходнаяНакладная.Количество                             КАК КоличествоВЕдИзм,
       |    РасходнаяНакладная.Сумма                                  КАК Сумма,
       |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстатокВсего,
       |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0)      КАК СуммаОстатокВсего,
       |    Остатки.КоличествоОстаток                                 КАК КоличествоОстатокПоСкладу,
       |    Остатки.СуммаОстаток                                      КАК СуммаОстатокПоСкладу,
       |    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) / ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 1) КАК Себестоимость
       |ИЗ
       |    РасходнаяНакладная КАК РасходнаяНакладная
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
       |                &МоментВремени,
       |                Номенклатура В
       |                    (ВЫБРАТЬ РАЗЛИЧНЫЕ
       |                        РН.Номенклатура
       |                    ИЗ
       |                        РасходнаяНакладная КАК РН)) КАК ОстаткиНоменклатурыОстатки
       |        ПО РасходнаяНакладная.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
       |        ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
       |        ПО РасходнаяНакладная.Номенклатура = Остатки.Номенклатура
       |
       |УПОРЯДОЧИТЬ ПО
       |    Склад";
16 DrShad
 
06.09.12
10:12
(15) для чего вообще нужна вторая ВТ? она лишняя
17 m-serg74
 
06.09.12
10:13
он из нее остатки по конккретному складу берет а цену считает по всем складам
18 DrShad
 
06.09.12
10:16
(17) стандартный вопрос - а нафига? смысл?
19 m-serg74
 
06.09.12
10:17
стандартный ответ - никакого)) но хочется так ему...
20 DrShad
 
06.09.12
10:18
(19) ок
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой