Материал: Автоматизация учета бракованной продукции

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

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

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;

ИначеЕсли (МОЛ <> ОтветственныйЗаИсправление) тогда

// регистр Управленческий Д28 К70

Движение = Движения.Управленческий.Добавить();

Движение.СчетДт = ПланыСчетов.Управленческий.БракВПроизводстве;

Движение.СчетКт = ПланыСчетов.Управленческий.РасчетыСПерсоналомПоОплатеТруда;

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

Движение.Сумма = ОплатаЗаИсправление / КоличествоПартий;

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

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = ОтветственныйЗаИсправление;

// регистр Управленческий Д28 К69

Движение = Движения.Управленческий.Добавить();

Движение.СчетДт = ПланыСчетов.Управленческий.БракВПроизводстве;

Движение.СчетКт = ПланыСчетов.Управленческий.РасчетыПоСоциальномуСтрахованиюИОбеспечению;

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

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;

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

Движение.Сумма = ОплатаЗаИсправление * ФСЗН / КоличествоПартий;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = ОтветственныйЗаИсправление;

// регистр Управленческий Д28 К76

Движение = Движения.Управленческий.Добавить();

Движение.СчетДт = ПланыСчетов.Управленческий.БракВПроизводстве;

Движение.СчетКт = ПланыСчетов.Управленческий.РасчетыПоИмущественномуИЛичномуСтрахованию;

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

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;

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

Движение.Сумма = ОплатаЗаИсправление * Страховые / КоличествоПартий;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = ОтветственныйЗаИсправление;

// регистр Управленческий Д73 К28

Движение = Движения.Управленческий.Добавить();

Движение.СчетДт = ПланыСчетов.Управленческий.РасчетыПоВозмещениюУщерба;

Движение.СчетКт = ПланыСчетов.Управленческий.БракВПроизводстве;

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

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;

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

Движение.Сумма = (ОбщаяСуммаМатериалов / КоличествоПартий) + (ОплатаЗаИсправление / КоличествоПартий) + (ОплатаЗаИсправление * ФСЗН / КоличествоПартий) + (ОплатаЗаИсправление * Страховые / КоличествоПартий);

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;

Иначе

// регистр Управленческий Д20 К28

// В случае отсутствия затрат проводка не формируется

Если (ОбщаяСуммаМатериалов > 0) тогда

Движение = Движения.Управленческий.Добавить();

Движение.СчетДт = ПланыСчетов.Управленческий.ОсновноеПроизводство;

Движение.СчетКт = ПланыСчетов.Управленческий.БракВПроизводстве;

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

Движение.Сумма = (ОбщаяСуммаМатериалов / КоличествоПартий) + (ОплатаЗаИсправление / КоличествоПартий) + (ОплатаЗаИсправление * ФСЗН / КоличествоПартий) + (ОплатаЗаИсправление * Страховые / КоличествоПартий);

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

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

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;

КонецЕсли;

КонецЕсли;

КонецЦикла;

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

Листинг И.2 - Код модуля формы документа АктОбИсправимомБраке

Примечание - Источник: собственная разработка

&НаСервере

Функция ЦенаНоменклатуры(Номенклатура)

Возврат Номенклатура.Цена;

КонецФункции

&НаКлиенте

Функция РасчётСуммы(Количество, Цена)

Возврат Количество * Цена;

КонецФункции

&НаКлиенте

Процедура СписокБракованныхТоваровНоменклатураПриИзменении(Элемент)

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

Элем.Цена = ЦенаНоменклатуры(Элем.Номенклатура);

Элем.Сумма = РасчётСуммы(Элем.Количество, Элем.Цена);

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

&НаКлиенте

Процедура СписокБракованныхТоваровКоличествоПриИзменении(Элемент)

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

Элем.Сумма = РасчётСуммы(Элем.Количество, Элем.Цена);

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

&НаКлиенте

Процедура МатериалыНаИсправлениеНоменклатураПриИзменении(Элемент)

Элем = Элементы.МатериалыНаИсправление.ТекущиеДанные;

Элем.Цена = ЦенаНоменклатуры(Элем.Номенклатура);

Элем.Сумма = РасчётСуммы(Элем.Количество, Элем.Цена);

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

&НаКлиенте

Процедура МатериалыНаИсправлениеКоличествоПриИзменении(Элемент)

Элем = Элементы.МатериалыНаИсправление.ТекущиеДанные;

Элем.Сумма = РасчётСуммы(Элем.Количество, Элем.Цена);

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

&НаКлиенте

Процедура ОплатаЗаИсправлениеПриИзменении(Элемент)

ОтветственныйМОЛ();

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

&НаКлиенте

Процедура ОтветственныйМОЛ()

Если (Объект.МОЛ = Объект.ОтветственныйЗаИсправление) тогда

Объект.ОплатаЗаИсправление = 0;

КонецЕсли;

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

&НаКлиенте

Процедура МОЛПриИзменении(Элемент)

ОтветственныйМОЛ();

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

&НаКлиенте

Процедура ОтветственныйЗаИсправлениеПриИзменении(Элемент)

ОтветственныйМОЛ();

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