Имя: Пароль:
1C
1С v8
Как получить правильные остатки по регистру накопления
0 yegorka
 
10.10.13
10:19
Здравствуйте!

Вероятно уже баян, про остатки регистра накопления, но все же хочется узнать кто и как сталкивался с проблемой правильности остатков и кто как ее решал.
Делаю отчет в СКД, который должен отображать остатки на начало, приход, расход, остатки на конец. Что бы проще.
Вот такой запрос:
=================================================================================================================================


ВЫБРАТЬ
   пр_ОстаткиМатериаловОстаткиИОбороты.ВидТМЦ КАК ВидТМЦ,
   пр_ОстаткиМатериаловОстаткиИОбороты.Склад КАК Склад,
   пр_ОстаткиМатериаловОстаткиИОбороты.Номенклатура КАК Номенклатура,
   пр_ОстаткиМатериаловОстаткиИОбороты.Регистратор КАК Регистратор,
   пр_ОстаткиМатериаловОстаткиИОбороты.ПериодСекунда КАК ПериодСекунда,
   пр_ОстаткиМатериаловОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   пр_ОстаткиМатериаловОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
   пр_ОстаткиМатериаловОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
   пр_ОстаткиМатериаловОстаткиИОбороты.СуммаПриход КАК СуммаПриход,
   пр_ОстаткиМатериаловОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
   пр_ОстаткиМатериаловОстаткиИОбороты.СуммаРасход КАК СуммаРасход,
   пр_ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
   пр_ОстаткиМатериаловОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
ИЗ
   РегистрНакопления.пр_ОстаткиМатериалов.ОстаткиИОбороты(, , Авто, , ) КАК пр_ОстаткиМатериаловОстаткиИОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.ВидТМЦ,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.Склад,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.Номенклатура,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.Регистратор,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.ПериодСекунда,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.КоличествоНачальныйОстаток,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.СуммаНачальныйОстаток,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.КоличествоПриход,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.СуммаПриход,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.КоличествоРасход,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.СуммаРасход,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.КоличествоКонечныйОстаток,
   пр_ОстаткиГотовойПродукцииОстаткиИОбороты.СуммаКонечныйОстаток
ИЗ
   РегистрНакопления.пр_ОстаткиГотовойПродукции.ОстаткиИОбороты(, , Авто, , ) КАК пр_ОстаткиГотовойПродукцииОстаткиИОбороты

=================================================================================================================================
дает не верное значение остатков при группировке по регистратору. Но если запрос разъединить на 2 запроса, то каждый из запросов дает верный результат. Почему такое происходит? И еще, если этот объединенный запрос сделать вложенным, то результат по остаткам опять другой.
1 elCust
 
10.10.13
10:22
Остатки с регистратором? Это круто!
2 yegorka
 
10.10.13
10:26
(1) а почему нет-то???
Так аналитики хотят. А в данном примере регистратор это тот же период, в принципе.
3 Defender aka LINN
 
10.10.13
10:34
(0) А ты СКД сказал-то, что это остаток?
Ну и какбе:
Документ1 делает движения по одному регистру, документ2 - по другому. Какой остаток показать в отчете по каждому из них?
4 yegorka
 
10.10.13
10:44
(3) так да отчет-то на СКД.
Попытаюсь объяснить, что я сейчас имею.
Итоги по отчету по группировкам Склад-Номенклатура не равны итогам по отчету Склад-Номенклатура-Регистратор. Не равны в части остатков, обороты совпадают.

Почему они не равны?
5 Defender aka LINN
 
10.10.13
10:52
(4) Больше одной строки за раз читать умеешь?
6 yegorka
 
10.10.13
10:56
(5) так и вы научитесь.
Если запросы разъединить на 2 то каждый из них дает одинаковые итоги не зависимо от группировки.
Объединение дает разные итоговые результаты при разных группировках.

и еще, в данном контексте регистратор - не документ, а фактически период. Понимаешь???
7 yegorka
 
10.10.13
11:01
(3) а всякий: СКД -- это не остаток, это система компоновки данных
8 floody
 
10.10.13
11:11
(7) СКД -- это не остаток, это система компоновки данных

вот спасибо, просветили
9 yegorka
 
10.10.13
11:25
(8)
Пожалуйста, будьте внимательней впредь, ответ был на (3)
10 hhhh
 
10.10.13
11:27
(9) но ведь и полному придурку понятно, что если простой запрос, то СКД сама понимает, где остаток. А если запрос посложнее, то нужно ему указывать, какие поля являются остатками. Вроде (3) об этом вам и намекает.
11 samozvanec
 
10.10.13
11:28
(0) можно предположить, что один регистратор делает движения по обоим регистрам, тогда остатки вполне себе сложатся
12 yegorka
 
10.10.13
11:35
(10) да она сама все правильно поняла, вероятно потому, что это запрос не из ряда "по-сложнее" :-)
13 yegorka
 
10.10.13
11:40
(11) можно предположить. Но я же и написал, что если запрос разъединить, получаем правильные итоги по любой группировке, но в сумме они не равны итогам объединенного запроса. Вот как-то так.
14 Defender aka LINN
 
10.10.13
11:45
(6) Я-то умею. Прочитай продолжение.
ЧТО должен показать отчет, когда по одному документу есть остаток по только по одному регистру, а по другому документу - только по второму? Не надо только рассказывать, что когда Венера в Сатурне под лай чОрной кошки, то отчет что-то показывает. Расскажи, что должен показать отчет и как.
15 yegorka
 
10.10.13
11:54
(14)Вывести данные по обоим документам, как это происходит при объединении таблиц.
16 Defender aka LINN
 
10.10.13
12:08
(15) Он выводит. Вопрос исчерпан?
17 yegorka
 
10.10.13
12:13
Так не исчерпан. Выводит не правильно, в части остатков. А вопрос звучал "Почему?"
18 fisher
 
10.10.13
13:05
Defender пытался подвести тебя к ответу.
При твоем запросе детальные записи изначально не будут содержать правильных сводных остатков по каждому регистратору.
Поэтому СКД бессильно.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn