Имя: Пароль:
1C
1C 7.7
v7: Записать открытый документ из внешней обработки
,
0 ildary
 
11.02.14
14:44
Уважаемые
1 ildary
 
11.02.14
14:45
Упс, промахнулся.
Уважаемые специалисты, подскажите пожалуйста, как правильно записать открытый документ, переданный во внешнюю обработку в виде контекста? 1С ругается на "Данная команда не может выполняться в формуле элемента диалога!"
2 ildary
 
11.02.14
14:46
Проблема в том, что записать документ надо в процессе выполнения обработки, и после записи требуются дальнейшие действия.
3 palpetrovich
 
11.02.14
14:48
а обязательно держать документ все время открытым?
4 palpetrovich
 
11.02.14
14:50
+3
передал контекст в обработку, поработал с ним, записал документ, закончил - открыл форму дока
5 palpetrovich
 
11.02.14
14:51
*
передал контекст в обработку, ЗАКРЫЛ ДОК, поработал с ним, записал документ, закончил - открыл форму дока :)
6 ildary
 
11.02.14
14:53
(3) Да, потому что данные действия должны выполниться в  ВводНаОсновании().

(4)+(5) ну в принципе тоже вариант, спасибо, попробую.
7 palpetrovich
 
11.02.14
14:55
если "действия должны выполниться в  ВводНаОсновании()" - так может возвращать результат из обработки в эту процедуру и, при необходимости - записывать
8 Ёпрст
 
11.02.14
14:59
(0)
на вот, ознакомься
http://infostart.ru/public/16514/
9 ildary
 
11.02.14
16:04
(8) Спасибо за совет, а можно еще уточнить - после всех манипуляций надо созданный документ просто открыть (как обычное окно). Но почему-то ОткрытьФорму( ВремДок.ТекущийДокумент() ); ведет себя как ОткрытьФормуМодально - открывается окно не во весь экран и модально, останавливая выполнение процедуры. Как это можно обойти?
10 Ёпрст
 
11.02.14
16:10
(9) дык поди из модально открытой формы открываешь, да ?
В таком случае любой окно будет всегда открыто в модальном режиме
11 ildary
 
11.02.14
16:11
(10) действительно, и как это лучше обойти? вернуть док через форма.параметр и открыть позже?
12 pvase
 
11.02.14
16:14
(0) Может изменить логику и не записывать документ, а записать после завершения ВводНаОсновании()?
13 Ёпрст
 
11.02.14
16:25
там же в примерчик есть..
если не изменять модуль формы документа, то примитив такой -
открывается форма документа + создается объект через Док.Новый(), далее считываются атрибуты с открытой формы, пишутся в Док, форма закрывается, Док.Записывается и привет.

Если можно менять форму дока - то всё проше: просто передача параметра в форму документа, там ловля его в ПриОтурытии + статусВозврата(0) + Записать()/Провести() если надо.. усё.
14 Torquader
 
11.02.14
17:06
Если в обработку передаётся контекст, то есть ссылка на форму, то кто мешает вызвать "Записать", только не сразу (в момент вызова документ заблокирован, так как его код ещё не выполнился (то, что после строки открытия формы обработки).
Поэтому, в обработке сохраняем контекст и запускаем обработку ожидания. Потом, в обработке ожидания выполняем запись.
2 + 2 = 3.9999999999999999999999999999999...