Диплом: Автоматизация аналитического учета в ООО «Верный»

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

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

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