Дипломная работа: Автоматизация документооборота в ООО "ПолиНекст"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
72
Элементы.ГруппаФайлы.Заголовок ="Файлы (" + Файлы.Количество()+ ")";
Элементы.ГруппаРезолюции.Заголовок ="Резолюции (" +
Объект.Резолюции.Количество()+ ")";
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьНовыйФайл(Команда)
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытия.ПолноеИмяФайла = "";
ДиалогОткрытия.МножественныйВыбор = Ложь;
ДиалогОткрытия.Заголовок = "Выберете файл для загрузки";
ОписаниеОповещения = Новый
ОписаниеОповещения("ПослеЗагрузкиФайла",ЭтаФорма, "НовыйФайл");
ДиалогОткрытия.Показать(ОписаниеОповещения);
КонецПроцедуры
&НаСервере
Процедура УдалитьФайлНаСервере(Файл)
ФайлОбъект = Файл.ПолучитьОбъект();
ФайлОбъект.ПометкаУдаления = Истина;
ФайлОбъект.Записать();
КонецПроцедуры
&НаКлиенте
Процедура УдалитьФайл(Команда)
Если Элементы.Файлы.ТекущиеДанные = Неопределено Тогда
ПоказатьПредупреждение(,"Сначала выберите файл!");
Иначе
УдалитьФайлНаСервере(Элементы.Файлы.ТекущиеДанные.ФайлСсылка);
Файлы.Удалить(Файлы.НайтиПоИдентификатору(Элементы.Файлы.ТекущаяСтрок
а));
УстановитьВидимость();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗагрузкиФайла(ВыбранныйФайл,ДопПараметр) Экспорт
Если ВыбранныйФайл = Неопределено Тогда
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПомещенияФайла",
ЭтаФорма, "НовыйФайл");
НачатьПомещениеФайла(ОписаниеОповещения,, ВыбранныйФайл[0], Ложь,
УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес,
ВыбранноеИмяФайла,ДопПараметры) Экспорт
Если Не Результат Тогда
73
Возврат;
КонецЕсли;
Если ДопПараметры = "НовыйФайл" Тогда
СоздатьНовыйФайл(Адрес, ВыбранноеИмяФайла);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СоздатьНовыйФайл(АдресВХранилище, ИмяФайла)
Формат = Прав(ИмяФайла, СтрДлина(ИмяФайла) - СтрНайти(ИмяФайла, ".",
НаправлениеПоиска.СКонца));
ИмяФайла = Прав(ИмяФайла, СтрДлина(ИмяФайла) - СтрНайти(ИмяФайла, "\",
НаправлениеПоиска.СКонца));
НовыйФайл = Справочники.Файлы.СоздатьЭлемент();
НовыйФайл.Владелец = Объект.Ссылка;
НовыйФайл.Наименование = ИмяФайла;
НовыйФайл.ФорматФайла = Формат;
НовыйФайл.ХранилищеФайла = Новый
ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресВХранилище));
НовыйФайл.Записать();
НоваяСтрока = Файлы.Добавить();
НоваяСтрока.ФайлСсылка = НовыйФайл.Ссылка;
НоваяСтрока.Наименование = Строка(НовыйФайл.Ссылка);
УстановитьВидимость();
КонецПроцедуры
&НаКлиенте
Процедура ФайлыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Файл = Новый Файл(ПолучитьКаталогФайлов() +
Файлы.НайтиПоИдентификатору(ВыбраннаяСтрока).Наименование);
ОписаниеОповещения = Новый
ОписаниеОповещения("ПослеПроверкиНаличияФайла", ЭтаФорма, ВыбраннаяСтрока);
Файл.НачатьПроверкуСуществования(ОписаниеОповещения)
КонецПроцедуры
&НаКлиенте
Процедура ПослеПроверкиНаличияФайла(Результат, ВыбраннаяСтрока) Экспорт
Если Результат = Истина Тогда
ОписаниеОповещения = Новый
ОписаниеОповещения("ПослеЗапускаФайла", ЭтаФорма);
НачатьЗапускПриложения(ОписаниеОповещения,Файлы[ВыбраннаяСтрока].Наиме
нование, ПолучитьКаталогФайлов());
Иначе
ОписаниеОповещения = Новый
ОписаниеОповещения("ПослеЗаписиФайла", ЭтаФорма);
ДвоичныеДанные = СохранитьФайл(ВыбраннаяСтрока);
АдресФайла =
Файлы.НайтиПоИдентификатору(ВыбраннаяСтрока).Наименование;
ДвоичныеДанные.НачатьЗапись(ОписаниеОповещения,
ПолучитьКаталогФайлов()+АдресФайла);
74
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗапускаФайла(Результат, ДопПараметр) Экспорт
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписиФайла(Результат) Экспорт
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗапускаФайла",
ЭтаФорма);
НачатьЗапускПриложения(ОписаниеОповещения, АдресФайла,
ПолучитьКаталогФайлов());
КонецПроцедуры
&НаСервере
Функция СохранитьФайл(НомерСтроки)
Возврат
Файлы.НайтиПоИдентификатору(НомерСтроки).ФайлСсылка.ХранилищеФайла.Получит
ь();
КонецФункции
&НаСервере
Функция ПолучитьКаталогФайлов()
Возврат КаталогВременныхФайлов()
КонецФункции
&НаСервере
Процедура ЗаполнитьСписокФайлов()
Запрос = Новый Запрос("ВЫБРАТЬ
| Файлы.Ссылка КАК ФайлСсылка,
| Файлы.Наименование КАК Наименование
|ИЗ
| Справочник.Файлы КАК Файлы
|ГДЕ
| Файлы.Владелец = &Владелец
| И Файлы.ПометкаУдаления = ЛОЖЬ");
Запрос.УстановитьПараметр("Владелец", Объект.Ссылка);
Результат = Запрос.Выполнить().Выгрузить();
Для Каждого Строка Из Результат Цикл
НоваяСтрока = Файлы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПолучитьТекущегоПользователя()
Возврат ПараметрыСеанса.ТекущийПользователь
КонецФункции
&НаКлиенте
75
Процедура РезолюцииПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Элементы.Резолюции.ТекущиеДанные.Дата = ТекущаяДата();
Элементы.Резолюции.ТекущиеДанные.Автор = ПолучитьТекущегоПользователя();
КонецПроцедуры
&НаКлиенте
Процедура ЗапуститьСогласование(Команда)
ПоказатьЗначение(,СоздатьЗадачу("Согласование"));
КонецПроцедуры
&НаКлиенте
Процедура ЗапуститьУтверждение(Команда)
ПоказатьЗначение(,СоздатьЗадачу("Утверждение"));
КонецПроцедуры
&НаКлиенте
Процедура ЗапуститьОзнакомление(Команда)
ПоказатьЗначение(,СоздатьЗадачу("Ознакомление"));
КонецПроцедуры
&НаСервере
Функция СоздатьЗадачу(БизнесПроцесс)
НовыйБизнесПроцесс = БизнесПроцессы[БизнесПроцесс].СоздатьБизнесПроцесс();
НовыйБизнесПроцесс.ВнутреннийДокумент = Объект.Ссылка;
НовыйБизнесПроцесс.ДатаНачала = ТекущаяДата();
НовыйБизнесПроцесс.Дата = ТекущаяДата();
НовыйБизнесПроцесс.АвторЗадачи = ПараметрыСеанса.ТекущийПользователь;
Для Каждого Файл Из Файлы Цикл
НоваяСтрока = НовыйБизнесПроцесс.Файлы.Добавить();
НоваяСтрока.Файл = Файл.ФайлСсылка;
КонецЦикла;
НовыйБизнесПроцесс.Записать();
НоваяЗадача = Задачи.Задача.СоздатьЗадачу();
НоваяЗадача.ТочкаМаршрута =
БизнесПроцессы[БизнесПроцесс].ТочкиМаршрута.Старт;
НоваяЗадача.ДатаНачала = ТекущаяДата();
НоваяЗадача.Дата = ТекущаяДата();
НоваяЗадача.Наименование = БизнесПроцесс + " " + Объект.Наименование;
Для Каждого Файл Из Файлы Цикл
НоваяСтрока = НоваяЗадача.Файлы.Добавить();
НоваяСтрока.Файл = Файл.ФайлСсылка;
КонецЦикла;
НоваяЗадача.БизнесПроцесс = НовыйБизнесПроцесс.Ссылка;
НоваяЗадача.ВнутреннийДокумент = Объект.Ссылка;
НоваяЗадача.АвторЗадачи = Объект.Ссылка;
НоваяЗадача.Записать();
НовыйБизнесПроцесс.ВедущаяЗадача = НоваяЗадача.Ссылка;
НовыйБизнесПроцесс.Записать();
Возврат НовыйБизнесПроцесс.Ссылка
76
КонецФункции
&НаКлиенте
Процедура РезолюцииПриИзменении(Элемент)
УстановитьВидимость();
КонецПроцедуры
&НаСервере
Процедура СписокПапокСсылкаНажатиеНаСервере(Папка)
Список.Параметры.УстановитьЗначениеПараметра("Папка", Папка);
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СписокПапок.Параметры.УстановитьЗначениеПараметра("ТекущийПользователь",
ПараметрыСеанса.ТекущийПользователь);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Элементы.СписокПапок.ТекущиеДанные <> Неопределено Тогда
Список.Параметры.УстановитьЗначениеПараметра("Папка",
Элементы.СписокПапок.ТекущиеДанные);
Иначе
Список.Параметры.УстановитьЗначениеПараметра("Папка",
ПредопределенноеЗначение("Справочник.Папки.ПустаяСсылка"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокПапокПриАктивизацииСтроки(Элемент)
СписокПапокСсылкаНажатиеНаСервере(Элементы.СписокПапок.ТекущиеДанные.
Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура Создать(Команда)
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("Папка",
Элементы.СписокПапок.ТекущиеДанные.Ссылка);
ОткрытьФорму("Справочник.Документы.Форма.ФормаЭлемента",
СтруктураПараметров);
КонецПроцедуры
Обработка проведения «Группы доступа»
Движения.ДоступКПапкам.Записывать = Истина;
Для Каждого ТекСтрокаСписокПользователей Из СписокПользователей Цикл
Для Каждого ТекСтрокаСписокДоступныхПапок Из СписокДоступныхПапок Цикл
Движение = Движения.ДоступКПапкам.Добавить();
Движение.Период = Дата;
Источник: https://baza.diplomsite.ru/previewfile/466