Имя: Пароль:
1C
1С v8
выражение в запросе
, ,
0 gorilla
 
08.11.15
00:23
добрый вечер
делаю выражение
Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0))- Сумма(ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0)) КАК КоличествоТоваров,
показывает ноль.хотя в резерве 5 а всего на остатке 10.Туплю?
1 Armando
 
08.11.15
00:31
Чтобы тебе ответить надо знать что там у тебя в таблицах творится, и видеть запрос полностью.
2 hhhh
 
08.11.15
00:32
ничего удивительного. Вполне может быть. По одном строчке определить правильно или неправильно - нереально.
3 gorilla
 
08.11.15
00:35
когда делаю так то все работает и показывает количество 5
ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)-ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0) КАК КоличествоТоваров,

но и группировки пришлось отключить
4 gorilla
 
08.11.15
00:41
ВЫБРАТЬ  

Выразить(Номенклатура.Ссылка.НаименованиеПолное КАК строка(1000)) КАК Название,
МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры.СрокГодности) КАК СрокГодности,


Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)-ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0)) КАК КоличествоТоваров,

ВЫБОР
КОГДА Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) > 0
    ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК Наличие

ИЗ
Справочник.Номенклатура.Изменения КАК Номенклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки
ПО Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки() КАК ТоварыВРезервеНаСкладах
  ПО Номенклатура.Ссылка = ТоварыВРезервеНаСкладах.Номенклатура


ГДЕ
Номенклатура.Ссылка.ПометкаУдаления = ЛОЖЬ
И Номенклатура.Ссылка.ЭтоГруппа = ЛОЖЬ
И ТоварыНаСкладахОстатки.КоличествоОстаток > 0


СГРУППИРОВАТЬ ПО
Выразить(Номенклатура.Ссылка.НаименованиеПолное КАК строка (1000))

как то так
5 Armando
 
08.11.15
00:49
группировка тут и не нужна, если у вас нет номенклатуры с одинаковым названием.
"Номенклатура.Ссылка.НаименованиеПолное" и в прочих убрать ссылка
6 gorilla
 
08.11.15
00:53
(5)если группировка ненужна то как использовать минимум ?ругатся будет!!!!!
а ссылка для меня в данном случае не принципиально.проблема в другом
7 gorilla
 
08.11.15
00:54
(5)Поле не входит в группу "Номенклатура.Ссылка.НаименованиеПолное"
это без группировок
8 Armando
 
08.11.15
00:58
Да гоню. Не заметил что там по сериям
9 Armando
 
08.11.15
01:00
выведи в отдельных полях
Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0))
и
Сумма(ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0))
10 gorilla
 
08.11.15
01:05
(9)вывел.круто показывает везде 10.но база новая всего три приходных и один заказ покупателя сделал на 5 штук.откуда ж 10
11 Armando
 
08.11.15
01:06
А серий две да?
12 gorilla
 
08.11.15
01:07
выяснил
если закоментить МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры.СрокГодности) КАК СрокГодности,

то показывает 5.как быть?
13 gorilla
 
08.11.15
01:07
в заказе покупателя серии не указываются как раз
14 gorilla
 
08.11.15
01:07
только в приходе
15 Armando
 
08.11.15
01:10
(13) Заказ тут не при чем. Сколько серий в остатке?
Кароч, сделай временную таблицу, чтоб остатки вернулись 1 раз по каждой номенклатуре, потом соединяй с номенклатурой
16 gorilla
 
08.11.15
01:18
(15)2.  2 по одной и 8 по другой
17 gorilla
 
08.11.15
01:19
(15) делал так.но так остаток по серии выходит а мне нужен общий по всем.нсмотря на то что отбираю самую меньшую
18 Armando
 
08.11.15
01:19
(16) т.к. соединения по номенклатуре, то заказы умножаются на количество серий.
19 hhhh
 
08.11.15
01:22
(17) это элементарная математика, Остаток по каждой серии 5, если например будет 10 серий, то покажет остаток 50.
20 gorilla
 
08.11.15
01:23
ВЫБРАТЬ  

Выразить(Номенклатура.Ссылка.НаименованиеПолное КАК строка(1000)) КАК Название,
//МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры.СрокГодности) КАК СрокГодности,


Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)-ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0)) КАК КоличествоТоваров,

ВЫБОР
КОГДА Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) > 0
    ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК Наличие


ИЗ
Справочник.Номенклатура.Изменения КАК Номенклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки
ПО Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки() КАК ТоварыВРезервеНаСкладах
  ПО Номенклатура.Ссылка = ТоварыВРезервеНаСкладах.Номенклатура


ГДЕ
Номенклатура.Ссылка.ПометкаУдаления = ЛОЖЬ
И Номенклатура.Ссылка.ЭтоГруппа = ЛОЖЬ
И ТоварыНаСкладахОстатки.КоличествоОстаток > 0


СГРУППИРОВАТЬ ПО
Выразить(Номенклатура.Ссылка.НаименованиеПолное КАК строка (1000))


кароче так дает 5.тоесть все правильно.но минимум то отключен.а ради него и пьянка
21 Armando
 
08.11.15
01:24
выбрать
МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры.СрокГодности) КАК СрокГодности,
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток
пометстить ОстаткиНоменклатуры
из РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки

в основном запросе вместо РегистрНакопления.ТоварыНаСкладах.Остатки() используй эту таблицу
22 Armando
 
08.11.15
01:25
МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры.СрокГодности) КАК СрокГодности,
ТоварыНаСкладахОстатки.Номенклатура,
Сумма(ТоварыНаСкладахОстатки.КоличествоОстаток)
пометстить ОстаткиНоменклатуры
из РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки
сгруппировать по ТоварыНаСкладахОстатки.Номенклатура
23 gorilla
 
08.11.15
01:26
(21)да говорю делал я так.но так остаток вытянет с привязкой к серии а именно 2 вытянет.а мне надо чтобы общий вытянул тоесть 10
24 Armando
 
08.11.15
01:34
(23) покажи запрос как делал
25 gorilla
 
08.11.15
01:38
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК номенклатура,
МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры) КАК Серия
ПОМЕСТИТЬ СерииНоменклатуры
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки

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

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

СГРУППИРОВАТЬ ПО
ВЫРАЗИТЬ(СерииНоменклатуры.номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
СерииНоменклатуры.Серия
26 gorilla
 
08.11.15
01:38
так не устраивает.Ибо остаток бьет исключительно с привязкой к серии
27 Armando
 
08.11.15
02:15
(25) это вообще другой запрос. остатки с остатками соединяешь
28 gorilla
 
08.11.15
11:22
подниму может на свежую голову кто подсккажет
29 gorilla
 
08.11.15
11:48
кароче начал уже вести документ заказ покупателя в разрезе серий

Выразить(Номенклатура.Ссылка.НаименованиеПолное КАК строка(1000)) КАК Название,
МИНИМУМ(ТоварыНаСкладахОстатки.СерияНоменклатуры.СрокГодности) КАК СрокГодности,
МИНИМУМ(ТоварыВРезервеНаСкладах.СерияНоменклатуры.СрокГодности) КАК СрокГодностиРез,
Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)-ЕСТЬNULL(ТоварыВРезервеНаСкладах.КоличествоОстаток, 0)) КАК КоличествоТоваров,
ВЫБОР
КОГДА Сумма(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) > 0
    ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК Наличие
ИЗ
Справочник.Номенклатура.Изменения КАК Номенклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки() КАК ТоварыНаСкладахОстатки
ПО Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки() КАК ТоварыВРезервеНаСкладах
  ПО Номенклатура.Ссылка = ТоварыВРезервеНаСкладах.Номенклатура
ГДЕ
Номенклатура.Ссылка.ПометкаУдаления = ЛОЖЬ
И Номенклатура.Ссылка.ЭтоГруппа = ЛОЖЬ
И ТоварыНаСкладахОстатки.КоличествоОстаток > 0
СГРУППИРОВАТЬ ПО
Выразить(Номенклатура.Ссылка.НаименованиеПолное КАК строка (1000)

всеравно количество резерва 10.хотя должно быть емае 5
30 gorilla
 
08.11.15
12:25
че у всех день семьи?
31 hhhh
 
09.11.15
06:24
ПО Номенклатура.Ссылка = ТоварыНаСкладахОстатки.Номенклатура

и где у тебя тут серия? Всё петросянишь?
32 ЧеловекДуши
 
09.11.15
08:29
(29) Рекомендую сперва прогнать запрос без группировок, Максимума и Сумм... Убедись, что данные вообще есть :)
33 ЧеловекДуши
 
09.11.15
08:30
(30) Не, у нас "Ветка Пятницы..", а у тебя "День семьи" :)
Ошибка? Это не ошибка, это системная функция.