Сообщение = Новый СообщениеПользователю;

                       Сообщение. Текст = "По партии " + ВыборкаДетальныеЗаписи. Партия + " не хватает номенклатуры " + ВыборкаДетальныеЗаписи. Номенклатура + " в количестве " + (ВыборкаДетальныеЗаписи. Количество - ВыборкаДетальныеЗаписи. КоличествоОстаток);

                       Сообщение. Сообщить();

                       

                       Отказ = Истина;

                       Продолжить;

               ИначеЕсли Не ВыборкаДетальныеЗаписи. ЭтоУслуга Тогда

                       

                       Если ВыборкаДетальныеЗаписи. Количество = ВыборкаДетальныеЗаписи. КоличествоОстаток Тогда

                               // регистр ОстаткиНоменклатуры Расход

                               Движение = Движения. ОстаткиНоменклатуры. Добавить();

НЕ нашли? Не то? Что вы ищете?

                               Движение. ВидДвижения = ВидДвиженияНакопления. Расход;

                               Движение. Период = Дата;

                               Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;

                               Движение. Партия = ВыборкаДетальныеЗаписи. Партия;

                               Движение. Количество = ВыборкаДетальныеЗаписи. КоличествоОстаток;

                               Движение. Сумма = ВыборкаДетальныеЗаписи. СуммаОстаток;

                       Иначе

                               // регистр ОстаткиНоменклатуры Расход

                               Движение = Движения. ОстаткиНоменклатуры. Добавить();

                               Движение. ВидДвижения = ВидДвиженияНакопления. Расход;

                               Движение. Период = Дата;

                               Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;

                               Движение. Партия = ВыборкаДетальныеЗаписи. Партия;

                               Движение. Количество = ВыборкаДетальныеЗаписи. Количество;

                               Движение. Сумма = ?(ВыборкаДетальныеЗаписи. КоличествоОстаток = 0,0,Окр(ВыборкаДетальныеЗаписи. СуммаОстаток/ВыборкаДетальныеЗаписи. КоличествоОстаток*ВыборкаДетальныеЗаписи. Количество,2));

                       КонецЕсли;                

                       

               КонецЕсли;

               

               // регистр Продажи

               Движение = Движения. Продажи. Добавить();

               Движение. Период = Дата;

               Движение. Номенклатура = ВыборкаДетальныеЗаписи. Номенклатура;

               Движение. Количество = ВыборкаДетальныеЗаписи. Количество;

               Движение. Сумма = ВыборкаДетальныеЗаписи. Сумма;

               

       КонецЦикла;

КонецПроцедуры

Отчет: «Продажи»

Запрос:

ВЫБРАТЬ

       ПродажиОбороты. Номенклатура,

       ПродажиОбороты. КоличествоОборот КАК Количество,

       ПродажиОбороты. СуммаОборот КАК Продажа

ПОМЕСТИТЬ ВТ_Продажи

ИЗ

       РегистрНакопления. Продажи. Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

       ВТ_Продажи. Номенклатура,

       ВТ_Продажи. Количество,

       ВТ_Продажи. Продажа,

       ОстаткиНоменклатурыОбороты. Период КАК Дата,

       ЕСТЬNULL(ОстаткиНоменклатурыОбороты. СуммаРасход, 0) КАК Себестоимость

ПОМЕСТИТЬ ВТ_ПродажиПоДатам

ИЗ

       ВТ_Продажи КАК ВТ_Продажи

               ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. ОстаткиНоменклатуры. Обороты(

                               &НачалоПериода,

                               &КонецПериода,

                               Регистратор,

                               Номенклатура В

                                       (ВЫБРАТЬ

                                               ВТ_Продажи. Номенклатура

                                       ИЗ

                                               ВТ_Продажи КАК ВТ_Продажи)) КАК ОстаткиНоменклатурыОбороты

               ПО ВТ_Продажи. Номенклатура = ОстаткиНоменклатурыОбороты. Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

       ВТ_ПродажиПоДатам. Номенклатура,

       МАКСИМУМ(ВТ_ПродажиПоДатам. Количество) КАК Количество,

       СУММА(ВТ_ПродажиПоДатам. Себестоимость) КАК Себестоимость,

       МАКСИМУМ(ВТ_ПродажиПоДатам. Продажа) КАК Продажа,

       МИНИМУМ(ВТ_ПродажиПоДатам. Дата) КАК ПерваяПродажа,

       МАКСИМУМ(ВТ_ПродажиПоДатам. Дата) КАК ПоследняяПродажа,

       КОЛИЧЕСТВО(ВТ_ПродажиПоДатам. Номенклатура) КАК КолОтгрузок

ПОМЕСТИТЬ ВТ_Результат

ИЗ

       ВТ_ПродажиПоДатам КАК ВТ_ПродажиПоДатам

СГРУППИРОВАТЬ ПО

       ВТ_ПродажиПоДатам. Номенклатура

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

       ВТ_Результат. Номенклатура,

       ВТ_Результат. Количество,

       ВТ_Результат. Себестоимость,

       ВТ_Результат. Продажа,

       ВТ_Результат. Продажа - ВТ_Результат. Себестоимость КАК Прибыль,

       ВЫБОР

               КОГДА ВТ_Результат. КолОтгрузок = 0

                       ТОГДА 0

               ИНАЧЕ ВЫБОР

                               КОГДА ВТ_Результат. КолОтгрузок = 1

                                       ТОГДА "Разовая"

                               ИНАЧЕ РАЗНОСТЬДАТ(ВТ_Результат. ПерваяПродажа, ВТ_Результат. ПоследняяПродажа, ДЕНЬ) / ВТ_Результат. КолОтгрузок

                       КОНЕЦ

       КОНЕЦ КАК Интервал,

       РАЗНОСТЬДАТ(ВТ_Результат. ПоследняяПродажа, &КонецПериода, ДЕНЬ) КАК Срок

ИЗ

       ВТ_Результат КАК ВТ_Результат

РН «ОстаткиНоменклатуры» (остатки)

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10