Файл: Проектирование реализации операций бизнес-процесса «Продажи».pdf
Добавлен: 30.04.2023
Просмотров: 193
Скачиваний: 3
СОДЕРЖАНИЕ
1.1 Выбор комплекса задач автоматизации
1.2 Характеристика существующих бизнес-процессов
1.3 Характеристики документооборота, возникающего при решении задач
1.4 Обоснование проектных решений по информационному обеспечению
1.5 Обоснование проектных решений по программному обеспечению
2.1. Информационная модель и её описание
2.2. Характеристика нормативно-справочной, входной и оперативной информации
2.3 Характеристика результатной информации
2.4. Программное обеспечение задачи
2.5 Характеристика базы данных
2.7 Описание программных модулей
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
ТабДок = Новый ТабличныйДокумент;
Печать(ТабДок, ПараметрКоманды);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}
КонецПроцедуры
&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
Документы.ПервичныйИнтересКлиента.Печать(ТабДок, ПараметрКоманды);
КонецПроцедуры
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.УтверждениеПроекта.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УтверждениеПроекта.Дата,
| УтверждениеПроекта.Номер,
| УтверждениеПроекта.ОписаниеПроекта,
| УтверждениеПроекта.ПараметрыПроекта.(
| НомерСтроки,
| ЦельПроекта,
| ЗаказчикПроекта,
| РуководительПроекта,
| БюджетПроекта,
| СрокНачалаПроекта,
| СрокОкончанияПроекта
| )
|ИЗ
| Документ.УтверждениеПроекта КАК УтверждениеПроекта
|ГДЕ
| УтверждениеПроекта.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьПараметрыПроектаШапка = Макет.ПолучитьОбласть("ПараметрыПроектаШапка");
ОбластьПараметрыПроекта = Макет.ПолучитьОбласть("ПараметрыПроекта");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьПараметрыПроектаШапка);
ВыборкаПараметрыПроекта = Выборка.ПараметрыПроекта.Выбрать();
Пока ВыборкаПараметрыПроекта.Следующий() Цикл
ОбластьПараметрыПроекта.Параметры.Заполнить(ВыборкаПараметрыПроекта);
ТабДок.Вывести(ОбластьПараметрыПроекта, ВыборкаПараметрыПроекта.Уровень());
КонецЦикла;
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
ТабДок = Новый ТабличныйДокумент;
Печать(ТабДок, ПараметрКоманды);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}
КонецПроцедуры
&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
Документы.УтверждениеПроекта.Печать(ТабДок, ПараметрКоманды);
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр Продажи
Движения.Продажи.Записывать = Истина;
Для Каждого ТекСтрокаИнформацияОЗаказе Из ИнформацияОЗаказе Цикл
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.НаименованиеКлиента = НаименованиеКлиента;
Движение.Договор = Договор;
Движение.Услуга = ТекСтрокаИнформацияОЗаказе.Услуга;
Движение.Инженер = Инженер;
Движение.Выручка = ТекСтрокаИнформацияОЗаказе.СтоимостьУслуги;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр Прибыль Приход
Движения.Прибыль.Записывать = Истина;
Для Каждого ТекСтрокаИнформацияОЗаказе Из ИнформацияОЗаказе Цикл
Движение = Движения.Прибыль.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.НаименованиеКлиента = НаименованиеКлиента;
Движение.Договор = Договор;
Движение.Услуга = ТекСтрокаИнформацияОЗаказе.Услуга;
Движение.Инженер = Инженер;
Движение.Прибыль = ТекСтрокаИнформацияОЗаказе.СтоимостьУслуги;
КонецЦикла;
КонецПроцедуры
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.ЗаказКлиента.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Дата,
| ЗаказКлиента.Договор,
| ЗаказКлиента.Инженер,
| ЗаказКлиента.НаименованиеКлиента,
| ЗаказКлиента.Номер,
| ЗаказКлиента.ПриоритетЗаказа,
| ЗаказКлиента.СтатусЗаказа,
| ЗаказКлиента.ИнформацияОЗаказе.(
| НомерСтроки,
| Услуга,
| СтоимостьУслуги
| )
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|ГДЕ
| ЗаказКлиента.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьИнформацияОЗаказеШапка = Макет.ПолучитьОбласть("ИнформацияОЗаказеШапка");
ОбластьИнформацияОЗаказе = Макет.ПолучитьОбласть("ИнформацияОЗаказе");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьИнформацияОЗаказеШапка);
ВыборкаИнформацияОЗаказе = Выборка.ИнформацияОЗаказе.Выбрать();
Пока ВыборкаИнформацияОЗаказе.Следующий() Цикл
ОбластьИнформацияОЗаказе.Параметры.Заполнить(ВыборкаИнформацияОЗаказе);
ТабДок.Вывести(ОбластьИнформацияОЗаказе, ВыборкаИнформацияОЗаказе.Уровень());
КонецЦикла;
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
// Заполнение шапки
Договор = ДанныеЗаполнения.Договор;
Инженер = ДанныеЗаполнения.Инженер;
НаименованиеКлиента = ДанныеЗаполнения.НаименованиеКлиента;
Для Каждого ТекСтрокаИнформацияОЗаказе Из ДанныеЗаполнения.ИнформацияОЗаказе Цикл
НоваяСтрока = ИнформацияОЗаказе.Добавить();
НоваяСтрока.СтоимостьУслуги = ТекСтрокаИнформацияОЗаказе.СтоимостьУслуги;
НоваяСтрока.Услуга = ТекСтрокаИнформацияОЗаказе.Услуга;
КонецЦикла;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр Прибыль Расход
Движения.Прибыль.Записывать = Истина;
Для Каждого ТекСтрокаИнформацияОЗаказе Из ИнформацияОЗаказе Цикл
Движение = Движения.Прибыль.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.НаименованиеКлиента = НаименованиеКлиента;
Движение.Договор = Договор;
Движение.Услуга = ТекСтрокаИнформацияОЗаказе.Услуга;
Движение.Инженер = Инженер;
Движение.Прибыль = ТекСтрокаИнформацияОЗаказе.СтоимостьИздержекНаОказаниеУслуги;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.ОказаниеУслуги.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОказаниеУслуги.Дата,
| ОказаниеУслуги.Договор,
| ОказаниеУслуги.Инженер,
| ОказаниеУслуги.НаименованиеКлиента,
| ОказаниеУслуги.Номер,
| ОказаниеУслуги.СтоимостьИздержекНаОказаниеУслуги,
| ОказаниеУслуги.ИнформацияОЗаказе.(
| НомерСтроки,
| Услуга,
| СтоимостьУслуги,
| СтоимостьИздержекНаОказаниеУслуги
| )
|ИЗ
| Документ.ОказаниеУслуги КАК ОказаниеУслуги
|ГДЕ
| ОказаниеУслуги.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьИнформацияОЗаказеШапка = Макет.ПолучитьОбласть("ИнформацияОЗаказеШапка");
ОбластьИнформацияОЗаказе = Макет.ПолучитьОбласть("ИнформацияОЗаказе");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьИнформацияОЗаказеШапка);
ВыборкаИнформацияОЗаказе = Выборка.ИнформацияОЗаказе.Выбрать();
Пока ВыборкаИнформацияОЗаказе.Следующий() Цикл
ОбластьИнформацияОЗаказе.Параметры.Заполнить(ВыборкаИнформацияОЗаказе);
ТабДок.Вывести(ОбластьИнформацияОЗаказе, ВыборкаИнформацияОЗаказе.Уровень());
КонецЦикла;
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
// Заполнение шапки
Договор = ДанныеЗаполнения.Договор;
Инженер = ДанныеЗаполнения.Инженер;
НаименованиеКлиента = ДанныеЗаполнения.НаименованиеКлиента;
Для Каждого ТекСтрокаИнформацияОЗаказе Из ДанныеЗаполнения.ИнформацияОЗаказе Цикл
НоваяСтрока = ИнформацияОЗаказе.Добавить();
НоваяСтрока.СтоимостьУслуги = ТекСтрокаИнформацияОЗаказе.СтоимостьУслуги;
НоваяСтрока.Услуга = ТекСтрокаИнформацияОЗаказе.Услуга;
КонецЦикла;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр Прибыль Расход
Движения.Прибыль.Записывать = Истина;
Для Каждого ТекСтрокаИнформацияОЗаказе Из ИнформацияОЗаказе Цикл
Движение = Движения.Прибыль.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.НаименованиеКлиента = НаименованиеКлиента;
Движение.Договор = Договор;
Движение.Услуга = ТекСтрокаИнформацияОЗаказе.Услуга;
Движение.Инженер = Инженер;
Движение.Прибыль = ТекСтрокаИнформацияОЗаказе.СтоимостьИздержекНаОказаниеУслуги;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.ОказаниеУслуги.ПолучитьМакет("Печать");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОказаниеУслуги.Дата,
| ОказаниеУслуги.Договор,
| ОказаниеУслуги.Инженер,
| ОказаниеУслуги.НаименованиеКлиента,
| ОказаниеУслуги.Номер,
| ОказаниеУслуги.СтоимостьИздержекНаОказаниеУслуги,
| ОказаниеУслуги.ИнформацияОЗаказе.(
| НомерСтроки,
| Услуга,
| СтоимостьУслуги,
| СтоимостьИздержекНаОказаниеУслуги
| )
|ИЗ
| Документ.ОказаниеУслуги КАК ОказаниеУслуги
|ГДЕ
| ОказаниеУслуги.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьИнформацияОЗаказеШапка = Макет.ПолучитьОбласть("ИнформацияОЗаказеШапка");
ОбластьИнформацияОЗаказе = Макет.ПолучитьОбласть("ИнформацияОЗаказе");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл