Билет 9
Оперативный учет
Организация занимается оптовой торговлей. Для описания товаров существуют различные характеристики, набор которых составляет свойство. Учет товаров ведется в разрезе свойств этих товаров, причем для каждого товара набор этих свойств может быть произвольный. Например, «ботинки черные 42 размера», «ботинки коричневые 42 размера» и «ботинки коричневые 44 размера утепленные» это один товар «ботинки», но с разными свойствами. «Черные 42 размера» будет являться свойством, а цвет «черный» и размер «42» являются характеристиками.
Поступление товаров отражается документом «Приходная накладная», продажа - «Расходная накладная». И в документе поступления, и в документе списания для каждого товара указывается его свойство.
Механизм свойств и характеристик товаров должен быть реализован с использованием плана видов характеристик.
Складской учет товаров не ведется.
Списание себестоимости товаров должно быть организовано в разрезе свойств.
Необходимо построить отчет о движениях товаров за период по выбранной характеристике в количественном и суммовом выражении.
Ведомость товаров с 01.01.2010 по 31.03.2010 по характеристике «производитель».
Харак-ка | Товар | Нач. остаток | Приход | Расход | Кон. остаток |
Adidas | |||||
Куртка замшевая | 2 | 4 | 5 | 1 | |
Портсигар | 1 | 2 | 3 | ||
Puma | |||||
Куртка замшевая | 1 | 2 | 3 | ||
Nike | |||||
Куртка замшевая | 3 | 1 | 2 |
****************************************************************************
Справочник «Номенклатура»
Справочник «Свойства»

Справочник «ЗначенияХарактеристик»

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


