![]() |
|
СКД соединить в запросе таблицу остатков и оборотов | ☑ | ||
---|---|---|---|---|
0
RetZet
15.07.10
✎
12:41
|
Суть в следующем. необходимо вывести остатки по регистру накопления до регистратора. При этом возможна ситуация, когда по номенклатуре остатка нет, а по регистратору есть. Например приход выполнен одним регистратором, а списано другим. В этом случае, если делать запрос к вирт. таблице "ОстаткиИОбороты" с периодичностью "Регистратор", то эти остатки выводятся, хотя в целом по номеклатуре остаток=0.
Что-то туплю и не могу понять, как соединить в запросе таблицу остатков и таблицу ОстатакиИОбороты, чтобы номенклатура, у которой остаток = 0 не выводилась. Или выводился только регистратор с остатком, равным остатку по номенклатуре. Сам запросец (конфа УПП): ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ТоварыПереданные.Организация КАК Организация, ТоварыПереданные.Контрагент КАК Контрагент, ТоварыПереданные.Номенклатура КАК Номенклатура, ТоварыПереданные.Регистратор КАК Регистратор, СУММА(ТоварыПереданные.КоличествоКонечныйОстаток) КАК Количество, СУММА(ТоварыПереданные.СуммаВзаиморасчетовКонечныйОстаток) КАК Сумма, ТоварыПереданные.Регистратор.Подразделение КАК Подразделение {ВЫБРАТЬ Организация.*, Контрагент.*, Номенклатура.*, Регистратор.*, Количество, Сумма, Подразделение.*} ИЗ РегистрНакопления.ТоварыПереданные.ОстаткиИОбороты(, &ДатаОтчета, Регистратор, , ) КАК ТоварыПереданные СГРУППИРОВАТЬ ПО ТоварыПереданные.Организация, ТоварыПереданные.Контрагент, ТоварыПереданные.Номенклатура, ТоварыПереданные.Регистратор, ТоварыПереданные.Регистратор.Подразделение |
|||
1
IronDemon
15.07.10
✎
12:48
|
ВЫБРАТЬ
ТоварыПереданныеОстаткиИОбороты.ДоговорКонтрагента, ТоварыПереданныеОстаткиИОбороты.Номенклатура, СУММА(ТоварыПереданныеОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток, СУММА(ТоварыПереданныеОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток, СУММА(ТоварыПереданныеОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход, СУММА(ТоварыПереданныеОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход, ТоварыПереданныеОстаткиИОбороты.Регистратор ИЗ РегистрНакопления.ТоварыПереданные.Остатки({(&КонецПериода)}, ) КАК ТоварыПереданныеОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыПереданные.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Авто, , ) КАК ТоварыПереданныеОстаткиИОбороты ПО ТоварыПереданныеОстатки.Номенклатура = ТоварыПереданныеОстаткиИОбороты.Номенклатура И ТоварыПереданныеОстатки.ДоговорКонтрагента = ТоварыПереданныеОстаткиИОбороты.ДоговорКонтрагента СГРУППИРОВАТЬ ПО ТоварыПереданныеОстаткиИОбороты.ДоговорКонтрагента, ТоварыПереданныеОстаткиИОбороты.Номенклатура, ТоварыПереданныеОстаткиИОбороты.Регистратор ИМЕЮЩИЕ СУММА(ТоварыПереданныеОстатки.КоличествоОстаток) > 0 |
|||
2
RetZet
15.07.10
✎
13:18
|
(1)
Все регистраторы выводит. Т.е. получается так: Номенкл/Регистратор КонОст НачОст Приход Расход МояНоменкл 1 0 2 1 Регистратор1 1 0 1 0 Регистратор2 1 0 1 0 Регистратор3 0 1 0 1 А мне надо: МояНоменкл 1 0 2 1 Регистратор2 1 0 1 0 Т.е. чтобы выводился последний не закрытый регистратор. (все это в запросе надо сделать, поскольку это СКД) Вот не могу добиться. |
|||
3
RetZet
15.07.10
✎
16:27
|
Что-то тишина...
|
|||
4
RetZet
16.07.10
✎
09:35
|
Делается все на СКД. Регистр ТоварыПереданные в УПП. Нужно вывести остатки в разрезе группировок влоть до регистратора. Регистр двигают разные регистраторы. РТУ пишет в приход (товар отдаем на комиссию). РеализацияОтгруженныхТоваров пишет в расход по регистру. В результате в регистре по товару например нуль по остаткам, а по регистраторам есть остаток. Если запрос строить на остнове вирт. таблицы ТоварыПереданныеОстаткиИОбороты, то вываливает все остатки порегистраторам.
А мне нужны остатки по товару в разрезе незакрытых остатков по регистратору. Например был приход двух РТУ по 5 шт., итого 10 шт. РОТ списало 5 шт.(они делаются на основании РТУ). Остаток по товару 5 шт. А реально в регистре по регистраторам 2*5 и 1*-5. Поэтому приходится остатки по номенклатуре брать из вирт.таблицы ТоварыПереданныеОстатки, а регистратор надо найти в вирт.таблице ТоварыПереданныеОстаткиИОбороты с периодичностью "Регистратор". Теперь полученные таблицы надо соединить таким образом, чтобы в вышеприведенном примере, вывелся остаток =5 по номенклатуре, и последний не закрытый регистратор. |
|||
5
RetZet
16.07.10
✎
12:00
|
В общем, решение такое:
Заюзать регистр ПартииТоваровПереданныеБухгалтерскийУчет, и вместо регистратора использовать ДокументПередачи, т.е. партию. И все замечательно получается на самом простеньком запросе. Всем спасибо, тема закрыта. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |