Диплом: Автоматизация материально-технического учета ООО «ПрофИнст»

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

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

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 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овершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")