Имя: Пароль:
1C
1С v8
Отчет по остаткам и оборотам с изъятием движений по определенным документам
0 vdeemer
 
26.07.19
15:31
Доброго времени суток! В связи с кривизной автоматизации бизнес-процесса оформляются документы, которые порождают лишние (паразитные) движения. Конкретно в отчет "Ведомость товаров на складе" попадают обороты из множества перемещений, по сути, по одному складу. Ничем, кроме криворукости череды "специалистов", объяснить нельзя. Беда в том, что в настоящий момент обойтись без этих документов нельзя (хотя в будущем ситуация планирует исправиться), и в отчете завышены приход и расход.
Так вот, хочется увидеть ведомость без некоторых документов (каких именно, известно). Я пытался сделать выборку так:


ВЫБРАТЬ
    ВыпускНабора.ПеремещениеВКомплектацию,
    ВыпускНабора.ПеремещениеИзКомплектации
ПОМЕСТИТЬ ВТ_ПеремещенияВыпускаНаборов
ИЗ
    &тзВыпускНабора КАК ВыпускНабора
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Период,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор,
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.Качество,
    ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&конецпериода, ДЕНЬ), Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
    НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор В
                (ВЫБРАТЬ
                    ВТ_ПеремещенияВыпускаНаборов.ПеремещениеВКомплектацию
                ИЗ
                    ВТ_ПеремещенияВыпускаНаборов
        
                ОБЪЕДИНИТЬ ВСЕ
        
                ВЫБРАТЬ
                    ВТ_ПеремещенияВыпускаНаборов.ПеремещениеИзКомплектации
                ИЗ
                    ВТ_ПеремещенияВыпускаНаборов)



В результате КоличествоПриход и КоличествоРасход показывается верно (без лишних документов), а КоличествоНачальныйОстаток и КоличествоКонечныйОстаток - результатом декартова произведения (чем больше документов движения, тем больше числа).
Хочется написать на СКД, но запрос меня пока побеждает((
Спасибо.
1 hhhh
 
26.07.19
15:50
(0) выкинь таблицу ОстаткиИОбороты. считай просто по регистру ТоварыНаСкладах
2 Krendel
 
26.07.19
15:51
отбор сделай и все
3 vdeemer
 
26.07.19
15:57
(1) а как мне понять начальный и конечный остаток периода?
(2) отбор по чему? В запросе (0) тоже есть отбор своего рода...
4 lodger
 
26.07.19
16:09
(3) сделай 2 запроса. на 1 и на 2 дату.
5 Злопчинский
 
26.07.19
16:13
Ты дятел
6 Злопчинский
 
26.07.19
16:13
Приход и расход это обороты по приходу и обороты по расходу, а не чистый приход и расхрд
7 hhhh
 
26.07.19
16:18
(3) приход - расход = нач остаток на начало периода
8 vdeemer
 
26.07.19
16:18
(7) это оборот, но никак не нач.остаток
9 Максим Нижегородец
 
26.07.19
16:18
(0) Сделать отчет по регистру партий и убрать партии по списку из отчета. Так можно получить ОСТАТКИ и ОБОРОТЫ. По другому не вижу решения.
10 vdeemer
 
26.07.19
16:20
(9) РАУЗ, партий нет((
11 hhhh
 
26.07.19
16:22
(8) приход на все предыдущие периоды минус расход за все предыдущие периоды это и будет остаток. Вы математику-то подтяните, формул не знаете, КонОстаток = НачОстаток + Приход - Расход.
12 vdeemer
 
26.07.19
16:23
(11) мне в голову не пришло, что надо пройтись по всей истории. А пипиркой могу и померяться, ММФ НГУ - если чо))
13 Максим Нижегородец
 
26.07.19
16:24
(10) Вынести все эти документы на отдельный склад - это будет заменой ПАРТИИ.
(11) Вот такой метод в дальнейшем убьет любой сервер. На разовый отчет можно.
14 vdeemer
 
26.07.19
16:28
(13) может и проще форсировать работу по уходу от этих бестолковых документов)))
15 hhhh
 
26.07.19
16:31
(13) ну если у него такая дебильная задача, что делать? Тогда хотя бы отчет этот оставить, но + тогда таблица документов перемещений этих за всю историю. и вычитать
16 Максим Нижегородец
 
26.07.19
16:42
(14) Эта проблема все равно возникает у каждого программиста. Первая задача локализовать безобразие в учете (регистре). На отдельном складе или определенных партиях. Потом можно эти партии или склад спрятать и не вспоминать.