Условия для маршрутизации
Установлен ли сертификат ЭП у пользователя из доп реквизита
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
ЗапросВладелец = Новый Запрос; ЗапросВладелец.Текст = "ВЫБРАТЬ | ПРЕДСТАВЛЕНИЕ(МАКСИМУМ(ВЫБОР | КОГДА ВнутренниеДокументыДополнительныеРеквизиты.Свойство.Имя = ""ВладелецЭП"" | ТОГДА ВнутренниеДокументыДополнительныеРеквизиты.Значение | КОНЕЦ)) КАК ВладелецЭП |ИЗ | Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты |ГДЕ | ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &Ссылка"; ЗапросВладелец.УстановитьПараметр("Ссылка", Предмет); Выборка = ЗапросВладелец.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ВладелецЭП = Выборка.ВладелецЭП; КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СертификатыКлючейЭлектроннойПодписиИШифрования.Ссылка КАК Ссылка, | СертификатыКлючейЭлектроннойПодписиИШифрования.КомуВыдан КАК КомуВыдан |ИЗ | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыКлючейЭлектроннойПодписиИШифрования |ГДЕ | СертификатыКлючейЭлектроннойПодписиИШифрования.КомуВыдан ПОДОБНО ""%"" + &Пользователь + ""%"" | И СертификатыКлючейЭлектроннойПодписиИШифрования.ПометкаУдаления = ЛОЖЬ | И СертификатыКлючейЭлектроннойПодписиИШифрования.ДействителенДо > &ТекДата"; Запрос.УстановитьПараметр("Пользователь", ВладелецЭП); Запрос.УстановитьПараметр("ТекДата", ТекущаяДата()); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Результат = Истина; //нет сертификатов Иначе Результат = Ложь; //есть сертификаты КонецЕсли; |
Проверка наличия файлов в задаче
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Файлы.Ссылка КАК Ссылка |ИЗ | Справочник.Файлы КАК Файлы |ГДЕ | Файлы.ВладелецФайла = &Предмет | И Файлы.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("Предмет", Задача.БизнесПроцесс); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Результат = Ложь; Иначе Результат = Истина; КонецЕсли; |
Проверка наличия файлов в документе
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Предмет = Задача.Предметы[0].Предмет; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Файлы.Ссылка |ИЗ | Справочник.Файлы КАК Файлы |ГДЕ | Файлы.ВладелецФайла = &Предмет"; Запрос.УстановитьПараметр("Предмет", Предмет); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Результат = Истина; Иначе Результат = Ложь; КонецЕсли; |
Проверка заполнения резолюции
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Счетчик = 0; Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | СведенияОПользователяхДокументооборот.Должность КАК Должность, | СведенияОПользователяхДокументооборот.Подразделение КАК Подразделение, | Резолюции.АвторРезолюции КАК АвторРезолюции, | Резолюции.ТекстРезолюции КАК ТекстРезолюции, | Резолюции.ДатаРезолюции КАК ДатаРезолюции |ИЗ | Справочник.Резолюции КАК Резолюции | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОПользователяхДокументооборот КАК СведенияОПользователяхДокументооборот | ПО (Резолюции.АвторРезолюции = СведенияОПользователяхДокументооборот.Пользователь) |ГДЕ | Резолюции.Документ = &Документ"; Запрос.УстановитьПараметр("Документ",Предмет); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапрос = РезультатЗапроса.Выбрать(); Пока ВыборкаЗапрос.Следующий() Цикл Если ЗначениеЗаполнено(ВыборкаЗапрос.АвторРезолюции) Тогда Счетчик = Счетчик + 1; КонецЕсли; КонецЦикла; Если Счетчик = 0 Тогда Результат = Ложь; Иначе Результат = Истина; КонецЕсли; |
Проверка согласования (актуально при наличии вложенных процессов)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Документ = Предмет.Ссылка; Счетчик = 0; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВизыСогласования.РезультатСогласования КАК РезультатСогласования, | ВизыСогласования.Документ КАК Документ |ИЗ | Справочник.ВизыСогласования КАК ВизыСогласования |ГДЕ | ВизыСогласования.Документ = &Документ | И ВизыСогласования.РезультатСогласования = ЗНАЧЕНИЕ(Перечисление.РезультатыСогласования.НеСогласовано) | И ВизыСогласования.ПомещенаВИсторию = ЛОЖЬ | И ВизыСогласования.ПометкаУдаления = ЛОЖЬ | И ВизыСогласования.Удалена = ЛОЖЬ"; Запрос.УстановитьПараметр("Документ",Документ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапрос = РезультатЗапроса.Выбрать(); Если ВыборкаЗапрос.Количество() > 0 Тогда Результат = Ложь; // Есть визы НЕ согласования Иначе Результат = Истина; // Всеми согласовано КонецЕсли; |
Наличие организации в перечисленных сторонах документа
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Документ = Предмет.Ссылка; Сторона = Справочники.Организации.НайтиПоКоду("00-000***"); Счетчик = 0; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВнутренниеДокументы.Ссылка КАК Ссылка, | ВнутренниеДокументыСтороны.Сторона КАК Сторона |ИЗ | Справочник.ВнутренниеДокументы.Стороны КАК ВнутренниеДокументыСтороны | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы | ПО (ВнутренниеДокументыСтороны.Ссылка = ВнутренниеДокументы.Ссылка) |ГДЕ | ВнутренниеДокументы.Ссылка = &Ссылка | И ВнутренниеДокументыСтороны.Сторона = &Сторона"; Запрос.УстановитьПараметр("Ссылка",Документ); Запрос.УстановитьПараметр("Сторона",Сторона); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапрос = РезультатЗапроса.Выбрать(); Если ВыборкаЗапрос.Количество() > 0 Тогда Результат = Истина; // Организация найдена Иначе Результат = Ложь; // Организация не найдена КонецЕсли; |
Проверка заполненности доп реквизита
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Предмет = Задача.Предметы[0].Предмет; Счетчик = 0; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПРЕДСТАВЛЕНИЕ(МАКСИМУМ(ВЫБОР | КОГДА ВнутренниеДокументыДополнительныеРеквизиты.Свойство.Имя = ""Пояснения***"" | ТОГДА ВнутренниеДокументыДополнительныеРеквизиты.Значение | КОНЕЦ)) КАК Пояснения, | ВнутренниеДокументыДополнительныеРеквизиты.Ссылка КАК Ссылка |ИЗ | Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты |ГДЕ | ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | ВнутренниеДокументыДополнительныеРеквизиты.Ссылка"; Запрос.УстановитьПараметр("Ссылка",Предмет); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапрос = РезультатЗапроса.Выбрать(); Пока ВыборкаЗапрос.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаЗапрос.Пояснения) Тогда Счетчик = Счетчик + 1; КонецЕсли; КонецЦикла; Если Счетчик = 0 Тогда Результат = Ложь; Иначе Результат = Истина; КонецЕсли; |
Проверка наличия связей
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Предмет = Задача.Предметы[0].Предмет; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | СвязиДокументов.Документ КАК Документ, | СвязиДокументов.СвязанныйДокумент КАК СвязанныйДокумент |ИЗ | РегистрСведений.СвязиДокументов КАК СвязиДокументов |ГДЕ | СвязиДокументов.Документ.Ссылка = &Предмет"; Запрос.УстановитьПараметр("Предмет", Предмет); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Результат = Истина; //нет связей Иначе Результат = Ложь; // есть связи КонецЕсли; |
Проверка контрагента (резидент\не резидент)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Предмет = Процесс.Предметы[0].Предмет; Счетчик = 0; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВнутренниеДокументы.Ссылка КАК Ссылка, | ВнутренниеДокументы.Контрагент КАК Контрагент, | ВнутренниеДокументы.Контрагент.ЮрФизЛицо КАК КонтрагентЮрФизЛицо |ИЗ | Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы |ГДЕ | ВнутренниеДокументы.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка",Предмет); РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапрос = РезультатЗапроса.Выбрать(); Пока ВыборкаЗапрос.Следующий() Цикл Если ВыборкаЗапрос.КонтрагентЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент Тогда Счетчик = Счетчик + 1; КонецЕсли; КонецЦикла; Если Счетчик = 0 Тогда Результат = Ложь; Иначе Результат = Истина; КонецЕсли; |


Комментарии закрыты