0
ANDRU48
25.08.11
✎
19:41
|
Создал документ в УПП по заданию заказчика, есть табличная часть в ней контрагент и дальше три свойства контрагента, к примеру центр продаж, канал сбыта и территория.
Хочу,чтобы при изменении контрагента остальные три поля заполнились автоматически.
Пишу запрос к РегиструСведений ЗначениеСвойствОбъектов, там есть все это. Из запрос беру значение свойства по условию, что Объект регистра равен, тому контрагенту, которго мы выбрали перед (ПриИзменении), и название Свойства равно переменной (вначале в переменную заношу соответственно строку, к примеру "Центр продаж").
И так три запроса со своими параметрами к трем свойствам контрагента.
Выбирает правильно, но запрос выполняется очень долго.
Посмотрел записи в регистре их там много (не только для Контрагентов, но и для Номенклатура, вообщем везде, где можно заводить дополнительное свойство).
Все поперетыкал, как ускорить запрос, чтобы клиент не ждал после выбора контрагента (когда же у него заполнятся остальные части!).
Что посоветуете? Если надо могу завтра сам запрос скинуть для наглядности.
|
|
1
ANDRU48
25.08.11
✎
19:43
|
А ещё вот что, если в консоли отлаживаю, то выбирает не очень долго. А если через обычный запуск, то долго.
|
|
2
Drock
26.08.11
✎
04:57
|
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Объект", Номенклатура);
Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("7.СрокХранения"));
Запрос.Текст = "ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Объект,
| ЗначенияСвойствОбъектов.Значение
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Объект = &Объект
| И ЗначенияСвойствОбъектов.Свойство = &Свойство";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой()
Тогда
Область.Параметры.СрокХранения = "1 год.";
Иначе
Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.Прямой);
Пока ВыборкаМестаРаботы.Следующий() Цикл
Область.Параметры.СрокХранения = Выборка.Значение;
КонецЦикла;
КонецЕсли;
|
|
7
ANDRU48
26.08.11
✎
15:34
|
(3) сегодня с утра час танце с отладчиком и консолью и вуяля все получилось, почти как в (1) и тоже ситуация, как в (4). В итоге запрос получился как в (2), только после запроса, я в цикле проверяю и присваиваю значение, а то в запросе такого параметра "ЗначенияСвойствОбъектов.Свойство.Наименование" не было, а мне именно такой надо.
|
|