Имя: Пароль:
1C
1С v8
Анализ доступности товаров в УТ 10.3
0 idw
 
13.07.12
10:53
Собственно вот такая проблема: если были корректировки качества, т.е например перевели товар в брак, то в отчете свободный остаток выходит с минусом.
Можно ли подправить запрос, чтобы не выходил отриц. остаток или надо в регистр накопления ТоварыВРезервеНаСкладах добавлять новое измерение Качество?
1 John83
 
13.07.12
11:06
думаю, что возможно допилить отчет
2 idw
 
13.07.12
11:10
(1) тоже думал. )

Вот такой запрос там используется:

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

УПОРЯДОЧИТЬ ПО
   Номенклатура ИЕРАРХИЯ УБЫВ
3 idw
 
13.07.12
11:11
Если есть корректировка качества, то мы имеем остаток  КоличествоВРезерве = -1,
соответственно
ВложенныйЗапрос.КоличествоОстаток - ВложенныйЗапрос.КоличествоВРезерве - ВложенныйЗапрос.КоличествоКПередаче КАК СвободныйОстаток      = -1
4 John83
 
13.07.12
11:13
убери качество вообще из отчета и все
5 idw
 
13.07.12
11:13
(2) проблема в РегистрНакопления.ТоварыВРезервеНаСкладах, у него нет измерения Качество
6 idw
 
13.07.12
11:14
(4) тогда да, всё работает, но мне нужны остатки по новому товару, без брака.
7 John83
 
13.07.12
11:32
(5) если ты добавишь измерение, то придется переписывать типовой механизм, а оно тебе надо?
я бы еще над отчетом подумал
8 idw
 
13.07.12
13:46
(7) поэтому я и не хочу. Придется пол конфигурации переписывать.
А с отчетом я не знаю что делать.
9 idw
 
13.07.12
13:54
Т.е надо как то сюда добавить условие по качеству:

ВЫБРАТЬ
           ТоварыВРезервеНаСкладахОстатки.Склад,
           ТоварыВРезервеНаСкладахОстатки.Номенклатура,
           0,
           ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
           0
       ИЗ
           РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
                   &ВыбДата,
                   &УсловиеНоменклатура
                       И &УсловиеСклад) КАК ТоварыВРезервеНаСкладахОстатки


На мой взгляд это не реально. Что же 1С не добавила сразу измерение Качество не понятно.