Запрос для вывода нулевых остатков #730090


#0 by antihacker
Вот запрос. Работает правильно. Но не выводит нулевые остатки. Полчему и как сделать что бы получить нулевые и не нулевые остатки. Спасибо.
#0 by antihacker
Вот запрос. Работает правильно. Но не выводит нулевые остатки. Полчему и как сделать что бы получить нулевые и не нулевые остатки. Спасибо.
#1 by Волшебник
запрос к справочнику + левое внешние соединение к регистру
#2 by vicof
В таблице остатков нет нулевых остатков. Соединяй с номенклатурой.
#3 by vicof
А за запрос в цикле расстрел.
#4 by разработчик 1с
а вообще зачем цикл, если склад в списке
#5 by bolobol
А нулевые остатки за какой период нужны?
#6 by antihacker
Волшебник, а что  это означает ? Не получается придумать. Покажи класс ;-)
#7 by asady
тебе нужно по всей номенклатуре которая есть в справочнике? а если у тебя там тыщи миллионов элементов - по всем бублик рисовать что-ли?
#8 by antihacker
В запросе есть строка Номенклатура.Монолит = ИСТИНА По идее она должна вытащить те номенклатуры у которых есть этот признак.
#9 by GROOVY
Сгруппировать - нафиг? Там нет повторяющихся значений. Итоги нафига? Колбасу и Отвертки складывать? Цикл вообще зачем?
#10 by GROOVY
"В запросе есть строка Номенклатура.Монолит = ИСТИНА По идее она должна вытащить те номенклатуры у которых есть этот признак." Эта строка должна выбор записей по этому признаку.
#11 by antihacker
GROOVY, не усложняй и не отвлекай. Пожалуйста по теме. Можешь предложить вариант ?
#12 by antihacker
Как надо писать запрос ?
#13 by GROOVY
Могу. Убираем группировки, цикл и итоги, делаем левое соединение справочника с регистром накопления. Причем сначала выбираем из справочника всех Монолист, а потом этот результат используем и как таблицу справочника и как значение фильтра для расчета виртуальной таблицы. Думаю тут хорошо впишется использование временной таблицы. И надеюсь Монолист - проиндексированный реквизит!
#14 by antihacker
Ну в теории я так и понял ) А примерчик ?
#15 by SeraFim
а зарплату тоже за тебя будет получать? Если понял, поправь сам. Если не получилось - покажи что же в итоге ты сделал.
#16 by Oleg_ka
Вот пример http:// infostart.ru/public/153851/ (пробел убери после http://)
#17 by antihacker
{ВнешняяОбработка.Монолит21}: Ошибка при вызове метода контекста (Выполнить): {(13, 1)}: Ожидается имя таблицы
#18 by antihacker
Исправил вот так. {ВнешняяОбработка.Монолит21}: Ошибка при вызове метода контекста (Выполнить): {(11, 69)}: Поле не найдено "Справочник.Номенклатура" И Номенклатура.Монолит = ИСТИНА ) КАК ТоварыНаСкладахОстатки по <<?>>Справочник.Номенклатура=Номенклатура
#19 by GenAcid
по СпрНоменклатура.Номенклатура=ТоварыНаСкладахОстатки .Номенклатура
#20 by antihacker
Исправил вот так
#21 by GenAcid
Скорее всего даже так по СпрНоменклатура.Ссылка=ТоварыНаСкладахОстатки .Номенклатура
#22 by patria0muerte
.Наименование то зачем? facepalm.jpg
#23 by patria0muerte
Чего вообще с результатом запроса делать собираешься?
#24 by antihacker
Запрос вроде выполняется но далее вот так И тут ошибка {ВнешняяОбработка.Монолит21}: Значение не является значением объектного типа (код)         файл.ЗаписатьТекст(выборкаСклад.склад.код);
#25 by Peltzer
Потому что Null
#26 by Любопытная
Номенклатуру выбирай из справочника, а не из регистра
#27 by antihacker
Это где я выбираю из регистра ?
#28 by antihacker
Peltze, пробовал вот так
#29 by Любопытная
|    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, - Это вот здесь ты выбираешь из регистра. А надо из справочника
#30 by Peltzer
Да бесполезно лечить усопшего... И помогать тебе тоже бесполезно. ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ВЫБОР КОГДА ТоварыНаСкладахОстатки.Склад ЕСТЬ NULL ТоварыНаСкладахОстатки.КоличествоОстаток РегистрНакопления.ТоварыНаСкладах.Остатки(
#31 by Peltzer
Но и это не даст решения - надо ещё полное соединение по складам до левого соединения с остатками
#32 by Любопытная
А вложенный запрос зачем?
#33 by Любопытная
Чего надо-то изначально?
#34 by Любопытная
Ему нужны остатки общие по всем указанным складам, в том числе нулевые, судя по запросу в , зачем тащить склад и усложнять все?
#35 by Peltzer
Ну, если остатка по данному складу вообще не будет, то в результате запроса не будет записей с нулевыми остатками, потому что их просто нет в вирт.таблице
#36 by Peltzer
А, ну да, тогда достаточно сгруппировать запрос из
#37 by Peltzer
А в он обходит по складам и пытается вывести остатки.
#38 by patria0muerte
Его конечно хрен разберешь, но походу что то типа: ГДЕ     ВТНоменклатураСклад.Склад,                 ИЗ                     ВТНоменклатураСклад КАК ВТ)) КАК ТоварыНаСкладахОстатки
#39 by patria0muerte
+При условии, что необходима информация о том, на каком складе чего нет (Хотя нафиг это надо - непонятно)
#40 by antihacker
Любопытна, по поводу ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, это я потом буду сравнивать с тем же справочником вот здесь ? СпрНоменклатура.Наименование=Номенклатура
#41 by Любопытная
зачем?
#42 by antihacker
Ну как  ? Запрос посмотри. Я из справочника беру через     |        ЛЕВОЕ СОЕДИНЕНИЕ
#43 by Любопытная
ты ничего не берешь из справочника, ты только соединяешь с ним
#44 by antihacker
Соединить справочник с тем же справочником ?
#45 by Любопытная
выбрать номенклатуру из справочника!
#46 by antihacker
В чем прикол ? Выбрать  из справочника и и еще раз выбрать из справочника потом с ними что делать.
#47 by Oleg_ka
Вместо
#48 by antihacker
СпрНоменклатура уже Справочник.Номенклатура. От туда еще раз номенклатуру ?
#49 by katc
Попахивает феерическим кретинизмом.
#50 by SeraFim
читай
#51 by antihacker
Ну написал. Получил то что ожидал. {ВнешняяОбработка.Монолит21}: Ошибка при вызове метода контекста (Выполнить): {(3, 18)}: Поле не найдено "СпрНоменклатура.Номенклатура" СпрНоменклатура.<<?>>Номенклатура КАК Номенклатура,     выборкаСклад=запрос.Выполнить.Выбрать(обходрезультатазапроса.ПоГруппировкам,"Склад");
#52 by Любопытная
Вы че там, уже праздновать начали?
#53 by Любопытная
|    СпрНоменклатура.Ссылка КАК Номенклатура,
#54 by patria0muerte
Походу и не заканчивали...
#55 by antihacker
{ВнешняяОбработка.Монолит21}: Ошибка при вызове метода контекста (Выполнить): {(3, 2)}: Поле не входит в группу "СпрНоменклатура.Ссылка" <<?>>СпрНоменклатура.Ссылка КАК Номенклатура,     выборкаСклад=запрос.Выполнить.Выбрать(обходрезультатазапроса.ПоГруппировкам,"Склад"); по причине: {(3, 2)}: Поле не входит в группу "СпрНоменклатура.Ссылка" <<?>>СпрНоменклатура.Ссылка КАК Номенклатура,
#56 by Любопытная
о боги... Может пора включить голову, а не тупо копипастить с форума?
#57 by patria0muerte
Не тупи, возьми запрос из и обходи как тебе надо... Или позови кого нибудь из взрослых, коли сам читать ошибки не умеешь...
#58 by antihacker
Ну сделал так     |     |СГРУППИРОВАТЬ ПО     |     СпрНоменклатура.Ссылка Все равно здесь ошибка      Такая ошибка. Выше писал {ВнешняяОбработка.Монолит21}: Значение не является значением объектного типа (код)         файл.ЗаписатьТекст(выборкаСклад.склад.код);
#59 by patria0muerte
Сам угадаешь почему ошибка?
#60 by Любопытная
Мне кажется - он прикалывается.
#61 by patria0muerte
Тогда талант. Я бы так при желании не смог.
#62 by antihacker
А ХЗ. Не стал бы спрашивать если знал.
#63 by patria0muerte
А че взялся, если не знаешь?
#64 by antihacker
А ты родился сразу вундеркиндом ? Ни изучал и ни кто не помогал ?
#65 by Любопытная
Судя по вопросам, ты даже не пытаешься понять, а это самое плохое. Попроси кого-нить написать это за тебя и не мучайся
#66 by antihacker
Так вед он код видел до левого соединения.
#67 by antihacker
Что тут изменилось. Вот что не могу понять.
#68 by ktvladimir
ыыы). смысл человеку объяснять? он не хочет понимать он хочет чтоб за него сделали. бог с ним с группировками и циклом, но чел тупо не хочет даже понимать что он делает.
#69 by Любопытная
Еще раз: левое соединение у тебя со справочником Номенклатура, а ругается на поле Склад.Код. А склада нет, судя по всему.
#70 by Любопытная
консоль запросов возьми, и посмотри, что у тебя выбирается в запросе, какие поля получаются, какие данные. Тогда станет понятнее, как их обрабатывать дальше
#71 by antihacker
Я хочу остатки нулевые и не нулевые. Сказали через левое соединения с справочником номенклатуры. Написал. Код не видит. Вот спрашиваю почему ? Если подсказали значить подскажите до конца.
#72 by Любопытная
ПОТОМУ ЧТО КОД СКЛАДА, А НЕ НОМЕНКЛАТУРЫ!!!!!!!!!
#73 by SeraFim
только ты там забыл соединение прописать. Опять тупизма на 50 постов будет...
#74 by patria0muerte
О, кстати точно, не заметил...
#75 by antihacker
Любопытна, я там хочу видеть КОД склада. При чем тут номенклатура ? И где я не написал соединение ? Вот код. Повторяю
#76 by SeraFim
Ну нету у тебя склада! На пальцах объясняю: Есть справочник номенклатуры: Колбаса Печеньки Тортик Остатки: Колбаса Склад 1 - 10 Колбаса Склад 2 - 15 Тортик Склад 2 - 7 А печенек нету нигде! Левое соединение означает, что нужно выбрать ВСЕ записи из первой таблицы и только НЕКОТОРЫЕ (удовлетворяющие условию соединения) из второй. То есть у тебя получается: Колбаса             Колбаса Склад 1 - 10 Колбаса             Колбаса Склад 2 - 15 Печеньки            -------------------- Тортик              Тортик Склад 2 - 7
#77 by Бертыш
Талант
#78 by Peltzer
в я уже отвечал, почему ошибка, не пробил, нужно калибр побольше или бронепробитие повыше.
#79 by antihacker
Мало того что я не могу вытащить товар с нулевыми остатками а теперь еще и склад исчез ?
#80 by hhhh
ну так
#81 by antihacker
Мдяяяя по п*****ли по п*****ли  в итоге в все запросе увидели то чего хотят сами , а не то что хочу. Спасибо помогли )
#82 by GROOVY
, ну ты обращайся если что! С наступающим!
#83 by Peltzer
у тебя талант не видеть решения, или ты сам не знаешь чего хочешь, с новым годом
#84 by antihacker
Ну япросил добить запрос. Там не выодит нулевые остатки. В и тоге ваш запрос не выводит и склад тоже. Вот результат. тебя так же
#85 by Peltzer
Слушай, а ты случайно не программист? А то мне тут надо отчетик написать, не поможешь?
#86 by antihacker
Надеюсь там не нужны нулевые остатки
#87 by Peltzer
Да не, просто тыща строчек кода забесплатно
#88 by GROOVY
Заканчивай стебатся.
#89 by antihacker
Вроде я не просил за меня написать. Решение свой показал. Не на голом месте. Ну ребята не смогли значит не смогли. Зачем теперь отмазки какие то. Вопрос простой был.
#90 by Black Dragon
так консоль запросов то есть?
#91 by ktvladimir
Смешно.
#92 by antihacker
Всем привет ! Все таки добил эту суку. СпрСклады ПО ИСТИНА      выбСписСклады  И  СпрНоменклатура.Монолит=ИСТИНА   И   ТоварыНаСкладахОстатки.Период=&ДатаОст     |СГРУППИРОВАТЬ ПО
#93 by ktvladimir
из минусов не нужная группировка, запрос в цикле конструкция Номенклатура.Монолит = Истина (Если Монолит это булевый Тип то лучше было бы указать просто Номенклатура.Монолит)
#94 by ktvladimir
#95 by antihacker
Зачем так усложнять ? И если убрать группировку то {ВнешняяОбработка.Монолит21}: Ошибка при вызове метода контекста (Выполнить): {(2, 4)}: Поле не входит в группу "СпрНоменклатура.Ссылка" по причине: {(2, 4)}: Поле не входит в группу "СпрНоменклатура.Ссылка" <<?>>СпрНоменклатура.Ссылка КАК Номенклатура ,
#96 by ktvladimir
в твоем случае сервер будет дергаться н раз Н это количество складов. те ресурсов будет потрачен в н раз больше. если ты убираешь группировку то нужно убрать и конструкцию сумма. в данном случае остатки тебе и так выдадут в единичном экземпляре и группировка бессмысленна, те в твоем коде
#97 by antihacker
{ВнешняяОбработка.Монолит21}: Ошибка при вызове метода контекста (Выполнить): {(3, 4)}: Поле не входит в группу "ТоварыНаСкладахОстатки.КоличествоОстаток"
#98 by ktvladimir
сделай проще верни как было открой конструктором и удали строки с двух окошек справа на закладке Группировка "Групповое поле" и "Суммируемое поле". а так я вижу что ты что то не очистил, но что именно сказать не могу так как не вижу запроса. скопировать твой запрос тоже не могу так как у меня нет типовых баз)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С