Билет 15

Оперативный учет

Компания занимается оптовой торговлей. Поступление товаров отражается документом «Приходная накладная», продажа – «Расходная накладная». Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части.

Складской учет товаров не ведется.

Списание себестоимости товаров должно быть организовано по партиям, в зависимости метода списания (FIFO или LIFO), принятого в учетной политике. Значение учетной политики меняется не чаще одного раза в год. При проведении документа необходимо использовать метод, актуальный на момент проведения.

Дополнительные затраты при продаже вводятся отдельным документом «Дополнительные затраты» с указанием расходной накладной, к которой относятся эти затраты, номенклатуры и суммы затрат по каждой номенклатурной позиции.

Необходимо построить отчет по продажам товаров за период. В отчете себестоимость должна отражаться с учетом распределенных затрат, вне зависимости от того, в каком периоде был введен документ «Дополнительные затраты».

Продажи с 01.01.2010 по 31.03.2010

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

Кол-во

Себест-сть

Продажа

Прибыль

Куртка замшевая

3

300

620

320

Портсигар

3

30

50

20

Доставка

1

100

100


Прибыль рассчитывается как: «Сумма продаж» - «Себестоимость».

Справочник «Номенклатура», рекв. Услуга (булево)

Документ «ПриходнаяНакладная»

ТЧ СписокНоменклатуры : Номенклатура (параметры выбора Отбор. Услуга(Ложь)), Количество, Сумма

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

Процедура ОбработкаПроведения(Отказ, Режим)

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

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

       

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

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

       Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл

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

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

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

               Движение. Номенклатура = ТекСтрокаСписокНоменклатуры. Номенклатура;

               Движение. Партия = Ссылка;

               Движение. Количество = ТекСтрокаСписокНоменклатуры. Количество;

               Движение. Сумма = ТекСтрокаСписокНоменклатуры. Сумма;

       КонецЦикла;

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

Документ «РасходнаяНакладная»

ТЧ СписокНоменклатуры: Номенклатура, Количество, Сумма

Процедура ОбработкаПроведения(Отказ, Режим)

       

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

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

       

       Движения. Продажи. Очистить();

       Движения. Продажи. Записать();

       

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

       Движения. Продажи. Записывать = Истина;

       

       

       Блокировка = Новый БлокировкаДанных;

       ЭлементБлокировки = Блокировка. Добавить("РегистрНакопления. ОстаткиНоменклатуры");

       ЭлементБлокировки. Режим = РежимБлокировкиДанных. Исключительный;

       ЭлементБлокировки. ИсточникДанных = СписокНоменклатуры;

       ЭлементБлокировки. ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");

       Блокировка. Заблокировать();

       

       УчетнаяПолитика = РегистрыСведений. УчетнаяПолитика. ПолучитьПоследнее(МоментВремени()).Значение;

       Если УчетнаяПолитика = Перечисления. УчетнаяПолитика. ФИФО Тогда

               Сортировка = " ";

       ИначеЕсли УчетнаяПолитика = Перечисления. УчетнаяПолитика. ЛИФО Тогда

               Сортировка = " УБЫВ ";

       Иначе

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

               Сообщение. Текст = "Не установлена учетная политика";

               Сообщение. Поле = "";

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

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

               Возврат;

       КонецЕсли;

       

       

       Запрос = Новый Запрос;

       Запрос. Текст =

       "ВЫБРАТЬ

       |        РасходнаяНакладнаяСписокНоменклатуры. Номенклатура КАК Номенклатура,

       |        МИНИМУМ(РасходнаяНакладнаяСписокНоменклатуры. НомерСтроки) КАК НомерСтроки,

       |        СУММА(РасходнаяНакладнаяСписокНоменклатуры. Количество) КАК Количество,

       |        СУММА(РасходнаяНакладнаяСписокНоменклатуры. Сумма) КАК Сумма

       |ПОМЕСТИТЬ ВТ_ТЧ

       |ИЗ

       |        Документ. РасходнаяНакладная. СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры

       |ГДЕ

       |        РасходнаяНакладнаяСписокНоменклатуры. Ссылка = &Ссылка

       |

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

       |        РасходнаяНакладнаяСписокНоменклатуры. Номенклатура

       |

       |ИНДЕКСИРОВАТЬ ПО

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

       |;

       |

       |////////////////////////////////////////////////////////////////////////////////

       |ВЫБРАТЬ

       |        ВТ_ТЧ. Номенклатура КАК Номенклатура,

       |        ВТ_ТЧ. НомерСтроки КАК НомерСтроки,

       |        ВТ_ТЧ. Количество КАК Количество,

       |        ВТ_ТЧ. Сумма КАК Сумма,

       |        ОстаткиНоменклатурыОстатки. Партия,

       |        ЕСТЬNULL(ОстаткиНоменклатурыОстатки. КоличествоОстаток, 0) КАК КолОст,

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

       |ИЗ

       |        ВТ_ТЧ КАК ВТ_ТЧ

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

       |                                &МоментВремени,

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

       |                                        (ВЫБРАТЬ

       |                                                ВТ_ТЧ. Номенклатура

       |                                        ИЗ

       |                                                ВТ_ТЧ КАК ВТ_ТЧ)) КАК ОстаткиНоменклатурыОстатки

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

       |

       |УПОРЯДОЧИТЬ ПО

       |        ОстаткиНоменклатурыОстатки. Партия. МоментВремени" + Сортировка +"

       |ИТОГИ

       |        МИНИМУМ(НомерСтроки),

       |        МАКСИМУМ(Количество),

       |        МАКСИМУМ(Сумма),

       |        СУММА(КолОст)

       |ПО

       |        Номенклатура";

       

       Запрос. УстановитьПараметр("МоментВремени", МоментВремени());

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