Имя: Пароль:
1C
1С v8
Каверзный вопрос про 1С:Документооборот)
0 gavrilov-anton
 
11.12.13
12:57
Коллеги, нужна консультация специалиста по СЭД 1С:Документооборот.

Хочу использовать в "Условиях маршрутизации" дополнительный реквизит внутреннего документа (созданный мной "процент предоплаты").

Я создаю "Условие маршрутизации", способ задания - "На встроенном языке"  А что написать в выражении не знаю. Простите, отстал от жизни))

Вариант в лоб
Предмет.ДополнительныеРеквизиты.Найти("Процент предоплаты", "Свойство").Значение = 30 не работает;

ИТС не спасло.

Может кто сталкивался...
1 Ksandr
 
11.12.13
13:15
У тебя в "Свойство" не строка.
2 Лефмихалыч
 
11.12.13
13:17
версия 1.2 ил 1.3?
3 gavrilov-anton
 
11.12.13
13:25
(2) 1.3 последняя
4 gavrilov-anton
 
11.12.13
13:28
"Свойство" это имя колонки

Т.к. ищу в ТЧ документа
Табличная часть.Найти(<Значение>, <Колонки>)
Параметры:
<Значение> (обязательный)
Тип: Произвольный.
Искомое значение.
<Колонки> (необязательный)
Тип: Строка.

вот в <Значение> может и не строка, я на форме конструктора получить реальное <Значение> нельзя, должен вариант попроще.
5 gavrilov-anton
 
11.12.13
13:29
даже в официальной презентации(по учету договоров) заявлен такой функционал, но как использовать дополнительные свойства не указали.
6 gavrilov-anton
 
11.12.13
13:49
А всё таки... Или никто СЭД не юзает
7 Ilyuha87
 
11.12.13
13:50
Не судьба голову не ломать и в режиме конструктора сделать
8 gavrilov-anton
 
11.12.13
14:12
мужик)) таки есть в конструкторе переход во внутреннюю структуру через
Ссылка.Дополнительные реквизиты.Свойство Равно <.....>

Спасибо.

Правда не получается штатно реализовать условие:
Если сумма предоплаты по договору больше 1 млн и процент предоплаты превышает 20%.
В конструкторе посчитать нельзя, а из исходных данных только "сумма договора" и "%-предоплаты"
9 gavrilov-anton
 
12.12.13
13:59
//Процедура расчета дополнительных данных документа
//по дополнительным реквизитам документов
//для использовании их в условиях маршрутизации процессов
//в 1С:ДокументоОборот

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    |    ВнутренниеДокументыДополнительныеРеквизиты.Значение КАК ПроцентПредоплаты,
    |    ВнутренниеДокументыДополнительныеРеквизиты.Ссылка.Сумма КАК СуммаДокумента
    |ИЗ
    |    Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты
    |ГДЕ
    |    ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &Свойство
    |    И ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Процент предоплаты"));//Тонкий момент получения по наименованию
Запрос.УстановитьПараметр("Ссылка", Предмет.Ссылка);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Выборка.Следующий();

//Данные для использования в условиях сравнения
ПроцентПредоплаты = Выборка.ПроцентПредоплаты;
СуммаДокумента= Выборка.СуммаДокумента;
СуммаПредоплаты = Выборка.СуммаДокумента*Выборка.ПроцентПредоплаты/100;

Если СуммаПредоплаты > 200000 Тогда
     Результат = Истина;
Иначе
     Результат = Ложь;
КонецЕсли;


Всё очень просто, но нужно было включать мозг)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан