Имя: Пароль:
1C
1С v8
Как в запросе получить остатки по складу и продажи?
0 Zombi
 
06.03.12
08:45
Пытаюсь получить остатки по складу и продажи по этому же складу, пока написал:

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

Сейчас запрос возвращает правильный остаток, не могу привязать продажи по тому же складу что и остаток, измерения "Склад" в регистре "Продажи" нет, как можно извернуться?
1 Wobland
 
06.03.12
08:46
>продажи по этому же складу
а откуда продажа знает, с какого она склада?
2 mehfk
 
06.03.12
08:46
Протелепатирую. УТ10.3 - Вытягивай склад из "ДокументДвижения"
3 МойКодУныл
 
06.03.12
08:47
Можно из документа-регистратора получать склад, но это как-раз "извернуться"
4 nicxxx
 
06.03.12
08:48
(0) добавить реквизит или измерение Склад в регистр Продажи. минус в том, что придется как-то его заполнить, если нужна история за предыдущие периоды
5 mkanaev
 
06.03.12
08:49
извернуться можно, взять обороты в разрезе регистратора и выдернуть склад из документа сделавшего движения. Но склад может быть в табличной части... тут немного посложнее но сделать можно, если при проведении стоки ТЗ схлапываются тогда нужно взять строки ТЗ по регистратору и схлопнуть, соединять по номенклатура + количество... если не схлапываются тогда ещё проще.... но если честно это изврат... хотя диваться некуда
6 Zombi
 
06.03.12
08:51
Да, это УТ 10.3, Склад может указываться в табличной части
7 mkanaev
 
06.03.12
08:51
кстате если продажная цена не нужна то можо регистр продаж не трогать а взять обороты по регистру товарыНаСкладах
8 mehfk
 
06.03.12
08:55
(7) По этому регистру не только продажи отражаются.
9 Zombi
 
06.03.12
09:30
(5) А вот то что вы написали, не затруднит вас хотя бы примерно в виде запроса написать?
10 Zombi
 
06.03.12
09:31
(7) Если бы можно было из ТоварыНаСкладах только продажи взять, я бы так и сделал.
11 КМ155
 
06.03.12
09:37
(10)[Если бы можно было из ТоварыНаСкладах только продажи взять,]
так возьми
это же тривиальнейший расход по регистраторам двух типов:
-РТиУ
-ОоРП
12 Zombi
 
06.03.12
09:49
(11) Остатки мне нужны независимо от того, были продажи или нет, то есть делать левое соединение таблиц остатки и обороты, а если я ставлю условие на тип регистратора, то соединение получается только внутреннее. Или можно как то сделать?
13 mkanaev
 
06.03.12
09:50
(9)попробую написать поэтапный запрос:

*СкладВШапке - непомню какой признак склада в шапке в УТ

выбрать док.ссылка как Регистратор,
док.Номенклатура как номенклатура,
выбор когда *СкладВШапке тогда
док.ссылка.склад,
иначе
док.склад
конец как Склад,
Сумма(док.Количество) как Количество,
Сумма(док.сумма) как Сумма,
Поместить Временная
из документ.РеализацияТоваровУслуг.Товары как док
Сгруппировать по Номенклатура, Склад;

Выбрать
Остатки.Номенклатура,
Остатки.Количество,
Остатки.Сумма,
Остатки.Склад,
Продажи.СуммаПродажи,
продажи....
из РегистрНакопления.ТоварыНаСкладах.Остатки() как Остатки
Левое соединение Временная
Левое соединение РегистрНакопления.продажи.Обороты() как Продажи
  по временная.Регистратор = продажи.Регистратор и Временная.Номенклатура = продажи.Номенклатура
  и временная.Количество = продажи.количество
По Остатки.Номенклатура = временная.Номенклатура и Остатки.склад = Временная.Склад

ps: есть баг в данном запросе.... если в одном доке с разных складов продана одна номенклатура с одинаковым количеством по произоёдёт задвоение.. ну этот баг легко устранить
14 КМ155
 
06.03.12
09:50
(12) можно
15 mkanaev
 
06.03.12
09:52
Кстате а что ты хочешь получить??? если тебе нужна сумма продажи тогда зачем регистр продаж, можно выдернуть из регистратора, так проще будет
16 vmv
 
06.03.12
09:54
по-моему задача в (0) обсосана во всех ЖКК начиная с аппологета Радченко и заканчивая адептами на Селезнева.

почему люди не учаться читать и считают мисту кладезем мудрости непонятно)
17 Zombi
 
06.03.12
10:00
(13) Неслабое извращение, конечно. Но можно будет подумать и над этим.
(14) Как?
(15) Мне нужно получить Номенклатуру, Склад, Остаток, Продажи со склада.
(16) Потому что в данный момент нет у меня под рукой ЖКК и Радченко с Селезневым, а миста под рукой. Если тема так уж обсосана, почему мне до сих пор не тыкунули в единственно верное решение?
18 Zombi
 
06.03.12
10:56
ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачДата, &КонДата, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
   ВЫБОР
           КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
                   ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
               ТОГДА ИСТИНА
       КОНЕЦ

Этот запрос выбирает только те позиции, по которым продажи были, как выбрать и те, по которым есть остатки, но не было продаж?
19 Defender77
 
06.03.12
11:02
(0) ЛЕВОЕ соединение замени на ВНУТРЕННЕЕ - с левым получатся только продажи по которым есть остатки. Если товар закончился то его не будет в продажах
20 Zombi
 
06.03.12
11:14
(19) Тогда уж ПОЛНОЕ надо делать, так как мне нужны и 0 остатки и 0 продажи. Но там проблема другая, не могу продажи по определенному складу вывести.
21 КМ155
 
06.03.12
11:48
(20)[не могу продажи по определенному складу вывести]
ещё раз,
что мешает связать продажи с оборотами склада по регистратору
22 eklmn
 
гуру
06.03.12
11:55
Парт.учет по складам есть?
23 Zombi
 
06.03.12
11:59
(21) Мешает то, что склад может указываться в табличной части документов реализации. К табличной части не знаю как привязаться в запросе.
24 Zombi
 
06.03.12
11:59
(22) Себестоимость по среднему считаем, но в УТ вроде партионный учет по умолчанию.
25 Zombi
 
06.03.12
12:10
Не думал, что так сложно в ут выбрать остатки и продажи...А от того что в РН "Продажи" нет измерения "Склад", я просто в аxуе...
26 КМ155
 
06.03.12
12:33
(25) найми специалиста,
работы на 10 минут
27 ProProg
 
06.03.12
12:37
Вот тут подробно разжевано и вариант решения
http://subsystems.ru/forum/?PAGE_NAME=read&FID=10&TID=32
28 ProProg
 
06.03.12
12:37
там есть подразделения. вот их и нужно заюзывать.
29 Zombi
 
06.03.12
12:46
(26) А подсказать никак?
(27)(28) Подразделения уже используются по прямому назначению.
30 ProProg
 
06.03.12
12:49
есть еще вариант...
продажи иможно получить из регистра партии товаров на складах, сделав запрос по оборотом с условием отбора КодОперации = продажи.
Тогдаполучишь обороты по складам. но там бюудет только кол-во и себестоимость.
31 Zombi
 
06.03.12
12:51
(30) А мне только количество и нужно, сейчас попробую.
32 ProProg
 
06.03.12
12:51
Условие по кодам операций только правилньо поставь
33 ProProg
 
06.03.12
12:52
Кстати есть готовый отчет если тебе по задаче. па партиям
34 ProProg
 
06.03.12
12:53
Вот отчет http://subsystems.ru/catalog/30/152/
Он строится полностью по партиям. Там и остатки и все движения по кодам операций.
Т.е. по сути по складам можно увидеть остатки и продажи. Т.к. все движения вынесены по колонкам.
Можно поставить галки на остаток и продажи и получишь по складам свою инфо.
Но опять же (как жеж без этого) в партиях должен быть порядок.
35 ProProg
 
06.03.12
12:54
Если денег нет, так и быть пиши в личку (лучше скайп) вышлю бесплатно.
36 КМ155
 
06.03.12
12:54
(29) пипец:
ВЫБРАТЬ
   ТоварыНаСкладахОбороты.Номенклатура,
   ТоварыНаСкладахОбороты.Склад,
   ТоварыНаСкладахОбороты.КоличествоРасход ПроданоСоСклада
ИЗ
   РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК ПродажиОбороты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(, , Регистратор, ) КАК ТоварыНаСкладахОбороты
       ПО ПродажиОбороты.Регистратор = ТоварыНаСкладахОбороты.Регистратор
           И ПродажиОбороты.Номенклатура = ТоварыНаСкладахОбороты.Номенклатура
37 КМ155
 
06.03.12
12:55
(34) а на куя ТС партии, когда ему нужно количество ?
38 ProProg
 
06.03.12
12:56
(36) строить по регистраторам отчеты поубивать надо. А что если у меня сто тысяч номенклатуры)) и 2 тысячи доков в день. Час твой отчет ждать?
39 ProProg
 
06.03.12
12:58
(37) так в партиях вся информация есть. и по остаткам и по всем движениям. в том числе продажам по выделенному коду операции. Стыдно этого не знать товарищ. КОды операций еще 10 лет назад в семерочных конфах были и по ним замечательно из партийможно было получать какие угодно отчеты.
40 ProProg
 
06.03.12
12:58
Посмтроив отчет по партиям можно получить задачу ТС из одного регистра. и без всяких регистраторов.
41 КМ155
 
06.03.12
13:04
(39)  Мань, ты окуел ?
код операции у Рг партии товаров на складах не является измерением, это реквизит
и ни какие отборы в виртуальных таблицах по нему не возможны
42 ProProg
 
06.03.12
13:06
(41) ну да ну да. а как я отчет по твоему построил. да не виртуальные. но и фиг с ними. это все равно в сто раз быстрее чем по регистраторам. Это РАЗ. А два (на  чем вся твоя теория сразу летит коту под хвост) если используются склады в табличных частях документов то вся ваша стратегия гроша не стоит.
43 КМ155
 
06.03.12
13:09
(42)  [да не виртуальные. но и фиг с ними. это все равно в сто раз быстрее чем по регистраторам]
лажа
[если используются склады в табличных частях документов то вся ваша стратегия гроша не стоит]
и это лажа,
в моем запросе нет привязки к документу

P.S. Маня действительно окуел
44 ProProg
 
06.03.12
13:11
(43) невоспитанный НЕУЧ. иди гуляй со своим запросом. В твоем отчете в расхрод попадут перемещения, списания, комплектации и прочие расходы и все это будет ПРОДАЖИ? Вот из за таких дятлов нормальным спецам потом работы много. И на том спасибо. повеселил.
45 КМ155
 
06.03.12
13:15
(44) Маня окуел окончательно,
у него в Рг Продажи попадают перемещения, списания, комплектации и прочие расходы
46 ProProg
 
06.03.12
13:15
Хотя я ошибся (внутренее выберет доки только продаж) однако чем твоя теория отличается от "да не виртуальные. но и фиг с ними. это все равно в сто раз быстрее чем по регистраторам", который ты назвал лажей. Твой запрос будет в сто раз медленее.
47 КМ155
 
06.03.12
13:16
(46) не только продажи, но и возвраты
48 ProProg
 
06.03.12
13:17
(45) завидуешь что я дал нормальное решение использовать партии ?))) ну завидуй дальше.
49 КМ155
 
06.03.12
13:19
(48) не рабочее у тебя решение, поскольку:
- в 90% случаев по Рг партий в УТ не ведется учет по складам
- работает медленнее в десятки раз
50 Ирис_яркая
 
06.03.12
16:37
ВЫБРАТЬ
   спрНоменклатура.Ссылка КАК Ссылка,
   ВложенныйЗапрос.ДокументПродажи,
   ВложенныйЗапрос.КоличествоОборот,
   ВложенныйЗапрос1.КоличествоОстаток
ИЗ
   Справочник.Номенклатура КАК спрНоменклатура
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ПродажиОбороты.Номенклатура КАК Номенклатура,
           ПродажиОбороты.ДокументПродажи КАК ДокументПродажи,
           ПродажиОбороты.КоличествоОборот КАК КоличествоОборот
       ИЗ
           РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты) КАК ВложенныйЗапрос
       ПО спрНоменклатура.Ссылка = ВложенныйЗапрос.Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
           ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
       ИЗ
           РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки) КАК ВложенныйЗапрос1
       ПО спрНоменклатура.Ссылка = ВложенныйЗапрос1.Номенклатура


я так написала - но без склада
51 Zombi
 
06.03.12
21:43
(50) Загвоздка у меня была именно в складе, но я уже все сделал, спасибо ProProg
А для выборки без склада вы по моему лишнего извратились, хотя если нужен список абсолютно всей номенклатуры...
52 байт
 
06.03.12
21:49
(0) надо брать остаткиИОбороты
53 Новиков
 
06.03.12
22:07
а маня линейкой мерил уже свой построитель запросов? Скок там намерилось то хоть?
54 ProProg
 
06.03.12
22:20
идкльно использовать подразделения.