|
v7: Как в контекст открытого документа передать признак модифицированности документа |
☑ |
0
victuan1
07.12.12
✎
06:00
|
Открытый документ через метод ОткрытьФорму открывает внешнюю обработку, в которую передает свой контекст. Во внешней обработки меняются реквизиты шапки этого документа и передаются в контекст открытого документа. Но признак модифицированности в нем не устанавливается.
Как установить этот признак? Вроде простой вопрос, но не получается.
Признак нужно устанавливать только в том случае, если во внешней обработке МЕНЯЮТСЯ реквизиты открытого документа.
Код документа менять нельзя, внешняя обработка открывается через механизм ВПФ (внешние печатные формы).
|
|
1
Морозов Александр
07.12.12
✎
06:22
|
Тыж модально обработку открываешь?
|
|
2
ParaWiz
07.12.12
✎
06:25
|
А вообще проще некуда, если открываешь обработку из документа, то передавай в нее параметры, и в обработке меняй параметры
|
|
3
victuan1
07.12.12
✎
06:46
|
(1) Нет, не модально. ВПФ не модально работает.
(2) Передаю, меняю, а как вернуть признак модифицированности?
|
|
4
Табуретко
07.12.12
✎
06:50
|
закрыв обработку...
|
|
5
ADirks
07.12.12
✎
06:50
|
что-то вроде Конт.Форма.Обновить(1);
|
|
6
Табуретко
07.12.12
✎
06:51
|
(5) без обновить() само поменяется как обработку закроет...
|
|
7
Voronve
07.12.12
✎
07:03
|
(0) Имхо, не решается (т.к. нельзя править код документа).
Ты можешь отловить изменения, если у тебя форма обработки открывается модально, либо открывается через подбор.
Если модально, то в доке пишешь что то типа:
спПараметры = СоздатьОбъект("СписокЗначений");
.....
ОткрытьФормуМодально(<ТвояОбработка>, спПараметры);
Если спПараметры.Получить("СтатусВозврата") = 1 Тогда
...
КонецЕсли;
В обработке по кнопе "ОК" достаточно прописать
Форма.Параметр.Установить("СтатусВозврата", 1);
Если через подбор, то в доке пишешь что то типа
спПараметры = СоздатьОбъект("СписокЗначений");
.....
ОткрытьФорму(<ТвояОбработка>, спПараметры);
.....
И отлавливаешь возврат управления через обработку подбора.
При использовании внешних печатных форм, управление в форму документа не возвращается.
Чет я даже и не знаю как прописать то чо тебе надо.
|
|
8
Voronve
07.12.12
✎
07:13
|
(0) Хотя ...
Попробуй в своей обработке прописать:
Процедура ПоКнопкеОК()
// Проверка на закрытие родительской формы
Если ТипЗначения(Конт) = 100 Тогда
Конт.Контрагент = ВыбКонтрагент; // Или что там у тебя
....
Конт.Форма.Обновить(1);
КонецЕсли;
КонецПроцедуры
|
|
9
victuan1
07.12.12
✎
07:22
|
Спасибо!
Конт.Форма.Обновить(1); работает!
|
|