Сообщение = Новый СообщениеПользователю;
Сообщение. Текст = "По партии " + ВыборкаДетальныеЗаписи. Партия + " не хватает номенклатуры " + ВыборкаДетальныеЗаписи. Номенклатура + " в количестве " + (ВыборкаДетальныеЗаписи. Количество - ВыборкаДетальныеЗаписи. КоличествоОстаток);
Сообщение. Сообщить();
Отказ = Истина;
Продолжить;
ИначеЕсли Не ВыборкаДетальныеЗаписи. ЭтоУслуга Тогда
Если ВыборкаДетальныеЗаписи. Количество = ВыборкаДетальныеЗаписи. КоличествоОстаток Тогда
// регистр ОстаткиНоменклатуры Расход
Движение = Движения. ОстаткиНоменклатуры. Добавить();
Движение. ВидДвижения = ВидДвиженияНакопления. Расход;
Движение. Период = Дата;
Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;
Движение. Партия = ВыборкаДетальныеЗаписи. Партия;
Движение. Количество = ВыборкаДетальныеЗаписи. КоличествоОстаток;
Движение. Сумма = ВыборкаДетальныеЗаписи. СуммаОстаток;
Иначе
// регистр ОстаткиНоменклатуры Расход
Движение = Движения. ОстаткиНоменклатуры. Добавить();
Движение. ВидДвижения = ВидДвиженияНакопления. Расход;
Движение. Период = Дата;
Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;
Движение. Партия = ВыборкаДетальныеЗаписи. Партия;
Движение. Количество = ВыборкаДетальныеЗаписи. Количество;
Движение. Сумма = ?(ВыборкаДетальныеЗаписи. КоличествоОстаток = 0,0,Окр(ВыборкаДетальныеЗаписи. СуммаОстаток/ВыборкаДетальныеЗаписи. КоличествоОстаток*ВыборкаДетальныеЗаписи. Количество,2));
КонецЕсли;
КонецЕсли;
// регистр Продажи
Движение = Движения. Продажи. Добавить();
Движение. Период = Дата;
Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;
Движение. Количество = ВыборкаДетальныеЗаписи. Количество;
Движение. Сумма = ВыборкаДетальныеЗаписи. Сумма;
КонецЦикла;
КонецПроцедуры
Отчет: «Продажи»
Запрос:
ВЫБРАТЬ
ПродажиОбороты. Номенклатура,
ПродажиОбороты. КоличествоОборот КАК Количество,
ПродажиОбороты. СуммаОборот КАК Продажа
ПОМЕСТИТЬ ВТ_Продажи
ИЗ
РегистрНакопления. Продажи. Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Продажи. Номенклатура,
ВТ_Продажи. Количество,
ВТ_Продажи. Продажа,
ОстаткиНоменклатурыОбороты. Период КАК Дата,
ЕСТЬNULL(ОстаткиНоменклатурыОбороты. СуммаРасход, 0) КАК Себестоимость
ПОМЕСТИТЬ ВТ_ПродажиПоДатам
ИЗ
ВТ_Продажи КАК ВТ_Продажи
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. ОстаткиНоменклатуры. Обороты(
&НачалоПериода,
&КонецПериода,
Регистратор,
Номенклатура В
(ВЫБРАТЬ
ВТ_Продажи. Номенклатура
ИЗ
ВТ_Продажи КАК ВТ_Продажи)) КАК ОстаткиНоменклатурыОбороты
ПО ВТ_Продажи. Номенклатура = ОстаткиНоменклатурыОбороты. Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ПродажиПоДатам. Номенклатура,
МАКСИМУМ(ВТ_ПродажиПоДатам. Количество) КАК Количество,
СУММА(ВТ_ПродажиПоДатам. Себестоимость) КАК Себестоимость,
МАКСИМУМ(ВТ_ПродажиПоДатам. Продажа) КАК Продажа,
МИНИМУМ(ВТ_ПродажиПоДатам. Дата) КАК ПерваяПродажа,
МАКСИМУМ(ВТ_ПродажиПоДатам. Дата) КАК ПоследняяПродажа,
КОЛИЧЕСТВО(ВТ_ПродажиПоДатам. Номенклатура) КАК КолОтгрузок
ПОМЕСТИТЬ ВТ_Результат
ИЗ
ВТ_ПродажиПоДатам КАК ВТ_ПродажиПоДатам
СГРУППИРОВАТЬ ПО
ВТ_ПродажиПоДатам. Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Результат. Номенклатура,
ВТ_Результат. Количество,
ВТ_Результат. Себестоимость,
ВТ_Результат. Продажа,
ВТ_Результат. Продажа - ВТ_Результат. Себестоимость КАК Прибыль,
ВЫБОР
КОГДА ВТ_Результат. КолОтгрузок = 0
ТОГДА 0
ИНАЧЕ ВЫБОР
КОГДА ВТ_Результат. КолОтгрузок = 1
ТОГДА "Разовая"
ИНАЧЕ РАЗНОСТЬДАТ(ВТ_Результат. ПерваяПродажа, ВТ_Результат. ПоследняяПродажа, ДЕНЬ) / ВТ_Результат. КолОтгрузок
КОНЕЦ
КОНЕЦ КАК Интервал,
РАЗНОСТЬДАТ(ВТ_Результат. ПоследняяПродажа, &КонецПериода, ДЕНЬ) КАК Срок
ИЗ
ВТ_Результат КАК ВТ_Результат


РН «ОстаткиНоменклатуры» (остатки)
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 |


