|
Вернуться в открытую форму документа программно | ☑ | ||
---|---|---|---|---|
0
marshalbratsk
02.08.17
✎
08:17
|
Дело такое - работа ведётся в форме документа (форма1), затем по нажатию кнопки открывается другая форма (форма2) (форма1 остаётся открытой), в эту форму передаются некоторые переменные с формы1. Затем по нажатию кнопки на Формы2 из неё передаются некоторые переменные обратно в форму1. И вместо того, чтобы открывать уже открытую форму1 программа открывает ещё одну копию формы1 и заносит данные туда. Чем нужно упороться, чтобы такого не было и чтобы данные шли уже в открытую форму документа?
|
|||
1
Lexey_
02.08.17
✎
08:20
|
(0) ключ уникальности не используй
|
|||
2
Lexey_
02.08.17
✎
08:21
|
Где код?
|
|||
3
lodger
02.08.17
✎
08:24
|
все дело в том как вы "передаете" некоторые переменные обратно.
имхо, надо юзать Оповестить(). |
|||
4
Dvoe4nik
02.08.17
✎
08:33
|
(0) перед закрытием формы 2 записывай в данные родителя/ параметры полученные и просто закрывай форму.
|
|||
5
Мимохожий Однако
02.08.17
✎
08:35
|
(0) Закрой 1 форму
|
|||
6
marshalbratsk
02.08.17
✎
08:50
|
(1) (2) Ключ не использовал, код банален.
форма1 Форма = Документы.ИмяДокумента.ПолучитьФорму("Форма2",ЭтаФорма); Форма.НомерДокумента = ЭтотОбъект.Номер; Форма.ДатаДокумента = ЭтотОбъект.Дата; Форма.ДатаНачалаЭкспорт = ДатаНачалаАнализа; Форма.ДатаОкончанияЭкспорт = ДатаОкончанияАнализа; Форма.ОткрытьМодально(); Форма2 Документ = Документы.ИмяДокумента.НайтиПоНомеру(НомерДокумента, ДатаДокумента); Форма = Документ.ПолучитьФорму("ФормаДокумента",ЭтаФорма); Форма.СписокКонтрагентовЭкспорт = СписокКонтрагентов; Форма.ВладелецФормыФорма = ЭтаФорма; Форма.Открыть(); |
|||
7
lodger
02.08.17
✎
08:54
|
(6) а зачем на форма2 ты получаешь новую форму?
|
|||
8
Lexey_
02.08.17
✎
08:55
|
(6) зачем ты ищешь по номеру, когда можно сразу передать ссылку?
|
|||
9
Lexey_
02.08.17
✎
08:55
|
+(8) то же самое про форму
|
|||
10
lodger
02.08.17
✎
08:58
|
(6) на форма2 поменяй весь приведенный код на что-то в духе:
Владелец.СписокКонтрагентовЭкспорт = СписокКонтрагентов; Закрыть(); |
|||
11
dezss
02.08.17
✎
08:59
|
(6) Форма = Документ.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
Зачем ты указываешь владельцем Форму2? Попробуй не указывать владельца. Если не поможет, то бери ключ уникальности Форма1 и заполняй его, когда форму пытаешься получить. |
|||
12
marshalbratsk
02.08.17
✎
09:04
|
(11) чтобы при открытии формы1 проверить на владельца и если владелец форма2, тогда добавить данные в табличную часть из "СпискаКонтрагентов"
|
|||
13
marshalbratsk
02.08.17
✎
09:05
|
(11) убрал владельца, всё равно открывается ещё одна форма
|
|||
14
aleks_default
02.08.17
✎
09:12
|
ОткрытьМодально() зачем? Все равно потом открываешь новую форму
|
|||
15
dezss
02.08.17
✎
09:16
|
(12) Если она уже открыта, ПриОткрытии не вызовется.
(13) Значит передавай ключуникальности формы1 в форму2. |
|||
16
marshalbratsk
02.08.17
✎
09:18
|
(15) Да, уже понял, что не вызовется. Буду ключи пробовать, спасибо
|
|||
17
marshalbratsk
02.08.17
✎
09:31
|
Всем спасибо, кто отозвался. Большое. Решил проблему создав экспортную процедуру "ДобавитьКонтрагентов()" на форме1 и запустив её с формы2 в итоге получив следующий код в форме2
ВладелецФормы.СписокКонтрагентовЭкспорт = СписокИндивидуальныхКонтрагентов; ВладелецФормы.ДобавитьКонтрагентов(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |