Имя: Пароль:
1C
1С v8
Передать ДокументОбъект на сервер для проведения
0 zzerro
 
26.09.14
09:11
На форме документа есть кнопка, которая открывает обработку, которая в свою очередь формирует пакет документов на основании открытого документа. Есть необходимость перенести проведение сгенерированных документов в привилигированный общий модуль, но вот возникает проблема в том, что и текущий документ, из формы которого открыта обработка нужно тоже провести.
В общем есть необходимость передать объект документа на сервер. Пробовал так:

В обработке:
МассивДокументов.Добавить(Новый Структура("Документ",ПоместитьВоВременноеХранилище(ОбъектРТУ,Новый УникальныйИдентификатор)));

где ОбъектРТУ - это ДокументОбъект (т.е. это объект открытого документа)

В общем модуле:
    Для каждого ПараметрыПроведения из МассивДокументов Цикл
        
        Если ТипЗнч(ПараметрыПроведения.Документ) = Тип("Строка") Тогда
            Если ЭтоАдресВременногоХранилища(ПараметрыПроведения.Документ) Тогда
                ДокОбъект = ПолучитьИзВременногоХранилища(ПараметрыПроведения.Документ);


При этом адрес во временном хранилище верный, однако объект из этого адреса не получен, тип значения = Неопределено.
Почему так или как можно это обойти?
1 ДенисЧ
 
26.09.14
09:14
ссылку передавай
2 zzerro
 
26.09.14
09:16
Используется Обычное приложение, толстый клиент, обычные формы, платформа 8.2.17

(1) Ссылку не хорошо, т.к. открыта форма документа и получится, что в открытой форме один экземпляр объекта, а проводить будем другой экземпляр объекта, т.е. по сути другой объект. В итоге будет рассогласование данных.
3 Defender aka LINN
 
26.09.14
09:25
(2) Перечитай после проведения. Тоже мне проблема
4 SeiOkami
 
26.09.14
09:33
(2), первое, что в голову пришло. Можно данные текущего открытого документа запихнуть в структуру, а ту уже передать (или поместить во временное хранилище). А в модуле уже сделать ЗаполнитьЗначенияСвойств() и провести документ.
5 SeiOkami
 
26.09.14
09:33
(3), потеряются данные введённые пользователем, насколько я понял
6 SeiOkami
 
26.09.14
09:36
+
1. При вызове обработки сохраняются изменения в тек. документе
2. форма документа закрывается
3. происходит выполнение обработки и перепроведение нашего документа
4. открывается форма нашего уже проведенного документа
7 Maxus43
 
26.09.14
09:39
(5) подписку обычно делают, и ничо не потеряется
8 Maxus43
 
26.09.14
09:40
(6) и где тут "не могу передать ссылку т.к. открыта форма"?
9 SeiOkami
 
26.09.14
09:42
(7), у тебя открыта форма документа. Ты на нём что-то поменял. Нажал кнопку обработки, которая где-то там в модуле по ссылке получила объект нашего документа и провела. А затем данные на форме перечитались. И все наши изменения потеряны
10 SeiOkami
 
26.09.14
09:43
(8), какой-то странный вопрос. Не понял к чему он.
11 zzerro
 
26.09.14
09:45
Не понял, как перечитать данные формы?
12 Maxus43
 
26.09.14
09:45
(9)(10) я понял, не ты автор то))
13 Fedor-1971
 
26.09.14
09:49
(2) Запиши тек.состояние документа перед вызовом формы обработки и передай ей ссылку на текущий документ и всех делов.
14 Maxus43
 
26.09.14
09:49
(11) что мешает сохранить документ и уже потом передать ссылку, чтоб "ничего не потерять"?
15 Kalambur
 
26.09.14
09:52
(0) "но вот возникает проблема в том, что и текущий документ, из формы которого открыта обработка нужно тоже провести"
где логика? проводи сначала потом формируется пакет, а если юзер закроет форму, тогда что?
16 zzerro
 
26.09.14
10:13
(15) Важна последовательность проведения документов. И текущий документ из которого формируется пакет не первый в списке.
Перед формированием пакета документ конечно записывается, но в обработке у него дополнительные реквизиты заполняются. В общем все равно получается, что объект который в форме и полученный по ссылке могут отличаться.
17 zzerro
 
26.09.14
10:15
В общем получается, что т.к. объект не передается на сервер даже через ПоместитьВоВременноеХранилище(), придется передавать ссылку и потом открывать форму заново.
18 vde69
 
26.09.14
10:15
(0) зачем документ перепроводить? можно тупо движения записать и все...
19 zzerro
 
26.09.14
10:16
(18) Ну уж нет, спасибо... делать свою обработку проведения у РТиУ в УПП мне как то не хочется.
20 zzerro
 
26.09.14
10:17
(18) К тому же он не перепроводится, а просто проводится, из непроведенного состояния.