![]() |
![]() |
![]() |
|
Передача контекста из внешней обработки | ☑ | ||
---|---|---|---|---|
0
suram
21.10.04
✎
09:27
|
Во внешнем отчете перебираю документ "РеализацияПродукции". Меняю цену. Хочу вызвать процедуру глобального модуля глПересчетТаблЧасти по аналогии расчета в Форме этого документа. Как передать контекст из внешней обработки? Пишу:
Док = СоздатьОбъект("Документ.РеализацияПродукции"); Док.ВыбратьДокументы() Пока Док.ПолучитьДокумент() = 1 Цикл Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл Цена = Цена * 1.18; глПересчетТаблЧасти(Док.ТекущийДокумент(), "Цена"); КонецЦикла; Записать(); суммы не считаются... |
|||
1
Rovan
гуру
21.10.04
✎
09:36
|
Думаю, что глПересчетТаблЧасти работает только с диалоговой формой. Так что переписать треба.
|
|||
2
427
21.10.04
✎
09:44
|
попробуй
глПересчетТаблЧасти(Контекст, "Цена"); не пойдет - см (1) |
|||
3
suram
21.10.04
✎
09:45
|
А можно как-то вызывать форму, через ОткрытьФорму()? Только тогда как заставить пересчитать суммы оттуда?
|
|||
4
suram
21.10.04
✎
09:48
|
через Контекст ругается: в глобальном модуле на строке ДатаДок = Конт.ДатаДок; Поле агрегатного объекта не обнаружено (ДатаДок)
|
|||
5
427
21.10.04
✎
09:50
|
тьфу, сам дурак... Не прочитал (0)
формируешь ТЗ с нужными ценами... далее - ОткрытьФорму(НужныйДок,ТЗ) в ПриОткрытии() если типЗначенияСтр(форма.параметр)="ТаблицаЗначений" тогда установка цен Пересчет цен записать СтатусВозврата(0) возврат конецЕсли |
|||
6
suram
21.10.04
✎
09:52
|
а без изменений в конфигураторе никак?...
|
|||
7
PGY
21.10.04
✎
11:01
|
Затолкни эту функцию себе в обработку, переделай как нужно, если не хочешь ничего менять в конфигурации
|
|||
8
427
21.10.04
✎
11:51
|
Можно и без изменений.
|
|||
9
virsy
22.10.04
✎
09:22
|
наверное в (0) нужно было написать так:
... Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл Док.Цена = Док.Цена * 1.18; глПересчетТаблЧасти(Док, "Цена"); КонецЦикла; ... у меня так работает |
|||
10
virsy
22.10.04
✎
16:00
|
и вместо "Записать()" нужно "Док.Записать()"
|
|||
11
YF
22.10.04
✎
16:12
|
На а если так
Перем конт; Док = СоздатьОбъект("Документ.РеализацияПродукции"); Док.ВыбратьДокументы() Пока Док.ПолучитьДокумент() = 1 Цикл Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл Цена = Цена * 1.18; глПересчетТаблЧасти(Док.ТекущийДокумент(), "Цена"); КонецЦикла; Записать(); |
|||
12
YF
22.10.04
✎
16:14
|
Сории 11 недописал, вот как хотел:
Перем конт; Док = СоздатьОбъект("Документ.РеализацияПродукции"); Док.ВыбратьДокументы() Пока Док.ПолучитьДокумент() = 1 Цикл Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл Цена = Цена * 1.18; глПересчетТаблЧасти(Док.ТекущийДокумент(), "Цена"); КонецЦикла; Записать(); ОткрытьФорму(Док.ТекущийДокумент(), конт,0); глПересчетТаблЧасти(Конт, "Цена"); Конт.Закрыть(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |