Имя: Пароль:
1C
1С v8
Остатки изделий по комплектующим
0 Falex
 
13.06.12
23:10
Конфигурация: УПП 1.3

Вопрос: есть остатки по комплектующим.
Есть изделия, по которым остатков нет, но есть данные о комплектующих.
Принимаем, что комплектующее может быть только в одной изделии.
Как получить запросов количество остаткой в изделиях, имея остатки
в комплектующих? Причем, если изделие состоит из 2-х комплектующих, но
на остатках есть только одно, то в запросе выводить в остатках 1, но в
примечении писать, что недокомплект. Как написать такой запрос?
1 МихаилМ
 
13.06.12
23:53
что бы написать такой запрос,
как минамум, нужно знать максимальный уровень агрегации комплектующих
если коплектующее входит в несколько изделий, то какое из нескольких выбрать (макс комплектация,макс стоимость, макс место на складе , ... )
2 МихаилМ
 
14.06.12
00:00
+(1)

вот похожая тема
3 shuhard
 
14.06.12
00:04
(0) задача бессмысленная, но легко решаемая
найти максимальное количество выпуска
по нему рассчитать потребность
вычесть остатки

для УПП и одного передела эта выглядит так:
ВЫБРАТЬ
   СпецификацииНоменклатурыВыходныеИзделия.Номенклатура КАК ГП,
   СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура КАК Материал,
   СУММА(СпецификацииНоменклатурыИсходныеКомплектующие.Количество) КАК Количество
ПОМЕСТИТЬ ГПКомплектующие
ИЗ
   Справочник.СпецификацииНоменклатуры.ВыходныеИзделия КАК СпецификацииНоменклатурыВыходныеИзделия
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
       ПО СпецификацииНоменклатурыВыходныеИзделия.Ссылка = СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка

СГРУППИРОВАТЬ ПО
   СпецификацииНоменклатурыВыходныеИзделия.Номенклатура,
   СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ГПКомплектующие.ГП,
   МАКСИМУМ(ВЫРАЗИТЬ(ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) / ГПКомплектующие.Количество КАК ЧИСЛО(15, 0))) КАК Комплект
ПОМЕСТИТЬ МаксимальныйВыпуск
ИЗ
   ГПКомплектующие КАК ГПКомплектующие
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
       ПО ГПКомплектующие.Материал = ТоварыОрганизацийОстатки.Номенклатура

СГРУППИРОВАТЬ ПО
   ГПКомплектующие.ГП
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТВыпуск.ГП,
   ТВыпуск.Материал,
   ТВыпуск.Потребность,
   ТВыпуск.Выпуск,
   ТоварыОрганизацийОстатки.КоличествоОстаток,
   ТВыпуск.Потребность - ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) КАК Дельта
ИЗ
   Выпуск КАК ТВыпуск
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
       ПО ТВыпуск.Материал = ТоварыОрганизацийОстатки.Номенклатура
4 shuhard
 
14.06.12
00:05
(3) ну и в УПП это называется расчёт по основному сырьё
5 Falex
 
14.06.12
16:52
ну а если есть не хватает остатков исходных комплектующих для формирования ГП, то что в итоге будет?
6 shuhard
 
14.06.12
16:55
(5) ну а что по твоему вернёт запрос
ВЫБРАТЬ
   ГПКомплектующие.ГП,
   МАКСИМУМ(ВЫРАЗИТЬ(ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) / ГПКомплектующие.Количество КАК ЧИСЛО(15, 0))) КАК Комплект
ПОМЕСТИТЬ МаксимальныйВыпуск
ИЗ
   ГПКомплектующие КАК ГПКомплектующие
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки
       ПО ГПКомплектующие.Материал = ТоварыОрганизацийОстатки.Номенклатура

СГРУППИРОВАТЬ ПО
   ГПКомплектующие.ГП
;