|
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
|
||||
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
|
Если в обработку передаётся контекст, то есть ссылка на форму, то кто мешает вызвать "Записать", только не сразу (в момент вызова документ заблокирован, так как его код ещё не выполнился (то, что после строки открытия формы обработки).
Поэтому, в обработке сохраняем контекст и запускаем обработку ожидания. Потом, в обработке ожидания выполняем запись. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |