Движение.КоличествоДт = ТекСтрокаСписокБракованныхТоваров.Количество;
Движение.КоличествоКт = ТекСтрокаСписокБракованныхТоваров.Количество;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;
ИначеЕсли (МОЛ <> ОтветственныйЗаИсправление) тогда
// регистр Управленческий Д28 К70
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.БракВПроизводстве;
Движение.СчетКт = ПланыСчетов.Управленческий.РасчетыСПерсоналомПоОплатеТруда;
Движение.Период = Дата;
Движение.Сумма = ОплатаЗаИсправление / КоличествоПартий;
Движение.КоличествоДт = ТекСтрокаСписокБракованныхТоваров.Количество;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = ОтветственныйЗаИсправление;
// регистр Управленческий Д28 К69
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.БракВПроизводстве;
Движение.СчетКт = ПланыСчетов.Управленческий.РасчетыПоСоциальномуСтрахованиюИОбеспечению;
Движение.КоличествоДт = ТекСтрокаСписокБракованныхТоваров.Количество;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;
Движение.Период = Дата;
Движение.Сумма = ОплатаЗаИсправление * ФСЗН / КоличествоПартий;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = ОтветственныйЗаИсправление;
// регистр Управленческий Д28 К76
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.БракВПроизводстве;
Движение.СчетКт = ПланыСчетов.Управленческий.РасчетыПоИмущественномуИЛичномуСтрахованию;
Движение.КоличествоДт = ТекСтрокаСписокБракованныхТоваров.Количество;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;
Движение.Период = Дата;
Движение.Сумма = ОплатаЗаИсправление * Страховые / КоличествоПартий;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = ОтветственныйЗаИсправление;
// регистр Управленческий Д73 К28
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.РасчетыПоВозмещениюУщерба;
Движение.СчетКт = ПланыСчетов.Управленческий.БракВПроизводстве;
Движение.КоличествоКт = ТекСтрокаСписокБракованныхТоваров.Количество;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;
Движение.Период = Дата;
Движение.Сумма = (ОбщаяСуммаМатериалов / КоличествоПартий) + (ОплатаЗаИсправление / КоличествоПартий) + (ОплатаЗаИсправление * ФСЗН / КоличествоПартий) + (ОплатаЗаИсправление * Страховые / КоличествоПартий);
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;
Иначе
// регистр Управленческий Д20 К28
// В случае отсутствия затрат проводка не формируется
Если (ОбщаяСуммаМатериалов > 0) тогда
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Управленческий.ОсновноеПроизводство;
Движение.СчетКт = ПланыСчетов.Управленческий.БракВПроизводстве;
Движение.Период = Дата;
Движение.Сумма = (ОбщаяСуммаМатериалов / КоличествоПартий) + (ОплатаЗаИсправление / КоличествоПартий) + (ОплатаЗаИсправление * ФСЗН / КоличествоПартий) + (ОплатаЗаИсправление * Страховые / КоличествоПартий);
Движение.КоличествоДт = ТекСтрокаСписокБракованныхТоваров.Количество;
Движение.КоличествоКт = ТекСтрокаСписокБракованныхТоваров.Количество;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Подразделение] = Подразделение;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.МОЛ] = МОЛ;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.ПричинаБрака] = ПричинаБрака;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатуры] = ТекСтрокаСписокБракованныхТоваров.Номенклатура;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Листинг И.2 - Код модуля формы документа АктОбИсправимомБраке
Примечание - Источник: собственная разработка
&НаСервере
Функция ЦенаНоменклатуры(Номенклатура)
Возврат Номенклатура.Цена;
КонецФункции
&НаКлиенте
Функция РасчётСуммы(Количество, Цена)
Возврат Количество * Цена;
КонецФункции
&НаКлиенте
Процедура СписокБракованныхТоваровНоменклатураПриИзменении(Элемент)
Элем = Элементы.СписокБракованныхТоваров.ТекущиеДанные;
Элем.Цена = ЦенаНоменклатуры(Элем.Номенклатура);
Элем.Сумма = РасчётСуммы(Элем.Количество, Элем.Цена);
КонецПроцедуры
&НаКлиенте
Процедура СписокБракованныхТоваровКоличествоПриИзменении(Элемент)
Элем = Элементы.СписокБракованныхТоваров.ТекущиеДанные;
Элем.Сумма = РасчётСуммы(Элем.Количество, Элем.Цена);
КонецПроцедуры
&НаКлиенте
Процедура МатериалыНаИсправлениеНоменклатураПриИзменении(Элемент)
Элем = Элементы.МатериалыНаИсправление.ТекущиеДанные;
Элем.Цена = ЦенаНоменклатуры(Элем.Номенклатура);
Элем.Сумма = РасчётСуммы(Элем.Количество, Элем.Цена);
КонецПроцедуры
&НаКлиенте
Процедура МатериалыНаИсправлениеКоличествоПриИзменении(Элемент)
Элем = Элементы.МатериалыНаИсправление.ТекущиеДанные;
Элем.Сумма = РасчётСуммы(Элем.Количество, Элем.Цена);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЗаИсправлениеПриИзменении(Элемент)
ОтветственныйМОЛ();
КонецПроцедуры
&НаКлиенте
Процедура ОтветственныйМОЛ()
Если (Объект.МОЛ = Объект.ОтветственныйЗаИсправление) тогда
Объект.ОплатаЗаИсправление = 0;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура МОЛПриИзменении(Элемент)
ОтветственныйМОЛ();
КонецПроцедуры
&НаКлиенте
Процедура ОтветственныйЗаИсправлениеПриИзменении(Элемент)
ОтветственныйМОЛ();
КонецПроцедуры