Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ВЫБРАТЬ
- СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
- СУММА(СвободныеОстаткиОстатки.ВНаличииОстаток) КАК КоличествоСвободныхОстатков
- ПОМЕСТИТЬ СвободныеОстатки
- ИЗ
- РегистрНакопления.СвободныеОстатки.Остатки(&ТекущаяДата {(&ТекущаяДата)}, ) КАК СвободныеОстаткиОстатки
- {ГДЕ
- (СвободныеОстаткиОстатки.Склад В (&Склад))}
- СГРУППИРОВАТЬ ПО
- СвободныеОстаткиОстатки.Номенклатура
- ИНДЕКСИРОВАТЬ ПО
- Номенклатура
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- ВложенныйЗапрос1.АналитикаУчетаНоменклатурыНоменклатура КАК Номенклатура,
- СУММА(ВЫРАЗИТЬ(ЕСТЬNULL(ВложенныйЗапрос1.СтоимостьИзРегСвед + ВложенныйЗапрос1.СтоимостьЗабалансовая, 0) КАК ЧИСЛО(15, 2))) КАК СтоимостьЕдиницы
- ПОМЕСТИТЬ СтоимостьЕдиницы
- ИЗ
- (ВЫБРАТЬ
- СтоимостьТоваровСрезПоследних.АналитикаУчетаНоменклатуры.Номенклатура КАК АналитикаУчетаНоменклатурыНоменклатура,
- СРЕДНЕЕ(СтоимостьТоваровСрезПоследних.Стоимость) КАК СтоимостьИзРегСвед,
- СРЕДНЕЕ(СтоимостьТоваровСрезПоследних.СтоимостьЗабалансовая) КАК СтоимостьЗабалансовая
- ИЗ
- РегистрСведений.СтоимостьТоваров.СрезПоследних(&ТекущаяДата {(&ТекущаяДата)}, ) КАК СтоимостьТоваровСрезПоследних
- СГРУППИРОВАТЬ ПО
- СтоимостьТоваровСрезПоследних.АналитикаУчетаНоменклатуры.Номенклатура) КАК ВложенныйЗапрос1
- СГРУППИРОВАТЬ ПО
- ВложенныйЗапрос1.АналитикаУчетаНоменклатурыНоменклатура
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей КАК СпособОбеспеченияПотребностей,
- ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ОбеспечиваемыйПериод КАК ОбеспечиваемыйПериод,
- ВариантыОбеспеченияТоварами.Номенклатура КАК Номенклатура,
- СУММА(ВложенныйЗапрос.КоличествоСреднедневныхПродаж) КАК КоличествоСреднедневныхПродаж,
- ВложенныйЗапрос.ПериодСреднедневныхПродаж КАК ПериодСреднедневныхПродаж,
- СУММА(ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ОбеспечиваемыйПериод * ВложенныйЗапрос.КоличествоСреднедневныхПродаж) КАК КоличествоТовараДляОбеспеченияБезОкругления,
- СУММА(ВЫБОР
- КОГДА (ВЫРАЗИТЬ(ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ОбеспечиваемыйПериод * ВложенныйЗапрос.КоличествоСреднедневныхПродаж КАК ЧИСЛО(10, 0))) >= ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ОбеспечиваемыйПериод * ВложенныйЗапрос.КоличествоСреднедневныхПродаж
- ТОГДА ВЫРАЗИТЬ(ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ОбеспечиваемыйПериод * ВложенныйЗапрос.КоличествоСреднедневныхПродаж КАК ЧИСЛО(10, 0))
- ИНАЧЕ (ВЫРАЗИТЬ(ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ОбеспечиваемыйПериод * ВложенныйЗапрос.КоличествоСреднедневныхПродаж КАК ЧИСЛО(10, 0))) + 1
- КОНЕЦ) КАК КоличествоТовараДляОбеспечения,
- ВариантыОбеспеченияТоварами.Номенклатура.Марка КАК НоменклатураМарка
- ПОМЕСТИТЬ Обеспечение
- ИЗ
- РегистрСведений.ВариантыОбеспеченияТоварами КАК ВариантыОбеспеченияТоварами
- ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
- РАЗНОСТЬДАТ(&НачалоПериодаДляСреднедневныхПродаж, &КонецПериодаДляСреднедневныхПродаж, ДЕНЬ) КАК ПериодСреднедневныхПродаж,
- СУММА(ВложенныйЗапрос.КоличествоПродаж / РАЗНОСТЬДАТ(&НачалоПериодаДляСреднедневныхПродаж, &КонецПериодаДляСреднедневныхПродаж, ДЕНЬ)) КАК КоличествоСреднедневныхПродаж,
- СУММА(ВложенныйЗапрос.КоличествоПродаж) КАК КоличествоПродаж,
- ВложенныйЗапрос.Номенклатура КАК Номенклатура
- ИЗ
- (ВЫБРАТЬ
- ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
- СУММА(ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот) КАК КоличествоПродаж
- ИЗ
- РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПериодаДляСреднедневныхПродаж {(&НачалоПериодаДляСреднедневныхПродаж)}, &КонецПериодаДляСреднедневныхПродаж {(&КонецПериодаДляСреднедневныхПродаж)}, , ) КАК ВыручкаИСебестоимостьПродажОбороты
- СГРУППИРОВАТЬ ПО
- ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура) КАК ВложенныйЗапрос
- СГРУППИРОВАТЬ ПО
- ВложенныйЗапрос.Номенклатура) КАК ВложенныйЗапрос
- ПО ВариантыОбеспеченияТоварами.Номенклатура = ВложенныйЗапрос.Номенклатура
- И (ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ТипОбеспечения = ЗНАЧЕНИЕ(Перечисление.ТипыОбеспечения.Покупка))
- И (ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ОбеспечиваемыйПериод > 0)
- СГРУППИРОВАТЬ ПО
- ВариантыОбеспеченияТоварами.Номенклатура,
- ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей,
- ВариантыОбеспеченияТоварами.СпособОбеспеченияПотребностей.ОбеспечиваемыйПериод,
- ВложенныйЗапрос.ПериодСреднедневныхПродаж,
- ВариантыОбеспеченияТоварами.Номенклатура.Марка
- ИНДЕКСИРОВАТЬ ПО
- Номенклатура
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- ДанныеПроизводственногоКалендаря.Дата КАК День
- ПОМЕСТИТЬ Дни
- ИЗ
- РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
- ГДЕ
- ДанныеПроизводственногоКалендаря.Дата МЕЖДУ &ДатаНачалаПотеряннойПрибыли И &ДатаОкончанияПотеряннойПрибыли
- СГРУППИРОВАТЬ ПО
- ДанныеПроизводственногоКалендаря.Дата
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- СпрНоменклатура.Ссылка КАК Номенклатура,
- СУММА(ВЫБОР
- КОГДА СвободныеОстаткиОстаткиИОбороты.Период = &ДатаНачалаПотеряннойПрибыли
- ТОГДА СвободныеОстаткиОстаткиИОбороты.ВНаличииКонечныйОстаток
- КОГДА СвободныеОстаткиОстаткиИОбороты.Период <= Дни.День
- ТОГДА СвободныеОстаткиОстаткиИОбороты.ВНаличииОборот
- ИНАЧЕ 0
- КОНЕЦ) КАК Остаток,
- Дни.День КАК День
- ПОМЕСТИТЬ ОстаткиНаДни
- ИЗ
- Дни КАК Дни,
- Справочник.Номенклатура КАК СпрНоменклатура
- ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(&ДатаНачалаПотеряннойПрибыли {(&ДатаНачалаПотеряннойПрибыли)}, &ДатаОкончанияПотеряннойПрибыли {(&ДатаОкончанияПотеряннойПрибыли)}, День, , {(Склад В (&СкладДляПотеряннойВыручки))}) КАК СвободныеОстаткиОстаткиИОбороты
- ПО (СвободныеОстаткиОстаткиИОбороты.Номенклатура = СпрНоменклатура.Ссылка)
- СГРУППИРОВАТЬ ПО
- Дни.День,
- СпрНоменклатура.Ссылка
- ИНДЕКСИРОВАТЬ ПО
- Номенклатура
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- ОстаткиНаДни.День КАК День,
- ОстаткиНаДни.Номенклатура КАК Номенклатура,
- ОстаткиНаДни.Остаток КАК Остаток,
- МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период
- ПОМЕСТИТЬ МаксПериод
- ИЗ
- ОстаткиНаДни КАК ОстаткиНаДни
- ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
- ПО (ЦеныНоменклатуры.Номенклатура = ОстаткиНаДни.Номенклатура)
- И ОстаткиНаДни.День >= ЦеныНоменклатуры.Период
- СГРУППИРОВАТЬ ПО
- ОстаткиНаДни.День,
- ОстаткиНаДни.Номенклатура,
- ОстаткиНаДни.Остаток
- ИНДЕКСИРОВАТЬ ПО
- Номенклатура
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- МаксПериод.Номенклатура КАК Номенклатура,
- МаксПериод.Остаток КАК Остаток,
- СРЕДНЕЕ(ЦеныНоменклатуры.Цена) КАК Цена,
- МаксПериод.День КАК День
- ПОМЕСТИТЬ ОстаткиИЦены
- ИЗ
- МаксПериод КАК МаксПериод
- ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
- ПО МаксПериод.Номенклатура = ЦеныНоменклатуры.Номенклатура
- И МаксПериод.Период = ЦеныНоменклатуры.Период
- ГДЕ
- ЦеныНоменклатуры.ВидЦены = &ВидЦены
- СГРУППИРОВАТЬ ПО
- МаксПериод.Остаток,
- МаксПериод.Номенклатура,
- МаксПериод.День
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- СУММА(ВЫБОР
- КОГДА ОстаткиИЦены.Остаток = 0
- ИЛИ ОстаткиИЦены.Остаток ЕСТЬ NULL
- ТОГДА 1
- ИНАЧЕ 0
- КОНЕЦ) КАК КоличествоДней,
- ОстаткиИЦены.Номенклатура КАК Номенклатура,
- СУММА(ВЫБОР
- КОГДА ОстаткиИЦены.Остаток = 0
- ИЛИ ОстаткиИЦены.Остаток ЕСТЬ NULL
- ТОГДА ОстаткиИЦены.Цена
- ИНАЧЕ 0
- КОНЕЦ) КАК СуммаЦенНаПустыеОстатки,
- СУММА(ВЫБОР
- КОГДА ОстаткиИЦены.Остаток > 0
- ТОГДА 1
- ИНАЧЕ 0
- КОНЕЦ) КАК КоличествоДнейПрисутствияТовара
- ПОМЕСТИТЬ Группируем
- ИЗ
- (ВЫБРАТЬ
- МаксПериод.Номенклатура КАК Номенклатура,
- МаксПериод.Остаток КАК Остаток,
- СРЕДНЕЕ(ЦеныНоменклатуры.Цена) КАК Цена,
- МаксПериод.День КАК День
- ИЗ
- МаксПериод КАК МаксПериод
- ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
- ПО МаксПериод.Номенклатура = ЦеныНоменклатуры.Номенклатура
- И МаксПериод.Период = ЦеныНоменклатуры.Период
- ГДЕ
- ЦеныНоменклатуры.ВидЦены = &ВидЦены
- СГРУППИРОВАТЬ ПО
- МаксПериод.Остаток,
- МаксПериод.Номенклатура,
- МаксПериод.День) КАК ОстаткиИЦены
- СГРУППИРОВАТЬ ПО
- ОстаткиИЦены.Номенклатура
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- Группируем.Номенклатура КАК Номенклатура,
- ВЫБОР
- КОГДА Группируем.КоличествоДней = 0
- ИЛИ Группируем.КоличествоДней ЕСТЬ NULL
- ТОГДА 0
- ИНАЧЕ Группируем.СуммаЦенНаПустыеОстатки / Группируем.КоличествоДней
- КОНЕЦ КАК СредняяЦенаНаДниСПустымиОстатками,
- Группируем.КоличествоДней КАК КоличествоДней,
- Группируем.СуммаЦенНаПустыеОстатки КАК СуммаЦенНаПустыеОстатки,
- Группируем.КоличествоДнейПрисутствияТовара КАК КоличествоДнейПрисутствияТовара
- ПОМЕСТИТЬ ИтогоРассчётыДляВыручки
- ИЗ
- Группируем КАК Группируем
- ИНДЕКСИРОВАТЬ ПО
- Номенклатура
- ;
- ////////////////////////////////////////////////////////////////////////////////
- ВЫБРАТЬ
- ВТОбеспечение.СпособОбеспеченияПотребностей КАК СпособОбеспеченияПотребностей,
- ВТОбеспечение.ОбеспечиваемыйПериод КАК ОбеспечиваемыйПериод,
- ВТОбеспечение.ПериодСреднедневныхПродаж КАК ПериодСреднедневныхПродаж,
- ВТОбеспечение.КоличествоСреднедневныхПродаж КАК КоличествоСреднедневныхПродаж,
- ВТОбеспечение.КоличествоТовараДляОбеспеченияБезОкругления КАК КоличествоТовараДляОбеспеченияБезОкругления,
- ВТОбеспечение.КоличествоТовараДляОбеспечения КАК КоличествоТовараДляОбеспечения,
- ЕСТЬNULL(ВТСвободныеОстатки.КоличествоСвободныхОстатков, 0) КАК КоличествоСвободныхОстатков,
- ВТОбеспечение.КоличествоТовараДляОбеспечения - ЕСТЬNULL(ВТСвободныеОстатки.КоличествоСвободныхОстатков, 0) КАК КоличествоРассчитаннаяПотребность,
- ЕСТЬNULL(ВТСтоимостьЕдиницы.СтоимостьЕдиницы, 0) КАК СтоимостьЕдиницы,
- (ВТОбеспечение.КоличествоТовараДляОбеспечения - ЕСТЬNULL(ВТСвободныеОстатки.КоличествоСвободныхОстатков, 0)) * ЕСТЬNULL(ВТСтоимостьЕдиницы.СтоимостьЕдиницы, 0) КАК СтоимостьРассчитаннаяПотребность,
- ЕСТЬNULL(ВТСвободныеОстатки.КоличествоСвободныхОстатков, 0) * ЕСТЬNULL(ВТСтоимостьЕдиницы.СтоимостьЕдиницы, 0) КАК СтоимостьОстатков,
- ВТОбеспечение.НоменклатураМарка КАК Марка,
- ВТОбеспечение.Номенклатура КАК Номенклатура,
- (ВТОбеспечение.КоличествоТовараДляОбеспечения - ЕСТЬNULL(ВТСвободныеОстатки.КоличествоСвободныхОстатков, 0)) * ВТИтогоРассчётыДляВыручки.СредняяЦенаНаДниСПустымиОстатками КАК ПотеряннаяВыручка,
- ВТИтогоРассчётыДляВыручки.КоличествоДней КАК КоличествоДнейОтсутсвияТовара,
- ВТИтогоРассчётыДляВыручки.СредняяЦенаНаДниСПустымиОстатками КАК Цена,
- ВТИтогоРассчётыДляВыручки.КоличествоДнейПрисутствияТовара КАК КоличествоДнейПрисутствияТовара
- ИЗ
- Обеспечение КАК ВТОбеспечение
- ЛЕВОЕ СОЕДИНЕНИЕ СвободныеОстатки КАК ВТСвободныеОстатки
- ПО ВТОбеспечение.Номенклатура = ВТСвободныеОстатки.Номенклатура
- ЛЕВОЕ СОЕДИНЕНИЕ СтоимостьЕдиницы КАК ВТСтоимостьЕдиницы
- ПО ВТОбеспечение.Номенклатура = ВТСтоимостьЕдиницы.Номенклатура
- ЛЕВОЕ СОЕДИНЕНИЕ ИтогоРассчётыДляВыручки КАК ВТИтогоРассчётыДляВыручки
- ПО ВТОбеспечение.Номенклатура = ВТИтогоРассчётыДляВыручки.Номенклатура
- ГДЕ
- ВТОбеспечение.КоличествоТовараДляОбеспечения - ЕСТЬNULL(ВТСвободныеОстатки.КоличествоСвободныхОстатков, 0) > 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement