Дипломная работа: Автоматизация обработки заявок в ООО «АйТи-Студио»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
123
Процедура ФормаРаспровести(Команда)
П = Новый Структура;
П.Вставить("РежимЗаписи",
РежимЗаписиДокумента.ОтменаПроведения);
Записать(П);
КонецПроцедуры
// реакция на окончание выбора в других формах
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
// результат пришел из формы Исполнение исполнителем
Если ИсточникВыбора.ИмяФормы =
"Документ.Задача.Форма.ФормаИсполнения" Тогда
ЭтотОбъект.Элементы.Исполнители.ТекущиеДанные.РезультатИсполнен
ия = ВыбранноеЗначение.Получить(0).Значение;
ЭтотОбъект.Элементы.Исполнители.ТекущиеДанные.ДатаИсполнения
= ВыбранноеЗначение.Получить(1).Значение;
ЭтотОбъект.Элементы.Исполнители.ТекущиеДанные.Комментарий
= ВыбранноеЗначение.Получить(2).Значение;
ОбщийСрв.ЗаписьВедетИсполнитель(Истина); // флаг того, что
записывать можно, даже если нет прав
П = Новый Структура;
П.Вставить("РежимЗаписи", РежимЗаписиДокумента.Запись);
ЭтотОбъект.Записать(П);
КонецЕсли;
// результат пришел из формы выбора справочника Этапы
Если ИсточникВыбора.ИмяФормы = "Справочник.Этапы.ФормаВыбора"
Тогда
ЗаполнитьДеревоПоШаблону(ВыбранноеЗначение);
КонецЕсли;
КонецПроцедуры
// проверить возможность записи документа из формы
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если ПараметрыЗаписи.РежимЗаписи =
РежимЗаписиДокумента.Проведение Тогда
124
Отказ = Не ПроверкаВозможностиПроведения();
КонецЕсли;
Если ПараметрыЗаписи.РежимЗаписи =
РежимЗаписиДокумента.ОтменаПроведения Тогда
Отказ = Не ПроверкаВозможностиРасПроведения();
КонецЕсли
КонецПроцедуры
&НаКлиенте
Функция ПроверкаВозможностиРасПроведения(ЭтаЗадача = Неопределено)
Если ЭтаЗадача = Неопределено Тогда
ЭтаЗадача = Объект.Ссылка;
КонецЕсли;
// задать пользователю вопрос
//МассивОтменяемых =
ОбщийСрв.СформироватьСписокОтменяемых(ЭтаЗадача);
//Если МассивОтменяемых.Количество() Тогда
// Если Вопрос("Отмена выполнения задачи " +
ОбщийСрв.ПредставлениеЗадачи(ЭтаЗадача)
// + " приведет к отмене выполнения задач-родителей. Все
равно отменить?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет
Тогда
// Возврат Ложь;
// КонецЕсли;
//КонецЕсли;
Возврат Истина;
КонецФункции
Функция ПроверкаВозможностиПроведения(ЭтаЗадача = Неопределено)
Если ЭтаЗадача = Неопределено Тогда
ЭтаЗадача = Объект.Ссылка;
КонецЕсли;
// задать пользователю вопрос
Возврат Истина;
КонецФункции
125
// ЗАКЛАДКА СВОЙСТВА
&НаКлиенте
Процедура СвойстваВидСвойстваОбработкаВыбора(Элемент,
ВыбранноеЗначение, СтандартнаяОбработка)
// проверка соответсвия типа выбранного свойства
Если Не
СвойстваВидСвойстваОбработкаВыбораНаСервере(ВыбранноеЗначение) Тогда
Сообщить("Тип свойства выбранного вида свойств не относится к
задачам");
СтандартнаяОбработка = Ложь;
Возврат;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция СвойстваВидСвойстваОбработкаВыбораНаСервере(ВыбВидСвойства)
Если ВыбВидСвойства.ПолучитьОбъект().ТипСвойства.ТипОбъекта <>
Перечисления.ТипыОбъектов.Задача Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
//---------------------------------------------------------------------------
// ЗАКЛАДКА ПЕРЕПИСКА
// выход из поля ввода текста сообщения - это команда на добавление
сообщения
&НаКлиенте
Процедура НовоеСообщениеОкончаниеВводаТекста(Элемент, Текст,
ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
Если ПустаяСтрока(Текст) Тогда
Возврат;
КонецЕсли;
ДобавитьНовоеСообщение(Текст);
КонецПроцедуры
// программное добавление сообщения
126
&НаКлиенте
Процедура ДобавитьНовоеСообщение(ТекстСообщения)
Если Объект.Ссылка.Пустая() Тогда
Сообщить("Нужно сначала записать новую задачу");
Возврат;
КонецЕсли;
НоваяСтрока = Объект.Переписка.Добавить();
НоваяСтрока.Пользователь = ОбщийСрв.ПолучитьГлПользователь();
НоваяСтрока.ДатаСообщения = ТекущаяДата();
НоваяСтрока.Сообщение = ТекстСообщения;
ОбщийСрв.ЗаписьВедетИсполнитель(Истина); // флаг того, что
записывать можно, даже если нет прав
Записать();
КонецПроцедуры
//---------------------------------------------------------------------------
// ЗАКЛАДКА ИСПОЛНИТЕЛИ
// по команде Исполнить
&НаКлиенте
Процедура ИсполнителиИсполнить(Команда)
Если
ОбщийСрв.ПроверкаПрав(ЭтотОбъект.Элементы.Исполнители.ТекущиеДанны
е.Исполнитель, ОбщийСрв.ПолучитьГлПользователь()) Тогда
П = Новый Структура;
П.Вставить("Исполнитель",
ЭтотОбъект.Элементы.Исполнители.ТекущиеДанные.Исполнитель);
П.Вставить("РезультатИсполнения",
ЭтотОбъект.Элементы.Исполнители.ТекущиеДанные.РезультатИсполнен
ия);
П.Вставить("ДатаИсполнения",
ЭтотОбъект.Элементы.Исполнители.ТекущиеДанные.ДатаИсполнения);
П.Вставить("Комментарий",
ЭтотОбъект.Элементы.Исполнители.ТекущиеДанные.Комментарий);
ФормаИсполнение =
ПолучитьФорму("Документ.Задача.Форма.ФормаИсполнения", П,
ЭтотОбъект);
127
ФормаИсполнение.ОткрытьМодально();
// дальше см. в ОбработкаВыбора формы
Иначе
Сообщить("У вас нет прав для проставления отметки об
исполнении");
КонецЕсли;
КонецПроцедуры
// перед записью в ТЧ Исполнители - не должно быть пустых и проверка
процентов
&НаКлиенте
Процедура ИсполнителиПередОкончаниемРедактирования(Элемент,
НоваяСтрока, ОтменаРедактирования, Отказ)
Если Элемент.ТекущиеДанные.Исполнитель.Пустая() И Не (НоваяСтрока
и ОтменаРедактирования) Тогда
Сообщить("Исполнитель должен быть обязательно выбран");
Отказ = Истина;
КонецЕсли;
Процентов = 0;
Для Каждого СтрокаИсполнитель Из Объект.Исполнители Цикл
Процентов = Процентов + СтрокаИсполнитель.Процент;
КонецЦикла;
Если Процентов > 100 Тогда
Сообщить("Суммарный процент исполнения не может превышать
100%");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
// выбор нового исполнителя - проверка что такого еще не было
&НаКлиенте
Процедура ИсполнителиИсполнительОбработкаВыбора(Элемент,
ВыбранноеЗначение, СтандартнаяОбработка)
Если УжеЕстьВТаблице(ВыбранноеЗначение) Тогда
СтандартнаяОбработка = Ложь;
Сообщить("Этот исполнитель уже выбран");
КонецЕсли;
КонецПроцедуры
Источник: https://baza.diplomsite.ru/previewfile/1865