Материал: Автоматизация документооборота для решения задач организационного управления в ООО "Башкирская концессионная компания"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
98
// Возвращает количество файлов по документу
Функция КоличествоФайлов(Документ, ПоказатьУдаленные = Ложь)
Экспорт
Если Не ЗначениеЗаполнено(Документ) Тогда
Возврат 0;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(*) КАК Количество
|ИЗ
| Справочник.Файлы КАК Файлы
|ГДЕ
| Файлы.ВладелецФайла = &Документ";
Запрос.УстановитьПараметр("Документ", Документ);
Если Не ПоказатьУдаленные Тогда
Запрос.Текст = Запрос.Текст +"
| И Файлы.ПометкаУдаления = ЛОЖЬ";
КонецЕсли;
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат 0;
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Возврат Выборка.Количество;
КонецФункции
// Возвращает количество задач по документу
Функция КоличествоЗадач(Документ, ТолькоНевыполненные = Ложь)
Экспорт
99
Если Не ЗначениеЗаполнено(Документ) Тогда
Возврат 0;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(*) КАК Количество
З
| Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
|ГДЕ
| ЗадачаИсполнителя.Предметы.Предмет = &Документ
| И НЕ ЗадачаИсполнителя.ПометкаУдаления
| И ЗадачаИсполнителя.БизнесПроцесс.Состояние <>
ЗНАЧЕНИЕ(Перечисление.СостоянияБизнесПроцессов.Прерван)";
Если ТолькоНевыполненные Тогда
Запрос.Текст = Запрос.Текст + " И (НЕ
ЗадачаИсполнителя.Выполнена)";
КонецЕсли;
Запрос.УстановитьПараметр("Документ", Документ);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат 0;
КонецЕсли;
Выборка = Результат.Выбрать();
Выборка.Следующий();
Возврат Выборка.Количество;
КонецФункции
// Возвращает вид документа по умолчанию
Функция ПолучитьВидДокументаПоУмолчанию(Ссылка) Экспорт
ВидДокумента = Неопределено;
100
Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.ВходящиеДокументы")
Тогда
ВидДокумента =
ХранилищеОбщихНастроек.Загрузить("НастройкиРаботыСДокументами",
"ВидВходящегоДокумента");
ТипМетаданных = "ВидыВходящихДокументов";
ИначеЕсли ТипЗнч(Ссылка) =
Тип("СправочникСсылка.ИсходящиеДокументы") Тогда
ВидДокумента =
ХранилищеОбщихНастроек.Загрузить("НастройкиРаботыСДокументами",
"ВидИсходящегоДокумента");
ТипМетаданных = "ВидыИсходящихДокументов";
ИначеЕсли ТипЗнч(Ссылка) =
Тип("СправочникСсылка.ВнутренниеДокументы") Тогда
ВидДокумента =
ХранилищеОбщихНастроек.Загрузить("НастройкиРаботыСДокументами",
"ВидВнутреннегоДокумента");
ТипМетаданных = "ВидыВнутреннихДокументов";
КонецЕсли;
Если Не ЗначениеЗаполнено(ВидДокумента) Тогда
Запрос = Новый Запрос;
Запрос.Текст = СтрЗаменить(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ТаблицаВидаДокументов.Ссылка КАК Ссылка
|ИЗ
| &ВидДокумента КАК ТаблицаВидаДокументов
|ГДЕ
| (НЕ ТаблицаВидаДокументов.ПометкаУдаления)
| И (НЕ ТаблицаВидаДокументов.ЭтоГруппа)
| И ЛОЖЬ В
| (ВЫБРАТЬ
| ЛОЖЬ КАК ЗначениеЛожь
101
| ИЗ
| (ВЫБРАТЬ ПЕРВЫЕ 2
| ИСТИНА КАК ЗначениеИстина
| ИЗ
| &ВидДокумента КАК
ТаблицаВидаДокументов
| ГДЕ
| (НЕ
ТаблицаВидаДокументов.ПометкаУдаления)
| И (НЕ
ТаблицаВидаДокументов.ЭтоГруппа)
| ) КАК ВыбранныеОбъекты
| ИМЕЮЩИЕ
|
КОЛИЧЕСТВО(ВыбранныеОбъекты.ЗначениеИстина) = 1)",
"&ВидДокумента", "Справочник." + ТипМетаданных);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
ВидДокумента = Выборка.Ссылка;
КонецЕсли;
КонецЕсли;
Возврат ВидДокумента;
КонецФункции
// Возвращает соответствие состояний документов
Функция ПолучитьСоответствиеСостояний() Экспорт
Соответствие = Новый Соответствие;
Соответствие.Вставить(Перечисления.СостоянияДокументов.НаСогласова
нии, "СостояниеСогласование");
102
Соответствие.Вставить(Перечисления.СостоянияДокументов.НеСогласова
н, "СостояниеСогласование");
Соответствие.Вставить(Перечисления.СостоянияДокументов.Согласован,
"СостояниеСогласование");
Соответствие.Вставить(Перечисления.СостоянияДокументов.НаУтвержде
нии, "СостояниеУтверждение");
Соответствие.Вставить(Перечисления.СостоянияДокументов.НеУтвержде
н, "СостояниеУтверждение");
Соответствие.Вставить(Перечисления.СостоянияДокументов.Утвержден,
"СостояниеУтверждение");
Соответствие.Вставить(Перечисления.СостоянияДокументов.НаПодписан
ии, "СостояниеПодписание");
Соответствие.Вставить(Перечисления.СостоянияДокументов.Отклонен,
"СостояниеПодписание");
Соответствие.Вставить(Перечисления.СостоянияДокументов.Подписан,
"СостояниеПодписание");
Соответствие.Вставить(Перечисления.СостоянияДокументов.Проект,
"СостояниеРегистрация");
Соответствие.Вставить(Перечисления.СостоянияДокументов.НаРегистрац
ии, "СостояниеРегистрация");
Соответствие.Вставить(Перечисления.СостоянияДокументов.Зарегистрир
ован, "СостояниеРегистрация");
Соответствие.Вставить(Перечисления.СостоянияДокументов.НеЗарегистр
ирован, "СостояниеРегистрация");
Соответствие.Вставить(Перечисления.СостоянияДокументов.НаРассмотре
нии, "СостояниеРассмотрение");
Соответствие.Вставить(Перечисления.СостоянияДокументов.Рассмотрен,
"СостояниеРассмотрение");
Соответствие.Вставить(Перечисления.СостоянияДокументов.НаИсполнен
ии, "СостояниеИсполнение");
Источник: https://baza.diplomsite.ru/previewfile/1504