Билет 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 |


