Имя: Пароль:
1C
1С v8
Помогите с запросом
0 lordmb
 
11.03.12
16:33
Подскажите, что я делаю не так:
требуется таблица( регистраторы с разными количественными движениями в двух регистрах с выводом остатков на момент и конец регистратора)
Регистратор| Номенклатура| Разница|НачОст|Оборот|КонОст

у меня получается вот это:
Регистр1 09.02.2012 16:20:12|Товар1|-2|5 |-1 | 4  
Регистр2 09.02.2012 19:03:49|Товар1|-1|  |   |  

не могу понять, в чем глюки:

ВЫБРАТЬ
   ТабСв.Регистратор КАК Регистратор,
   ТабСв.Номенклатура КАК Номенклатура,
   ТабСв.Количество КАК РазницаТ_П
ПОМЕСТИТЬ Несоответствия
ИЗ
   (ВЫБРАТЬ
       ТабОб.Регистратор КАК Регистратор,
       ТабОб.Номенклатура КАК Номенклатура,
       СУММА(ТабОб.Количество) КАК Количество
   ИЗ
       (ВЫБРАТЬ
           ТоварыОрганизацийОбороты.Регистратор КАК Регистратор,
           ТоварыОрганизацийОбороты.Номенклатура КАК Номенклатура,
           ЕСТЬNULL(ТоварыОрганизацийОбороты.КоличествоОборот, 0) КАК Количество
       ИЗ
           РегистрНакопления.ТоварыОрганизаций.Обороты(&Дата1, &Дата2, Регистратор, ) КАК ТоварыОрганизацийОбороты
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           ПартииТоваровНаСкладахСОрганизациейОбороты.Регистратор,
           ПартииТоваровНаСкладахСОрганизациейОбороты.Номенклатура,
           -ЕСТЬNULL(ПартииТоваровНаСкладахСОрганизациейОбороты.КоличествоОборот, 0)
       ИЗ
           РегистрНакопления.ПартииТоваровНаСкладахСОрганизацией.Обороты(&Дата1, &Дата2, Регистратор, ) КАК ПартииТоваровНаСкладахСОрганизациейОбороты) КАК ТабОб
   
   СГРУППИРОВАТЬ ПО
       ТабОб.Номенклатура,
       ТабОб.Регистратор) КАК ТабСв
ГДЕ
   ТабСв.Количество <> 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Несоответствия.Регистратор КАК Регистратор,
   Несоответствия.Номенклатура КАК Номенклатура,
   Несоответствия.РазницаТ_П,
   ОстИОбороты.Организация,
   ОстИОбороты.КоличествоНачальныйОстаток,
   ОстИОбороты.КоличествоОборот,
   ОстИОбороты.КоличествоКонечныйОстаток
ИЗ
   Несоответствия КАК Несоответствия
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.Регистратор КАК Регистратор,
           ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.Номенклатура КАК Номенклатура,
           СУММА(ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
           СУММА(ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.КоличествоОборот) КАК КоличествоОборот,
           СУММА(ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
           ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.Организация КАК Организация
       ИЗ
           РегистрНакопления.ПартииТоваровНаСкладахСОрганизацией.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , ) КАК ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты
       
       СГРУППИРОВАТЬ ПО
           ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.Регистратор,
           ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.Номенклатура,
           ПартииТоваровНаСкладахСОрганизациейОстаткиИОбороты.Организация) КАК ОстИОбороты
       ПО Несоответствия.Номенклатура = ОстИОбороты.Номенклатура
           И Несоответствия.Регистратор.Организация = ОстИОбороты.Организация
           И Несоответствия.Регистратор = ОстИОбороты.Регистратор
1 asady
 
11.03.12
16:41
(0) глюк в ТС

как ты понимаешь остатки по регистратору?
2 lordmb
 
11.03.12
16:41
(0) дополнение:

у меня получается вот это:
Регистр1 09.02.2012 16:20:12|Товар1|-2|5 |-1 | 4  
Регистр2 09.02.2012 19:03:49|Товар1|-1| Null| Null| Null|

а должно:
Регистр2 09.02.2012 19:03:49|Товар1|-1| 4 |0  |4
3 lordmb
 
11.03.12
16:47
(1) а что такое ТС?

не понял вопроса про "понимание остатков", мне и на ПериодСекунда сойдет
4 Ёпрст
 
11.03.12
16:52
(3) ТС- это ты, а что такое начальный остаток по регистратору ?Или конечный ?
Как ты себе это представляешь ?
5 Ёпрст
 
11.03.12
16:52
и вот это накуа ?

>>>И Несоответствия.Регистратор.Организация = ОстИОбороты.Организация
6 lordmb
 
11.03.12
17:03
(3) расшифруй аббревиатуру ТС для несведущего, плиз.

меня ставят в тупик такие вопросы :) что хотите знать?
начальный ост - это Ост на Регистратор.МоментВремени()
конецный - Новый Граница(МоментВремени, ВидГраницы.Включая)

>>Как ты себе это представляешь ?
представил, что ВиртуальнаяТаблица с периодичностью "Регистратор" выдает Кон и Нач остатки
7 lordmb
 
11.03.12
17:05
(5) позже поправлю
8 КМ155
 
11.03.12
17:16
(6)[представил, что ВиртуальнаяТаблица с периодичностью "Регистратор" выдает Кон и Нач остатки]
мсье знает толк в извращениях
9 ptrtss
 
11.03.12
17:19
>> у меня получается вот это:
>> Регистр1 09.02.2012 16:20:12|Товар1|-2|5 |-1 | 4  
>> Регистр2 09.02.2012 19:03:49|Товар1|-1| Null| Null| Null|
>>
>> а должно:
>> Регистр2 09.02.2012 19:03:49|Товар1|-1| 4 |0  |4

Ниачем. Может быть так и должно выводиться. Какие документы и какие у них движения, что должно быть как ты говоришь?
10 lordmb
 
11.03.12
17:38
(8) подскажи, как делать правильно?
11 ptrtss
 
11.03.12
17:42
Какие в базе есть документы и какие у них движения, что должно быть как ты говоришь?
12 lordmb
 
11.03.12
18:06
(11) извиняюсь за нечеткую формулировку проблемы.

Попробую покороче: мне надо вытащить из документа обороты из Регистр1 и остатки на момент и конец документа из Регистр2. Причем, документ двигает Регистр1 всегда, а Регистр2 либо частично, либо не двигает совсем.

нужна таблица:

Док|Товар|ОборотИзРег1|Ост на момент документа из Рег2|Ост на конец документа из Рег2
13 КМ155
 
11.03.12
18:09
(12)[и остатки на момент и конец документа из Регистр2]
для особо не понятливых,
в 1С нет виртуальных остатков по регистратору
14 lordmb
 
11.03.12
18:19
(13) таблица ОстатктиИОбороты с периодичностью регистратор что тогда выводит?
15 lordmb
 
11.03.12
18:50
16 Мимохожий Однако
 
11.03.12
19:06
(12)Остатки на момент времени всегда получишь, а оборотами фактически являются движения регистров по регистратору.
17 ptrtss
 
11.03.12
20:17
(12)
В запросе я вижу только:
Док
Товар
Разница между оборотами по регистрам
Остатки по регистру №2

И не вижу:
Оборот по регистру №1

И все еще не понял почему не правильно это:
Регистр1 09.02.2012 16:20:12|Товар1|-2|5 |-1 | 4  
Регистр2 09.02.2012 19:03:49|Товар1|-1| Null| Null| Null|

..., а правильно это:
Регистр2 09.02.2012 19:03:49|Товар1|-1| 4 |0  |4

Потому что я понятия не имею какие в базе движения, и не могу следовательно понять почему первый вариант (правильный) соответствует им больше чем второй (не правильный)
18 lordmb
 
12.03.12
11:41
(17)
Регистратор1 09.02.2012 16:20:12|Товар1|-2|5 |-1 | 4  
Регистратор2 09.02.2012 19:03:49|Товар1|-1| Null| Null| Null|

вопрос, как мне вытащить Остатки для второй строки этой таблицы(у регистратора2 нет движений во втором регистре). мне нужно взять остаток с первой строки и сделать такую таблицу:
Регистратор1 09.02.2012 16:20:12|Товар1|-2| 5|-1 | 4  
Регистратор2 09.02.2012 19:03:49|Товар1|-1| 4| 0 | 4

подскажите как?