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