Запрос для маршрутизации процесса по дополнительному реквизиту

1. user891954 05.02.18 20:53 Сейчас в теме
Добрый день, столкнулся со следующей проблемой:

При настройке условий маршрутизации для процесса согласования документа потребовалось использовать дополнительный реквизит "Тип затрат". Реквизит имеет тип значений "дополнительное значение" и все значения текстовые.

Нашел похожий вариант (ниже), но при проверке выдает значение "Ложь", всегда.


Для Каждого ДопРеквизит Из Предмет.ДополнительныеРеквизиты Цикл

Если (Строка(ДопРеквизит.Свойство) = "Тип затрат") Или (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДопРеквизит.Свойство, "Заголовок") = "Тип затрат") Тогда
        ТипЗатрат = ДопРеквизит.Значение;
        Прервать;
КонецЕсли;

КонецЦикла;

Результат=Ложь;
Если ЗначениеЗаполнено(ТипЗатрат) Тогда
    Если ТипЗатрат = "Охрана труда" Тогда
        Результат=Истина;
    КонецЕсли;
КонецЕсли;
Показать



Возможно, необходимо откорректировать этот или по-другому написать запрос. Выручайте, пожалуйста!

Заранее Спасибо!!
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. user891954 06.02.18 13:15 Сейчас в теме
Решение данного вопроса:

// ищем значение допреквизита объекта
Для Каждого ДопРеквизит Из Предмет.ДополнительныеРеквизиты Цикл
    Если (Строка(ДопРеквизит.Свойство) = "Тип затрат") 
        Или (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДопРеквизит.Свойство, "Заголовок") = "Тип затрат") Тогда
        ТипЗатрат = ДопРеквизит.Значение;
        Прервать;
    КонецЕсли;
КонецЦикла;

// проверяем наименование на нужные нам
Результат = Ложь;
Если ЗначениеЗаполнено(ТипЗатрат) Тогда
    Если (СокрЛП(ТипЗатрат.Наименование) = "Техника") ИЛИ (СокрЛП(ТипЗатрат.Наименование) = "Охрана труда") ИЛИ (СокрЛП(ТипЗатрат.Наименование) = "Вахта") ИЛИ (СокрЛП(ТипЗатрат.Наименование) = "Производственные") Тогда
        Результат = Истина;
    КонецЕсли;
КонецЕсли;
Показать
user1145086; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user891954 06.02.18 13:15 Сейчас в теме
Решение данного вопроса:

// ищем значение допреквизита объекта
Для Каждого ДопРеквизит Из Предмет.ДополнительныеРеквизиты Цикл
    Если (Строка(ДопРеквизит.Свойство) = "Тип затрат") 
        Или (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДопРеквизит.Свойство, "Заголовок") = "Тип затрат") Тогда
        ТипЗатрат = ДопРеквизит.Значение;
        Прервать;
    КонецЕсли;
КонецЦикла;

// проверяем наименование на нужные нам
Результат = Ложь;
Если ЗначениеЗаполнено(ТипЗатрат) Тогда
    Если (СокрЛП(ТипЗатрат.Наименование) = "Техника") ИЛИ (СокрЛП(ТипЗатрат.Наименование) = "Охрана труда") ИЛИ (СокрЛП(ТипЗатрат.Наименование) = "Вахта") ИЛИ (СокрЛП(ТипЗатрат.Наименование) = "Производственные") Тогда
        Результат = Истина;
    КонецЕсли;
КонецЕсли;
Показать
user1145086; +1 Ответить
3. Black-Rain_Infostart 6 17.02.22 12:49 Сейчас в теме
На много проще использовать Способ задания условия = В режиме конструктора

Добавляем новое поле отбора

Ссылка.Тип затрат
Вид сравнения В списке
Значения Техника, Охрана труда, Вахта, Производственные

То есть как только после Ссылка вы ставите точку, то вам документооборот выплевывает все реквизиты, в том числе дополнительные.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот