Задвоение остатков по товарам, у которых не было движения за период - как бороться?

1. DWZ2 13.09.20 02:59 Сейчас в теме
Есть простенькая конфигурация (см. вложение)

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


при значениях параметров:
Дата1=09.01.2014 0:00:00
Дата2=15.01.2014 0:00:00
Номенклатура=Колбаса вареная

Если задать метод дополнения="ДвиженияИГраницыПериода", то имеем 2 записи с остатками вместо одной (см. рис.)

Если же метод дополнения="Движения", то вообще никаких остатков нет.

Как получить нормальные остатки?
Прикрепленные файлы:
2014.dt
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
5. FatPanzer_Job 5 13.09.20 14:00 Сейчас в теме
(1) Кстати, а зачем у вас в параметрах виртуальной таблицы периодичность отбора установлена по Регистратору?
7. DWZ2 14.09.20 01:06 Сейчас в теме
(5)

Требовалась детализация по документам. Но если поставить по дням или неделям - будет то же самое.
Прикрепленные файлы:
10. FatPanzer_Job 5 14.09.20 09:14 Сейчас в теме
(7) Дело не в том, "что будет, если поставить". Дело в том, что параметры виртуальных таблиц надо ставить именно под конечный результат. Если вам нужны движения по периодам - ставьте периодичность по периодам. Если нужна по регистраторам - ставьте по регистраторам. Но если вы не используете в запросе данные регистратора (элементарной ссылки даже не выводите), то такую периодичность - это безграмотность.
2. farengeit00 13.09.20 09:49 Сейчас в теме
Показывает результат на начало периода и наконец, поэтому 2 записи вместо одной.
3. DWZ2 13.09.20 13:07 Сейчас в теме
(2)
Да это я понял. Вопрос в том, как с этим бороться? Не хотелось бы ковырять типовые конфигурации для ответа.
4. FatPanzer_Job 5 13.09.20 13:52 Сейчас в теме
(3) Никак. Зачем бороться с правильными данными?
6. FatPanzer_Job 5 13.09.20 14:03 Сейчас в теме
(3) Поясню. У вас стоит метод дополнения "Движения и границы". Границы у вас две - начало и конец. Поэтому выдается две записи на границу начала периода и на границу окончания периода. Движений нет. Все верно работает.
В варианте, когда вы ставите метод дополнения "Движения" - он делает все то же самое, но не выводит две записи для границ начала и окончания периода.

Не надо бороться с тем, что работает именно так, как задумано, и именно так, как вы настроили.
8. DWZ2 14.09.20 01:14 Сейчас в теме
(6)

Мне нужно, чтобы была одна запись, как в нормальной оборотке
9. FatPanzer_Job 5 14.09.20 09:12 Сейчас в теме
(8) В нормальной оборотке всегда есть две строки - остатки на начало и остатки на конец. А между ними - движения, если они есть.
Это во-первых. Во-вторых, классическая оборотка формируется не только запросом, но и методами его постобработки.
Грубо говоря, вам дали результат, а вы вольны из него дальше готовить хоть оборотку, хоть ведомость о взаиморасчетах.
11. DWZ2 14.09.20 11:40 Сейчас в теме
(9)
классическая оборотка формируется не только запросом, но и методами его постобработки


Об этом и вопрос. Есть ли на этот счёт какая-то официальная рекомендация как, например, для преодоления глюков с иерархией в СКД?
12. FatPanzer_Job 5 14.09.20 11:49 Сейчас в теме
(11) Не понимаю вопроса.
СКД - это механизм разработки. Да, по нему есть некоторые рекомендации.
Оборотка - это прикладная форма отчета, каждый волен разрабатывать по-своему или не разрабатывать вовсе.Грубо говоря - это вообще частный случай разработки. Какие официальные рекомендации вы хотите?

PS. По использованию катушки спиннинга существуют рекомендации. По способам ловли, использованию мормышек и приготовлению рыбы - производитель катушки рекомендаций не дает. Как-то так.
13. starjevschik 14.09.20 12:07 Сейчас в теме
Так надо сначала поставить задачу. Что мы хотим получить в итоге. Потом запрос писать.
А если идти от запроса, то можно месяц такого рода отчет делать и не сделать...
14. DWZ2 15.09.20 02:01 Сейчас в теме
(13)
Нужна таблица в 5 колонок:

Номенклатура - Начальный остаток - Приход - Расход - Конечный остаток

Должен быть фильтр по интервалу дат и итоги:

1) ОБЩИЕ
2) Номенклатура
3) Документ

Если в заданном периоде по данной номенклатуре движений не было, то должен быть итог по этой номенклатуре с совпадающими начальным и конечным остатками. Если же движения есть, то ниже итогов по номенклатуре идёт детализация по регистратору.

У меня же получается так, если движений нет. Ставлю метод дополнения = ДвиженияИГраницыПериода -
имею 2 лишних записи (см. рис. 1). Ставлю метод дополнения = Движения - пропадает ВСЁ, даже итоги
(см. рис. 2).

Требуется как-то выкрутиться из данной ситуации.
Прикрепленные файлы:
15. Sergex 54 15.09.20 05:40 Сейчас в теме
(14) Регистры накопления не хранят остатков если нет оборотов.
Когда вы принудительно дополняете границами периода вы получаете два комплекта данных по остаткам на обе границы которыми вы дополняете.

Получается что если в задаваемом вами периоде запроса нет оборотов то вы либо не получаете ни одной строки с остатками, либо если дополняете границами периода то получаете две строки. Но так оно и работает. А как выкрутится - нанять программиста за деньги, он знает как это решить.
16. starjevschik 15.09.20 07:58 Сейчас в теме
(14) присоединить к оборотам еще две таблицы, с начальными и конечными остатками
Оставьте свое сообщение
Вопросы с вознаграждением