Требуется организовать возможность учета продажи комплектов. В системе должна храниться информация о составе комплекта (какие номенклатурные позиции и в каком количестве входят в данный комплект). В состав комплекта не могут входить другие комплекты. Следует обеспечить уникальность деталей в рамках комплектов, т. е. одна и та же деталь не должна входить в состав разных комплектов.
Операция сборки как таковая в компании не осуществляется. Когда покупатель приходит получать комплект ответственный сотрудник компании в соответствии со спецификацией отгружает необходимое количество комплектующих.
Продажи осуществляются документом «Расходная накладная». В табличной части документа указываются комплекты и их количество.
Документ реализует следующие проводки:
Дт «Прибыли и убытки» - Кт «Товары» на количество и себестоимость списываемых комплектующих.
В случае продажи комплекта необходимо списать его комплектующие согласно составу комплекта
Дт «Покупатели» - Кт «Прибыли и убытки» на сумму в продажных ценах.
Себестоимость рассчитывается как средняя по номенклатурной позиции на складе.
Необходимо построить отчет по продажам комплектов за период.
Продажи комплектов за период с 01.01.2010 по 31.01.2010
Комплект | Продажа | Себестоимость |
Комплект № 1 | 500 000 | 200 000 |
Комплект № 3 | 620 000 | 350 000 |
Справочник «Номенклатура» рекв. Комплект (булево)
Справочник «Склады»
Документ «ПриходнаяНакладная»
Рекв: Склад
ТЧ СписокНоменклатуры: Номенклатура (параметры выбора Отбор. Комплект(Ложь)), Количество, Сумма.
Процедура ОбработкаПроведения(Отказ, Режим)
Движения. Хозрасчетный. Очистить();
Движения. Хозрасчетный. Записать();
Движения. Хозрасчетный. Записывать = Истина;
Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл
Движение = Движения. Хозрасчетный. Добавить();
Движение. СчетДт = ПланыСчетов. Управленческий. Товары;
Движение. СчетКт = ПланыСчетов. Управленческий. Покупатели;
Движение. Период = Дата;
Движение. КоличествоДт = ТекСтрокаСписокНоменклатуры. Количество;
Движение. Сумма = ТекСтрокаСписокНоменклатуры. Сумма;
Движение. СубконтоДт[ПланыВидовХарактеристик. ВидыСубконто. Номенклатура] = ТекСтрокаСписокНоменклатуры. Номенклатура;
Движение. СубконтоДт[ПланыВидовХарактеристик. ВидыСубконто. Склады] = Склад;
КонецЦикла;
КонецПроцедуры
Документ «РасходнаяНакладная»
Рекв: Склад
ТЧ СписокНоменклатуры: Номенклатура (параметры выбора Отбор. Комплект(Истина)), Количество, Сумма.
Процедура ОбработкаПроведения(Отказ, Режим)
Движения. Хозрасчетный. Очистить();
Движения. Хозрасчетный. Записать();
Движения. Хозрасчетный. Записывать = Истина;
Запрос = Новый Запрос;
Запрос. МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос. Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры. Номенклатура КАК Комплект,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры. Количество) КАК Количество,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры. Сумма) КАК Сумма,
| МИНИМУМ(РасходнаяНакладнаяСписокНоменклатуры. НомерСтроки) КАК НомерСтроки
|ПОМЕСТИТЬ ВТ_ТЧ
|ИЗ
| Документ. РасходнаяНакладная. СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры. Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры. Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Комплект
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ТЧ. Комплект,
| ВТ_ТЧ. Количество,
| ВТ_ТЧ. Сумма,
| ВТ_ТЧ. НомерСтроки,
| СоставКомплекта. Деталь,
| ЕСТЬNULL(СоставКомплекта. Количество, 0) КАК КолВКомплекте
|ПОМЕСТИТЬ ВТ_Детали
|ИЗ
| ВТ_ТЧ КАК ВТ_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений. СоставКомплекта КАК СоставКомплекта
| ПО ВТ_ТЧ. Комплект = СоставКомплекта. Комплект
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_Детали. Деталь
|ИЗ
| ВТ_Детали КАК ВТ_Детали";
Запрос. УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос. Выполнить();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка. Добавить("РегистрБухгалтерии. Хозрасчетный");
ЭлементБлокировки. УстановитьЗначение("Счет", ПланыСчетов. Управленческий. Товары);
ЭлементБлокировки. ИсточникДанных = РезультатЗапроса;
ЭлементБлокировки. ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик. ВидыСубконто. Номенклатура, "Деталь");
ЭлементБлокировки. УстановитьЗначение(ПланыВидовХарактеристик. ВидыСубконто. Склады, Склад);
Блокировка. Заблокировать();
Запрос. Текст =
"ВЫБРАТЬ
| ВТ_Детали. Деталь,
| ВТ_Детали. НомерСтроки,
| ВТ_Детали. Комплект КАК Комплект,
| ВТ_Детали. Количество КАК КоличествоКомплектов,
| ВТ_Детали. КолВКомплекте * ВТ_Детали. Количество КАК КоличествоДеталей,
| ВТ_Детали. Сумма КАК Сумма,
| ЕСТЬNULL(ХозрасчетныйОстатки. КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЕСТЬNULL(ХозрасчетныйОстатки. СуммаОстаток, 0) КАК СуммаОстаток
|ИЗ
| ВТ_Детали КАК ВТ_Детали
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии. Хозрасчетный. Остатки(
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 |


