Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: открытие формы из формы 1с 7.7

v7: открытие формы из формы 1с 7.7
Я
   jah1111
 
25.09.20 - 15:23
помогите разобраться в очередном извращении :)

Дано:
обработка, открывается из документа в модальном окне
в ней:  - кнопка с процедурой ОткрытьМодальноеОкно2()
        - Процедура ПослеОткрытия() в которой прописана процедура ОткрытьМодальноеОкно2()
        // два разных вызова модальногОокна2 предусмотрено и соображений: если из процедуры - первый ввод, а по кнопке - если надо изменить то, что ввели при первом вводе
если нажимаю по кнопке, то все нормально, параметр передается из модальногоокна1 в модальноеокно2
если процедура срабатывает из процедуры ПослеОткрытия() то в отладчике переменная контекста имеет пустое значение и обработка не срабатывает корректно.
   Ёпрст
 
1 - 25.09.20 - 15:30
(0) любое открытие из модальной формы будет открыто модально. Дальше думай.
Зы: модальность зло
   АЛьФ
 
2 - 25.09.20 - 15:31
2(1) Не любое :)
   АЛьФ
 
3 - 25.09.20 - 15:34
2(0) Обязательно надо, чтобы второе модальное открывалось первый раз при открытом первом? Может все же в ПриОткрытии делать?
   jah1111
 
4 - 25.09.20 - 15:39
(3) прописывал процедуру в ПриОткрытии(). В мольном окне формы по непонятной мне причине отключился формекс, смешались все слои  в кучу...
разве что попробовать получить параметр в ПриОткрытии(), а саму а вызов модальногоокна2 прописать в ПослеОткрытия()
   jah1111
 
5 - 25.09.20 - 15:43
(4) извините, второе предложение бред, просто запутался.

я не понимаю почему по кнопке все отлично работает а по процедуре  - нифига?
   jah1111
 
6 - 25.09.20 - 15:56
(3) обязательно, данные из модалОкна2 должны попадать в модалОкно1. и оттуда уже в таблицу документа.
в общем, структура такая:
кнопка "Новая строка" -> Модальное окно с несколькими элементами диалога значение которых меняются по кнопках, которые вызывают модалОкно2(обработка поиска в БД). При вводе новой строки модалОкно2 вызывается автоматически поочередно для каждого элемента диалога, кнопка Ок в модалОкне2 и строка готова.
   АЛьФ
 
7 - 25.09.20 - 16:45
2(6) А как данные передаются между окнами?
   jah1111
 
8 - 25.09.20 - 17:15
(7)  в родительской форме:

    Конт = глВзятьКонтекст(Контекст);
    
    СЗ = СоздатьОбъект("СписокЗначений");
    СЗ.ДобавитьЗначение(Конт,        "Контекст");
    СЗ.ДобавитьЗначение(Команда,    "Команда");// Разным кнопкам  - разная команда. Передается в дочернюю форму.

          
    ОткрытьФормуМодально("Обработка.ДанныеСтроки",СЗ);

в дочерней форме:

    Докум = Форма.Параметр.Получить("Контекст");
    Команда = Форма.Параметр.Получить("Команда");


ну и пример передачи назад:

Докум.Товар = ТоварИзМодальнойФормы;


Когда вызываю второе модальное окно из процедуры ПриОткрытии() первого модального окна, обработка фунциклирует нормально, но слои на форме все вперемешку и формексовские шрифты не работают.
   Ёпрст
 
9 - 25.09.20 - 18:24
не нужна тебе модальная форма, в лучшем случае, подбор открывать
   Злопчинский
 
10 - 25.09.20 - 18:27
Смотря какая версия формекса
В модальном режиме были версии в которых ПослеОткрытия в модальном не работал. Надо юзать ПослеСоздания()
   АЛьФ
 
11 - 28.09.20 - 10:46
2(8) Не надо работать с контекстом родительского окна, переданным через параметр. Возвращай из дочерней формы все нужные значения в том же списке и в родительском уже все обрабатывай.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.