![]() |
|
v7: Закрыть форму ДокОснования | ☑ | ||
---|---|---|---|---|
0
Eeakie
30.09.13
✎
15:44
|
Добрый день.
Проблема в следующем: в документе1 есть кнопка, которая должна вызывать ВводНаОсновании() документа2. При этом в "ВводНаОсновании()" есть изменение реквизитов документа1 и из запись, что невозможно при открытой форме документа1. В итоге нужно получить открытую форму документа2 с данными из документа1, при этом документ1 должен быть закрыт. Как это можно реализовать? Уже перепробовал всё что можно. Программно создать документ2 не предлагать - нужно открыть его форму без предварительной записи. |
|||
1
antoneus
30.09.13
✎
15:56
|
Грузишь 1cpp.dll или Formex.dll (не помню что там именно нужно для обращения к процедурам переданного контекста).
В параметре в открываемый док передаешь контекст документа1. Дальше в модуле формы док2 получаешь контекст дока1. Изменяешь данные Конт.Реквизит = ЧтоТоТам; Записываешь Конт.Записать() Как-то так. |
|||
2
Eeakie
02.10.13
✎
14:21
|
(1) не пойдет. Надо закрывать окно документа1. Суть проблемы в том, как программно закрыть окно из другого модуля. Даже если поймать контекст этого окна. Я уже доизвращался до Окна.ЗакрытьОкно() :D Но это не особо работает...
|
|||
3
Eeakie
02.10.13
✎
14:25
|
Вообще всё сводится к тому, что есть два открытых окна А и Б. Из модуля окна А открываю форму окна Б. Как из окна Б закрыть окно А?
|
|||
4
Mikeware
02.10.13
✎
14:27
|
(2) загрузи 1с++ или хотя бы ТурбоБЛ. хотя вроде и без них Контекст.Форма.Закрыть(0) работает...
|
|||
5
Eeakie
02.10.13
✎
14:36
|
(4) работает. После Форма.Закрыть() позиционируюсь на этот документ, который закрыл, и начинаю там менять реквизиты, после смены делаю Записать() - ругается "Объект заблокирован".
|
|||
6
Eeakie
02.10.13
✎
14:36
|
(4) позиционирую через СоздатьОбъект() > НайтиДокумент.
|
|||
7
Eeakie
02.10.13
✎
14:37
|
Похоже, надо закрывать форму не через штатную Закрыть(), а через Формекс.
|
|||
8
antoneus
02.10.13
✎
14:57
|
(2) Насколько я понял, нужно изменить данные в открытом документе и его записать. Для этого док закрывать необязательно. Есть метод Записать(), работающий в модуле формы документа, который записывает документ без закрытия. К нему-то мы и обращаемся. Способ, приведённый в (1) работает при открытой форме, я не стал бы сюда что-то постить, не проверив.
|
|||
9
Eeakie
02.10.13
✎
15:07
|
(8) Всё верно. Всё работает. Только вот не пойму зачем я хотел закрыть форму и потом изменить реквизиты. Сделал наоборот: изменил, записал, закрыл. Всё нормально.
Сам себе придумал проблему. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |