|
УФ. Программное обновление вычисляемого поля табличной части документа | ☑ | ||
|---|---|---|---|---|
|
0
Humandra
15.03.12
✎
13:43
|
Добрый день!
Подскажите плиз решение проблемы. Надо было добавить вычисляемое поле в документ, в табличную часть. Например, есть документ изменения ставки тарифа, и в колонке табличной части надо видеть старый тариф на дату, на день меньшую чем дата документа. Добавила реквизит табличной части и поле формы, написала серверную процедуру, в которой исходя из параметров заголовка документа и значения строки табличной части, на ПриЧтенииНаСервере получались данные и присваивались новому реквизиту. Работает. Теперь надо обновлять значение добавленной вычисляемой колонки при изменении реквизитов шапки документа (например, даты документа). На событии ПриИзменении реквизита вызываю ту же процедуру, что и на ПриЧтенииНаСервере: не обновляет. Пробую после этого вызывать Элементы.МояТабличнаяЧасть.Обновить(); Не работает. Если вызывать ЭтаФорма.Прочитать(), то перечитается весь объект, и сбросится и измененный реквизит шапки документа. Может кто подскажет, что с этим делать? |
|||
|
1
Humandra
15.03.12
✎
13:52
|
(0) Или на динамический список переделать? Еще не пробовала, но оно как - динамический список позволяет редактирование в самом списке?
|
|||
|
2
Humandra
15.03.12
✎
13:56
|
Код процедур такой:
&НаСервере Процедура ПолучитьСтарыеСтавки() ДатаСтарыхСтавок = МойОбщийМодуль.ДобавитьДень(Объект.Дата, -1); ТаблицаСтарыеСтавки = РегистрыСведений.СтавкиТарифа.ПолучитьТаблицуЗначенийСтавокТарифов(ДатаСтарыхСтавок, Объект.ТипЦены, Объект.РасчетныйПериод); Для Каждого СтавкаТарифа Из Объект.СтавкиТарифа Цикл СтрокаСтарыеСтавки = ТаблицаСтарыеСтавки.Найти(СтавкаТарифа.Тариф, "Тариф"); Если СтрокаСтарыеСтавки <> Неопределено Тогда СтавкаТарифа.СтараяСтавка = СтрокаСтарыеСтавки.Ставка; КонецЕсли; КонецЦикла; КонецПроцедуры &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) ПолучитьСтарыеСтавки(); КонецПроцедуры &НаКлиенте Процедура ДатаПриИзменении(Элемент) ПолучитьСтарыеСтавки(); Элементы.СтавкаТарифа.Обновить(); КонецПроцедуры Не работает обновление. |
|||
|
3
Humandra
15.03.12
✎
14:06
|
Up?
|
|||
|
4
Mort
15.03.12
✎
14:17
|
Вроде должно без обновления работать. Смотри отладчиком процедуру внимательнее.
|
|||
|
5
Humandra
15.03.12
✎
14:28
|
(4) А! Точно, спасибо. Косяк в процедуре, обновлять не надо :)
|
|||
|
6
Humandra
15.03.12
✎
14:28
|
Ветку Иначе забыла :)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |