Диплом: Автоматизация учета заказов типографии ООО "АР-Принт"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
118
Приложение Б. Диаграмма IDEF0 в контексте TO-BE
Рис. Б.1 – Блок А1 «Формирование заказа»
Рис. Б.1 – Блок А2 «Обеспечение расходными материалами»
119
Рис. Б.1 – Блок А3 «Выполнение заказа»
120
Приложение В. Исходные коды
1. Исходный код: Процедуры и функции модуля формы документа
«Заказ»
/// Рассчёт параметров заказа
&НаСервере
Функция ПолучитьСтоимостьМатериалов(Материал)
Возврат РегистрыСведений.ЦеныМатериалов.ПолучитьПоследнее(ТекущаяДата(),
Новый Структура("НаименованиеМатериала",Материал)).цена;
КонецФункции
&НаКлиенте
Процедура РассчитатьСуммуСтроки()
Строка = Элементы.Материалы.ТекущиеДанные;
Строка.Сумма = Строка.Цена*Строка.Количество;
РассчитатьСтоимостьЗаказа();
КонецПроцедуры
&НаСервере
Процедура РассчитатьСтоимостьЗаказа()
Объект.Тираж = ПолучитьТираж(Объект.Количество);
Объект.Цена =
РегистрыСведений.СтоимостьИзготовленияПродукции.ПолучитьПоследнее(
ТекущаяДата(), Новый Структура("ВидПродукции,
Тираж",Объект.Продукция, Объект.Тираж)).Цена;
Объект.Стоимость = Объект.Цена*Объект.Количество;
ЗаполнитьМатериалы();
КонецПроцедуры
&НаСервере
Функция ПолучитьТираж(Количество)
121
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Тираж.Ссылка КАК Тираж
|ИЗ
| Справочник.Тираж КАК Тираж
|ГДЕ
| Тираж.От <= &Количество
| И Тираж.До >= &Количество";
Запрос.УстановитьПараметр("Количество", Количество);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Возврат ВыборкаДетальныеЗаписи.Тираж;
КонецЦикла;
КонецФункции
&НаСервере
Процедура ЗаполнитьМатериалы()
Объект.Материалы.Очистить();
Для Каждого Материал из Объект.Продукция.МатериалыДляПроизводства цикл
НоваяСтрока = Объект.Материалы.Добавить();
НоваяСтрока.Наименование = Материал.Наименование;
НоваяСтрока.Количество = Материал.Количество*Объект.Количество;
НоваяСтрока.Цена =
ПолучитьСтоимостьМатериалов(Материал.Наименование);
НоваяСтрока.Сумма = НоваяСтрока.Количество*НоваяСтрока.Цена;
КонецЦикла;
КонецПроцедуры
122
&НаКлиенте
Процедура КоличествоПриИзменении(Элемент)
РассчитатьСтоимостьЗаказа();
КонецПроцедуры
&НаКлиенте
Процедура ПродукцияПриИзменении(Элемент)
РассчитатьСтоимостьЗаказа();
КонецПроцедуры
&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)
РассчитатьСуммуСтроки();
КонецПроцедуры
&НаКлиенте
Процедура МатериалыЦенаПриИзменении(Элемент)
РассчитатьСуммуСтроки();
КонецПроцедуры
&НаКлиенте
Процедура МатериалыПриИзменении(Элемент)
Строка = Элементы.Материалы.ТекущиеДанные;
Строка.Цена = ПолучитьСтоимостьМатериалов(Строка.Наименование);
РассчитатьСуммуСтроки();
КонецПроцедуры
123
2. Исходный код: Процедуры обработки проведения документа
«Поступление оплаты»
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения
будут утеряны!!!
// регистр ДенежныеОбороты Приход
Движения.ДенежныеОбороты.Записывать = Истина;
Движение = Движения.ДенежныеОбороты.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Контрагент = Клиент;
Движение.Сумма = СуммаОплаты;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения
будут утеряны!!!
Дата = ДанныеЗаполнения.Дата+60*60*24*1;
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
// Заполнение шапки
СуммаОплаты = ДанныеЗаполнения.Стоимость;
Клиент = ДанныеЗаполнения.Клиент;
ПоЗаказу = ДанныеЗаполнения.Ссылка;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
124
3. Исходный код: Процедуры обработки проведения документа «Оплата
поставщику»
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения
будут утеряны!!!
// регистр ДенежныеОбороты Расход
Движения.ДенежныеОбороты.Записывать = Истина;
Движение = Движения.ДенежныеОбороты.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Контрагент = Поставщик;
Движение.Сумма = СуммаОплаты;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения
будут утеряны!!!
Дата = ДанныеЗаполнения.Дата+60*60*24*1;
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаявкаПоставщику")
Тогда
// Заполнение шапки
Поставщик = ДанныеЗаполнения.Поставщик;
ПоЗаявке = ДанныеЗаполнения.Ссылка;
СуммаОплаты = ДанныеЗаполнения.Материалы.Итог("Сумма");
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
125
4. Исходный код: Процедуры обработки проведения документа
«Приходная накладная»
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиМатериалов.Записывать = Истина;
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.НаименованиеМатериала = ТекСтрокаМатериалы.Наименование;
Движение.Количество = ТекСтрокаМатериалы.Количество;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения
будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаявкаПоставщику")
Тогда
// Заполнение шапки
Поставщик = ДанныеЗаполнения.Поставщик;
ПоЗаявке = ДанныеЗаполнения.Ссылка;
Дата = ДанныеЗаполнения.Дата+60*60*24*1;
Для Каждого ТекСтрокаМатериалы Из ДанныеЗаполнения.Материалы Цикл
НоваяСтрока = Материалы.Добавить();
НоваяСтрока.Количество = ТекСтрокаМатериалы.Количество;
НоваяСтрока.Наименование = ТекСтрокаМатериалы.Наименование;
НоваяСтрока.Сумма = ТекСтрокаМатериалы.Сумма;
НоваяСтрока.Цена = ТекСтрокаМатериалы.Цена;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
126
5. Исходный код: Процедуры обработки проведения документа
«Выполнение заказа»
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиМатериалов.Записывать = Истина;
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
Если ТекСтрокаМатериалы.Количество<
ПолучитьОстаткиМатериалов(ТекСтрокаМатериалы.Наименование) тогда
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.НаименованиеМатериала =
ТекСтрокаМатериалы.Наименование;
Движение.Количество = ТекСтрокаМатериалы.Количество;
иначе
Сообщить("Внимание! Материала "+
ТекСтрокаМатериалы.Наименование
+" не достаточно для производства, остаток на складе"+
ПолучитьОстаткиМатериалов(ТекСтрокаМатериалы.Наименование));
Отказ = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Функция ПолучитьОстаткиМатериалов(Материал)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиМатериаловОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиМатериалов.Остатки(,
НаименованиеМатериала = &Материал) КАК ОстаткиМатериаловОстатки";
127
Запрос.УстановитьПараметр("Материал", Материал);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Количество()=0 тогда
Возврат 0;
иначе
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Возврат ВыборкаДетальныеЗаписи.КоличествоОстаток
КонецЦикла;
КонецЕсли;
КонецФункции
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения
будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
// Заполнение шапки
Заказ = ДанныеЗаполнения.Ссылка;
Дата = ДанныеЗаполнения.Дата+60*60*24*3;
Для Каждого ТекСтрокаМатериалы Из ДанныеЗаполнения.Материалы Цикл
НоваяСтрока = Материалы.Добавить();
НоваяСтрока.Количество = ТекСтрокаМатериалы.Количество;
НоваяСтрока.Наименование = ТекСтрокаМатериалы.Наименование;
НоваяСтрока.Сумма = ТекСтрокаМатериалы.Сумма;
НоваяСтрока.Цена = ТекСтрокаМатериалы.Цена;
КонецЦикла;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
«Управление ресурсами проекта» (на примере организации ООО «ЛАКОСТЭ»)
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)