1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
Обработка 30.12.20 - 10:57 | 1-й
ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.Склад.Подразделение, СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток ПОМЕСТИТЬ ТовНаСкладах ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.Склад.Подразделение ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыОрганизацийБУОстатки.Подразделение, ТоварыОрганизацийБУОстатки.Товар, СУММА(ТоварыОрганизацийБУОстатки.КоличествоОстаток) КАК КоличествоОстаток ПОМЕСТИТЬ ИП ИЗ РегистрНакопления.ТоварыОрганизацийБУ.Остатки(&Период, ) КАК ТоварыОрганизацийБУОстатки СГРУППИРОВАТЬ ПО ТоварыОрганизацийБУОстатки.Подразделение, ТоварыОрганизацийБУОстатки.Товар ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ИП.Товар КАК Товар, ИП.Подразделение КАК Подразделение, ИП.КоличествоОстаток КАК ОстатокПоИП, ТовНаСкладах.КоличествоОстаток КАК ОстатокПоТовНАСкладах, ТовНаСкладах.КоличествоОстаток - ИП.КоличествоОстаток КАК Разность ИЗ ТовНаСкладах КАК ТовНаСкладах ПОЛНОЕ СОЕДИНЕНИЕ ИП КАК ИП ПО ТовНаСкладах.Номенклатура = ИП.Товар И ТовНаСкладах.СкладПодразделение = ИП.Подразделение ГДЕ ТовНаСкладах.КоличествоОстаток - ИП.КоличествоОстаток <> 0 УПОРЯДОЧИТЬ ПО Товар, Подразделение 2-й ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.Склад.Подразделение, ТоварыОрганизацийБУОстатки.Подразделение, ТоварыНаСкладахОстатки.КоличествоОстаток как ОстатокПоТовНАСкладах, ТоварыОрганизацийБУОстатки.КоличествоОстаток КАК ОстатокПоИП, ТоварыНаСкладахОстатки.КоличествоОстаток - ТоварыОрганизацийБУОстатки.КоличествоОстаток КАК Разность ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизацийБУ.Остатки КАК ТоварыОрганизацийБУОстатки ПО ТоварыНаСкладахОстатки.Номенклатура = ТоварыОрганизацийБУОстатки.Товар И ТоварыНаСкладахОстатки.Склад.Подразделение = ТоварыОрганизацийБУОстатки.Подразделение ГДЕ ТоварыНаСкладахОстатки.КоличествоОстаток - ТоварыОрганизацийБУОстатки.КоличествоОстаток <> 0 | ||
Галахад 1 - 30.12.20 - 11:08 | В первом к группированным данным условие.
Во втором нет. | ||
Ненавижу 1С 2 - 30.12.20 - 11:11 | при полном соединении надо писать ГДЕ ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток,0) - ЕСТЬNULL(ТоварыОрганизацийБУОстатки.КоличествоОстаток,0) <> 0 | ||
Обработка 3 - 30.12.20 - 12:04 | |||
Ёпрст 4 - 30.12.20 - 12:48 | (0) выкинуть оба запроса, открыть для себя объеденить все + имеюшие, наслаждаться, кушать печенки | ||
patria0muerte 5 - 30.12.20 - 12:49 | (2) Во втором варианте таблица "Товары на складах" не сгруппирована по подразделениям.
Т.е. условно при наличии разных складов с одним подразделением - у тебя будет несколько строк с разными суммами, но с одним подразделением. Ну и при полном соединении лучше все завернуть в ЕСТЬNULL()/А вообще судя по запросу, ИМХО, тебе надо сделать через ОБЪЕДИНИТЬ ВСЕ, сгруппировать и вычислить разность в уже сгруппированной таблице. И соединение полное не использовать | ||
patria0muerte 6 - 30.12.20 - 12:49 | |||
Обработка 7 - 30.12.20 - 14:27 | ТАк пробовал не взлетело ВЫБРАТЬ ТоварыНаСкладах.Склад.Подразделение КАК Подразделение, ТоварыНаСкладах.Номенклатура как Номенклатура, ТоварыНаСкладах.КоличествоОстаток КАК ОстТовНаСкл ПОМЕСТИТЬ ВТ ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладах ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыОрганизацийБУОстатки.Подразделение, ТоварыОрганизацийБУОстатки.Товар как Номенклатура, -ТоварыОрганизацийБУОстатки.КоличествоОстаток как ОстТовНаСкл ИЗ РегистрНакопления.ТоварыОрганизацийБУ.Остатки(&Период, ) КАК ТоварыОрганизацийБУОстатки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬВТ.Подразделение, ВТ.Номенклатура,
СУММА(ВТ.ОстТовНаСкл) КАК ОстТовНаСкл
ИЗ
ВТ КАК ВТ
где
ОстТовНаСкл <> 0
СГРУППИРОВАТЬ ПО
ВТ.Подразделение,
ВТ.Номенклатура | ||
Ненавижу 1С 8 - 30.12.20 - 14:48 | (7) последнее тогда так:
ВЫБРАТЬ ВТ.Подразделение, ВТ.Номенклатура, СУММА(ВТ.ОстТовНаСкл) КАК ОстТовНаСкл ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.Подразделение, ВТ.НоменклатураИМЕЮЩИЕ СУММА(ВТ.ОстТовНаСкл)<>0 | ||
Обработка 9 - 30.12.20 - 14:58 | (8) Попробовал получилось. вроде как.
Но в идеале мне нужно сравнить два регистра и по первому регистру второй регистр выровнять. А как я понимаю этот запрос всего лишь дает отличие И еще... при корректировке второго регистра использую еще одно доп измерение или по остатку или по движению. | ||
Хозрасчетный 10 - 30.12.20 - 15:47 | (0) У тебя в одном запросе так:
РегистрНакопления.ТоварыОрганизацийБУ.Остатки(&Период, ) КАК ТоварыОрганизацийБУОстатки а в другом так РегистрНакопления.ТоварыОрганизацийБУ.Остатки КАК ТоварыОрганизацийБУОстатки Логично, что они дают разные результаты. | ||
Ёпрст 11 - 31.12.20 - 01:38 | (9) ё..добавь еще 2 поля в текст запроса - суммы первого и второго регистра..вот те и различия.. | ||
Обработка 12 - 31.12.20 - 07:50 | (10) Это уже устранено. |
|
Список тем форума |