Имя: Пароль:
1C
1С v8
Вопрос по регистру накопления остатки
0 asder117
 
01.07.19
11:29
Доброго времени суток. на борту конфа УПП.
В СКД делаю отчет который должен выводить имеющиеся заказы на производство и остатки материалов по ним на складах
запрос такого типа:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РегЗаказы.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
    РегЗаказы.Номенклатура КАК Продукция,
    РегЗаказы.Спецификация КАК Спецификация,
    РегЗаказы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    РегЗаказы.КоличествоОстаток КАК КоличествоОстаток
ПОМЕСТИТЬ ЗаказыНаПроизводство
ИЗ
    РегистрНакопления.ЗаказыНаПроизводство.Остатки(&ДатаКон, ) КАК РегЗаказы
;

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

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НоменклатураСпецификаций.Полуфабрикат,
    ЗаказыНаПроизводство.Продукция,
    ЗаказыНаПроизводство.ЗаказНаПроизводство,
    ЗаказыНаПроизводство.КоличествоОстаток,
    ВЫБОР
        КОГДА ЗаказыНаПроизводство.КоличествоОстаток = NULL
            ТОГДА 0
        ИНАЧЕ НоменклатураСпецификаций.Количество
    КОНЕЦ КАК КоличествоВСпец,
    ОстаткиНаСкладах.ОстатокНаСкладе,
    ОстаткиНаСкладах.ОстатокНаСкладеПР
ИЗ
    ЗаказыНаПроизводство КАК ЗаказыНаПроизводство
        ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураСпецификаций КАК НоменклатураСпецификаций
            ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиНаСкладах КАК ОстаткиНаСкладах
            ПО НоменклатураСпецификаций.Полуфабрикат = ОстаткиНаСкладах.НоменклатураСклад
        ПО ЗаказыНаПроизводство.Спецификация = НоменклатураСпецификаций.Спецификация;
В результате вываливает даже те заказы которые закрыты. Данный запрос выполнил в консоли. В результате да заметил строки с закрытыми заказами и по ним в поле "РегЗаказы.КоличествоОстаток" есть одинаковые положительные и отрицательные значения, что в результате дает 0 по данному заказу и он выводиться не должен. Делал запрос как по частям так и полностью. Подтолкните на путь истинный, где что не так делаю. Заранее спасибо
1 Beduin
 
01.07.19
11:32
Этот запрос выдает заказы без остатков?
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РегЗаказы.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
    РегЗаказы.Номенклатура КАК Продукция,
    РегЗаказы.Спецификация КАК Спецификация,
    РегЗаказы.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    РегЗаказы.КоличествоОстаток КАК КоличествоОстаток
ПОМЕСТИТЬ ЗаказыНаПроизводство
ИЗ
    РегистрНакопления.ЗаказыНаПроизводство.Остатки(&ДатаКон, ) КАК РегЗаказы
2 asder117
 
01.07.19
11:34
(1) нет в нем тоже остатки одинаковые по закрытым заказам как со знаком "+" так и "-"
3 catena
 
01.07.19
11:49
(2)Значит что-то там по измерениям не закрывается.
4 Ёпрст
 
01.07.19
11:52
(0)v ГДЕ
    СвободныеОстаткиОстатки.КоличествоОстаток > 0

это выкинь, для начала
5 asder117
 
01.07.19
13:56
(4) Убрал. ничего не поменялось. на что это может повлиять? это част запроса для того чтобы вынуть остатки по 2 складам
6 asder117
 
01.07.19
13:57
(3) что самое интересное универсальный отчет "Заказы на производство"по данному запросу схлопывает все нормально. Часть запроса по заказам взята оттуда
7 asder117
 
02.07.19
09:31
подниму тему
8 Exxter
 
02.07.19
09:52
(7) ЗаказыНаПроизводство.КоличествоОстаток = NULL  тут "0" всегда будет разве нет?

Может так:
ИЗ
    РегистрНакопления.ЗаказыНаПроизводство.Остатки(&ДатаКон, ) КАК РегЗаказы
Где
     РегЗаказы.КоличествоОстаток <> 0
9 catena
 
02.07.19
10:05
(7)Выведите в первом запросе все измерения и сравните в тех строчках, которые +/-
РегистрНакопления.ЗаказыНаПроизводство.Остатки(&ДатаКон, )
10 hhhh
 
02.07.19
10:27
(7) да, вот это дебилизм

КОГДА ЗаказыНаПроизводство.КоличествоОстаток = NULL

= NULL всегда дает ЛОЖЬ. Нужно ЕСТЬ NULL
11 asder117
 
02.07.19
13:33
(9) попробую..т.е. есть вероятность того что не по всем полям закрывается?
12 catena
 
02.07.19
13:36
(11)Судя по (2) - да
13 asder117
 
02.07.19
13:37
(12) только что сделал. все один в один
14 catena
 
02.07.19
13:38
(13)Если не врешь, тогда итоги пересчитывай.
15 asder117
 
02.07.19
13:46
(14) я не идиот чтобы врать....решение понял буду пробовать
16 asder117
 
02.07.19
13:47
(8) (10) так он у меня и не NULL он или минусового или плюсового значения
17 catena
 
02.07.19
13:51
(15)Я ничего не утверждаю, но "= NULL" в запросе и в принципе ожидание NULL в этом поле позволяет мне усомниться в вашем заявлении, что "все один в один". Многое визуально может выглядеть "все один в один", а по факту нет.
18 catena
 
02.07.19
13:52
Ну, совсем для надежности, вывести в запрос все измерения и ресурсы, сгруппировать по измерениям, суммируя ресурсы.
19 asder117
 
02.07.19
13:56
(18) Группировка работает. данные суммируются и в итоге по закрытому заказу дает 0 но СКД я не могу заставить обходить эту часть запроса по группировкам. Если бы можно было я бы поставил условие на 0. Прост вопрос...почему его универсальный отрабатывает как надо и не выводит закрытые заказы?