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

Анализ предметной области. Разработка информационной системы учёта бракованной продукции в "1С: Предприятие 8.2". Создание констант, документов, плана счетов, справочников, отчётов, регистров накопления. Характеристика пользовательского интерфейса.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.10.2015
Размер файла 8,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

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

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

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

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

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

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

Движение.Сумма = ТекСтрока.Сумма;

ОбщаяСуммаМатериалов = ОбщаяСуммаМатериалов + ТекСтрока.Сумма;

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

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

КонецЦикла;

КоличествоПартий = СписокБракованныхТоваров.Количество();

Для Каждого ТекСтрокаСписокБракованныхТоваров Из СписокБракованныхТоваров Цикл

// рагистр ИсправимыйВнутреннийБрак

Движение = Движения.ИсправимыйВнутреннийБрак.Добавить();

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

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

Движение.МОЛ = МОЛ;

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

Движение.ПричинаБрака = ПричинаБрака;

Движение.ОтветственныйЗаИсправление = ОтветственныйЗаИсправление;

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

// стоимость оплаты за исправление и стоимость затраченных ресурсов записываются пропорционально количеству бракованных партий продукции

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

Движение.СтоимостьЗатраченныхМатериалов = ОбщаяСуммаМатериалов / КоличествоПартий;

Если (ПричинаБрака = Перечисления.ПричинаБрака.Технический) тогда

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Иначе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

КонецЕсли;

КонецЦикла;

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

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

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

&НаСервере

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

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

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

&НаКлиенте

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

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

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

&НаКлиенте

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

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

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

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

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

&НаКлиенте

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

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

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

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

&НаКлиенте

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

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

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

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

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

&НаКлиенте

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

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

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

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

&НаКлиенте

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

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

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

&НаКлиенте

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

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

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

КонецЕсли;

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

&НаКлиенте

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

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

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

&НаКлиенте

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

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

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

Размещено на Allbest.ur


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.