|
|
|
Инициализация реквизитов внешней обработки | ☑ | ||
|---|---|---|---|---|
|
0
zak555
06.06.13
✎
10:32
|
в V8Exchan82.epf есть реквизит обработки ВыгружатьТолькоРазрешенные, который инициализируется дважды
открываю управляемом приложении, запускаю обработку идёт вызов процедуры ИнициализацияРеквизитовИМодульныхПеременных() из модуля обработки и инициализация данного реквизита: ВыгружатьТолькоРазрешенные = Истина; далее, из процедуры ПриСозданииНаСервере есть вызов процедуры РеквизитФормыВЗначение("Объект").ВерсияОбъектаСтрокой(), который в свою очередь опять же генерит исполнение основного кода модуля обработке, где есть вызов процедуры ИнициализацияРеквизитовИМодульныхПеременных() Почему опять идёт исполнение основного кода? и в табло видно, что ВыгружатьТолькоРазрешенные = Ложь; Почему ? она же раньше была проинциализирована? далее, открылась обработка, выбираю файл для загрузки, нажимаю на кнопку подробнее о файле: идёт вызов основного кода модуля обработки, процедуры инициализации и реквизит ВыгружатьТолькоРазрешенные = Ложь; опять Ложь?! Почему ? |
|||
|
1
zak555
06.06.13
✎
10:34
|
*который инициализируется трижды
|
|||
|
2
Defender aka LINN
06.06.13
✎
10:41
|
Потому что РеквизитФормыВЗначение("Объект")
|
|||
|
3
zak555
06.06.13
✎
10:44
|
(2) т.е. вызов РеквизитФормыВЗначение постоянно генерирует модуль обработки ?
|
|||
|
4
Defender aka LINN
06.06.13
✎
10:48
|
(3) Само собой. Он же создает новый экземпляр объекта
|
|||
|
5
zak555
06.06.13
✎
10:51
|
убираю инициализацию этого реквизита из модуля объекта, делаю её так :
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //... ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); ОбъектДляСервера.ВыгружатьТолькоРазрешенные = Истина; КонецПроцедуры в результате в открывающейся форме флаг этого реквизита не включён почему ? |
|||
|
6
zak555
06.06.13
✎
10:53
|
или делаю не в ПриСозданииНаСервере, а в приОткрытии
&НаКлиенте Процедура ПриОткрытии(Отказ) ПриОткрытииНаСервере(); КонецПроцедуры &НаСервере Процедура ПриОткрытииНаСервере() ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); ОбъектДляСервера.ВыгружатьТолькоРазрешенные = Истина; КонецПроцедуры результат тот же -- флаг не отмечен |
|||
|
7
Defender aka LINN
06.06.13
✎
11:00
|
(6) Жесть какая...
А с чего ему быть отмеченным, если ты флаг устанавливаешь в совсем другом объекте? |
|||
|
8
НЕА123
06.06.13
✎
11:00
|
&НаКлиенте
Процедура ПриОткрытии(Отказ) Объект.ВыгружатьТолькоРазрешенные = Истина; КонецПроцедуры |
|||
|
9
zak555
06.06.13
✎
11:05
|
(8) Тип(Объект) = ДанныеФормыСтруктура
|
|||
|
10
zak555
06.06.13
✎
11:06
|
(7) тогда как обойти постоянный вызов других объектов ?
|
|||
|
11
НЕА123
06.06.13
✎
11:10
|
(10)
сделал (8)? |
|||
|
12
zak555
06.06.13
✎
11:19
|
(11) работает
кстати, почему тогда так не работает ? &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //... Объект.ВыгружатьТолькоРазрешенные = Истина; КонецПроцедуры |
|||
|
13
Defender aka LINN
06.06.13
✎
11:25
|
(12) А вот это ты уже врешь
|
|||
|
14
zak555
06.06.13
✎
11:28
|
(13) я строку эту закоментировал ))
я правильно понимаю, что заполнение реквизитов по умолчанию нужно делать только в форме ? |
|||
|
15
Defender aka LINN
06.06.13
✎
11:30
|
(14) Ну, можно тупо у реквизитов значение заполнения задать. Можно в форме, можно в модуле. Как хочешь, в общем. Главное, чтобы потом у тебя одно заполнение результаты другого не затирало.
З.Ы. Еще может быть вариант, что настройки автоматом сохраняются |
|||
|
16
zak555
06.06.13
✎
11:31
|
(15) так если в модуле, то идёт лишнее срабатывание кода -- что не есть хорошо
|
|||
|
17
Defender aka LINN
06.06.13
✎
11:32
|
(16) Лишнее срабатывание будет, если ты объект получаешь постоянно как в (0)
|
|||
|
18
zak555
06.06.13
✎
11:36
|
(17) тогда такой ещё такой вопрос:
допустим у меня несколько реквизитов обработки есть две формы : управляемая / обычная алгоритм заполнение реквизитов одинаков => надо вынести в модуль объекта ? |
|||
|
19
Defender aka LINN
06.06.13
✎
11:41
|
(18) Я бы вынес
|
|||
|
20
zak555
06.06.13
✎
11:41
|
и как вызвать процедуры/функции заполнения без создания нового экземпляра ?
|
|||
|
21
zak555
06.06.13
✎
12:19
|
или это нельзя реализовать ?
|
|||
|
22
zak555
06.06.13
✎
12:28
|
получается
запускаю обработку --- вызывается основная часть модуль объекта далее, в ПриСозданииНаСервере хочу вызвать процедуру из модуля объекта -- получается ещё одно создание объекта как можно вызвать процедуру заполнения без создания ещё одного объекта ? |
|||
|
23
zak555
06.06.13
✎
12:36
|
так же не работает
модуль формы: &НаСервере Процедура ПриОткрытииНаСервере() стр = ПолучитьСтуктуру(); КонецПроцедуры модуль объекта: Функция ПолучитьСтуктуру() //... КонецФункции |
|||
|
24
zak555
06.06.13
✎
12:36
|
*вернее вот код
&НаСервере Процедура ПриОткрытииНаСервере() стр = ПолучитьСтуктуру(); КонецПроцедуры модуль объекта: Функция ПолучитьСтуктуру() Экспорт //... КонецФункции |
|||
|
25
zak555
06.06.13
✎
12:37
|
а работает только так:
&НаСервере Процедура ПриОткрытииНаСервере() ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); стр = ОбъектДляСервера.ПолучитьСтуктуру(); КонецПроцедуры модуль объекта: Функция ПолучитьСтуктуру() Экспорт //... КонецФункции |
|||
|
26
zak555
06.06.13
✎
12:42
|
или же это не решить, т.к. у обработки внешней нет модуля менеджера ?
|
|||
|
27
zak555
06.06.13
✎
16:34
|
или же вот другой пример:
есть внешняя обработка (ВнешняяОбработка1.epf), которая помечает на удаление документы определенного вида есть реквизит ИмяДокумента в модуле объекта обработки есть процедура, которая это дело осуществляет, анализируя реквизит обработки... Процедура УстановитьПометкиУдаления() Экспорт //... КонецПрроцедуры т.е. вызвать программно обработку и получить результат -- элементарно: Обработка1 = ВнешниеОбработки.Создать("ВнешняяОбработка1.epf"); Обработка1.ИмяДокумента = "Документ1"; Обработка1.УстановитьПометкиУдаления(); но как вызывать УстановитьПометкиУдаления() из УФ ? |
|||
|
28
zak555
06.06.13
✎
16:37
|
туплю )))
&НаСервере Процедура УстановитьПометкиУдаленияНаСервере() ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); ОбъектДляСервера.УстановитьПометкиУдаления(); КонецПроцедуры |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |