Диплом. автоматизация приема и обработки заявок отделом техподдержки ооо "компьютерные бизнес системы"
Скачать 3.38 Mb.
|
ПодЗадачаОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); КонецПроцедуры // распровести ПодЗадача &НаСервере Процедура РасПровестиПодЗадачуНаСервере(ПодЗадача) ПодЗадачаОбъект = ПодЗадача.ПолучитьОбъект(); ПодЗадачаОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения, РежимПроведенияДокумента.Неоперативный); КонецПроцедуры // по команде ДеревоСвернутьВсе - свернуть все узлы, кроме самого верхнего 145 &НаКлиенте Процедура ДеревоСвернутьВсе(Команда) Для Каждого СтрокаДерева Из ДеревоПодзадач.ПолучитьЭлементы() Цикл Для Каждого Строка1 Из СтрокаДерева.ПолучитьЭлементы() Цикл Элементы.ДеревоПодзадач.Свернуть(Строка1.ПолучитьИдентификатор()); КонецЦикла; КонецЦикла; КонецПроцедуры // по команде ДеревоСвернутьДоТекущей - свернуть все узлы, но развернуть путь до текщего узла &НаКлиенте Процедура ДеревоСвернутьДоТекущей(Команда) ПутьВДереве = ПолучитьПутьВДереве(Элементы.ДеревоПодзадач.ТекущиеДанные); // запомниь путь до текущего элемента Для Каждого СтрокаДерева Из ДеревоПодзадач.ПолучитьЭлементы() Цикл Для Каждого Строка1 Из СтрокаДерева.ПолучитьЭлементы() Цикл Элементы.ДеревоПодзадач.Свернуть(Строка1.ПолучитьИдентификатор()); КонецЦикла; КонецЦикла; ЗаполнитьДеревоПодзадач(); // перстроить дерево подзадач Элементы.ДеревоПодзадач.ТекущаяСтрока = СпозиционироватьсяВДеревеПодзадач(ДеревоПодзадач, ПутьВДереве, ПутьВДереве.Количество()-1); // спозиционироваться КонецПроцедуры // по команде ДеревоФильтрПроведенные - отобразить в дереве только Проведенные/Непроведенные/Все &НаКлиенте Процедура ДеревоФильтрПроведенные(Команда) ФильтрПроведенные = ФильтрПроведенные - 1; // при каждом входе в команду - уменьшить значенеи фильтра на 1 Если ФильтрПроведенные = -1 Тогда ФильтрПроведенные = 2; // по кругу КонецЕсли; // заголовок кнопки Если ФильтрПроведенные = 2 Тогда Элементы.ДеревоПодзадачПроведенные.Заголовок = "Все"; 146 ИначеЕсли ФильтрПроведенные = 1 Тогда Элементы.ДеревоПодзадачПроведенные.Заголовок = "Выполеннные"; ИначеЕсли ФильтрПроведенные = 0 Тогда Элементы.ДеревоПодзадачПроведенные.Заголовок = "Не выполеннные"; КонецЕсли; ЗаполнитьДеревоПодзадач(); // перестроить дерево с отбором, удовлетворяющем фильтру КонецПроцедуры &НаКлиенте Процедура ДеревоПоШаблону(Команда) ОткрытьФорму("Справочник.Этапы.ФормаВыбора", ,ЭтаФорма); // Продолжение см. в ОбработкаВыбора формы КонецПроцедуры //-------------------------------------------------------------------------------- // ЗАКЛАДКА РЕСУРСЫ // при выборе/изменении номенклатуры &НаКлиенте Процедура НоменклатураНоменклатураПриИзменении(Элемент) ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Количество = 1; ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Коэфф = 1; ОсновнаяЕдиницаОтгрузки = ОбщийСрв.ПолучитьОсновнуюЕдиницуОтгрузкиНоменклатуры(ЭтотОбъект.Элем енты.Номенклатура.ТекущиеДанные.Номенклатура); Если Не ОсновнаяЕдиницаОтгрузки.Пустая() Тогда ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.ЕдИзмерения = ОсновнаяЕдиницаОтгрузки; ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Коэфф = ОбщийСрв.ПолучитьКоэффициент(ЭтотОбъект.Элементы.Номенклатура.Текущие Данные.ЕдИзмерения); КонецЕсли; ОбщийСрв.РассчитатьСуммуСтроки(Объект.Дата, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Номенклатура, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Количество, 147 ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Коэфф, Объект.ТипЦен, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Цена, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Сумма); КонецПроцедуры &НаКлиенте Процедура НоменклатураКоличествоПриИзменении(Элемент) ОбщийСрв.РассчитатьСуммуСтроки(Объект.Дата, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Номенклатура, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Количество, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Коэфф, Объект.ТипЦен, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Цена, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Сумма); КонецПроцедуры &НаКлиенте Процедура НоменклатураЕдИзмеренияПриИзменении(Элемент) ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Коэфф = ОбщийСрв.ПолучитьКоэффициент(ЭтотОбъект.Элементы.Номенклатура.Текущие Данные.ЕдИзмерения); ОбщийСрв.РассчитатьСуммуСтроки(Объект.Дата, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Номенклатура, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Количество, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Коэфф, Объект.ТипЦен, ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Цена, 148 ЭтотОбъект.Элементы.Номенклатура.ТекущиеДанные.Сумма); КонецПроцедуры // при выборе номенклатуры - проверка резерва &НаКлиенте Процедура НоменклатураНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если Зарезервировано(ВыбранноеЗначение) Тогда СтандартнаяОбработка = Ложь; КонецЕсли; КонецПроцедуры // проверка не зарезервирована ли ВыбНоменклатура в других задачах &НаСервере Функция Зарезервировано(ВыбНоменклатура) Если Не ВыбНоменклатура.ВидНоменклатуры.Резервируется Тогда Возврат Ложь; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗадачаНоменклатура.Номенклатура, | Задача.Ссылка КАК СамаЗадача |ИЗ | Документ.Задача.Номенклатура КАК ЗадачаНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ Документ.Задача КАК Задача | ПО ЗадачаНоменклатура.Ссылка = Задача.Ссылка |ГДЕ | ЗадачаНоменклатура.Номенклатура = &ВыбНоменклатура | И Задача.Проведен = Ложь | И ( (&ДатаНачалаРезерва МЕЖДУ Задача.Дата И Задача.ОжидаемаяДатаВыполнения) | ИЛИ (&ДатаОкончанияРезерва МЕЖДУ Задача.Дата И Задача.ОжидаемаяДатаВыполнения) | ИЛИ (Задача.Дата МЕЖДУ &ДатаНачалаРезерва И &ДатаОкончанияРезерва) | ИЛИ (Задача.ОжидаемаяДатаВыполнения МЕЖДУ &ДатаНачалаРезерва И &ДатаОкончанияРезерва) | ) |"; Запрос.УстановитьПараметр("ВыбНоменклатура", ВыбНоменклатура); 149 Запрос.УстановитьПараметр("ДатаНачалаРезерва", НачалоДня(Объект.Дата)); Запрос.УстановитьПараметр("ДатаОкончанияРезерва", КонецДня(Объект.ОжидаемаяДатаВыполнения)); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(ВыбНоменклатура.Наименование + " зарезервировано "+ ОбщийСрв.ПредставлениеЗадачи(Выборка.СамаЗадача)); Возврат Истина КонецЦикла; Возврат Ложь; КонецФункции // при изменени даты документа проверить - нет ли зарезервированных ресурсов &НаКлиенте Процедура ДатаПриИзменении(Элемент) Для Каждого ТекСтрокаНоменклатура Из Объект.Номенклатура Цикл Зарезервировано(ТекСтрокаНоменклатура.Номенклатура); КонецЦикла; КонецПроцедуры //-------------------------------------------------------------------------------- // ЗАКЛАДКА ФАЙЛЫ // по команде Создать новый файл &НаКлиенте Процедура ФайлыСоздать(Команда) П = Новый Структура; П.Вставить("Документ", Объект.Ссылка); ОткрытьФорму("Справочник.ХранимыеФайлы.ФормаОбъекта", П, ЭтотОбъект.Элементы.Файлы); // результат выбора см. в ОбработкаВыбора элемента формы Файлы (таблица) КонецПроцедуры &НаКлиенте Процедура ФайлыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) НоваяСтрока = Объект.Файлы.Добавить(); 150 НоваяСтрока.Файл = ВыбранноеЗначение.Получить(0).Значение; НоваяСтрока.Комментарий = ВыбранноеЗначение.Получить(0).Значение; КонецПроцедуры &НаКлиенте Процедура ОткрытьФайл(Команда) ХранимыйФайл = ЭтотОбъект.Элементы.Файлы.ТекущиеДанные.Файл; ОткрытьХранимыйФайл(ХранимыйФайл); КонецПроцедуры &НаКлиенте Процедура ОткрытьХранимыйФайл(ХранимыйФайл) Если ХранимыйФайл = Неопределено Тогда Возврат; КонецЕсли; Файл = Новый Файл(ОбщийСрв.ПолучитьИмяФайла(ХранимыйФайл)); ИмяФайла = ПолучитьИмяВременногоФайла(Файл.Расширение); Адрес = ПолучитьНавигационнуюСсылку(ХранимыйФайл, "ДанныеФайла"); ПолучитьФайл(Адрес, ИмяФайла, Ложь); ЗапуститьПриложение(ИмяФайла); КонецПроцедуры |