Имя: Пароль:
1C
1С v8
Эмуляция создания нового элемента при вводе (УФ, асинхронность)
0 Fragster
 
гуру
15.03.16
15:49
Нужно по нажатию кнопки получить форму нового объекта, а по "Записать И Закрыть" в оповещении отловить ссылку на него. Делаю так, в оповещении пусто: http://its.1c.ru/db/v836doc#bookmark:dev:TI000001480

    СделкаПартнера = Элементы.Список.ТекущаяСтрока;
    ДанныеСтроки = Элементы.Список.ДанныеСтроки(СделкаПартнера);
    Если СделкаПартнера = Неопределено Тогда Возврат; КонецЕсли;
    Оповещение = Новый ОписаниеОповещения("СвязатьСЗаявкойНаПокупкуЗавершение", ЭтотОбъект, Элементы.Список.ТекущаяСтрока);
    ПараметрыФормы = Новый Структура();
    ПараметрыФормы.Вставить("Основание", СделкаПартнера);
    ПараметрыФормы.Вставить("РежимВыбора", Истина);
    ПараметрыФормы.Вставить("ТекстЗаполнения", "");
    Отбор = Новый Структура();
    Отбор.Вставить("Партнер", ДанныеСтроки.Партнер);
    Отбор.Вставить("Валюта", ДанныеСтроки.Валюта);
    ПараметрыФормы.Вставить("ПараметрыВыбора", Отбор);
    ПараметрыФормы.Вставить("ЗначенияЗаполнения", Отбор);
    
    ОткрытьФорму("Документ.ЗаявкаНаПокупкуТовара.ФормаОбъекта", ПараметрыФормы, ЭтаФорма, , , , Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Процедура СвязатьСЗаявкойНаПокупкуЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
    Если Не ЗначениеЗаполнено(РезультатЗакрытия) Тогда
        Возврат;
    Конецесли;
  
    СвязатьСЗаявкойНаПокупкуЗавершениеНаСервере(РезультатЗакрытия, ДополнительныеПараметры)
  
КонецПроцедуры

Прошу подсказать, что забыл?

В обработку выбора формы ссылка попадает, но у меня несколько почти одинаковых команд и результат должен прилетать оповещением в разные места, иначе получается говнокод с запоминанием текущей строки, маршрутизацией на основе активной кнопки формы и прочим...
1 Fragster
 
гуру
15.03.16
15:50
в оповещение прилетает "неопределено"
2 hhhh
 
15.03.16
15:54
(1) а что там написано в Оповестить()  ?
3 also
 
15.03.16
15:57
ОповеститьОЗаписиНовогоОбъекта ?
4 Cyberhawk
 
15.03.16
15:59
С чего ты взял, что в РезультатЗакрытия будет что-то? Это прокатывает, если программно ту форму закрыл бы методом Закрыть() с непустым параметром этого метода
5 Fragster
 
гуру
15.03.16
15:59
(2) в открываемой форме нет "Оповестить". Задача, по идее, в том, чтобы в ПриЗакрытии передать Объект.Ссылка в качестве параметра закрытия. А также отличить "Записать И Закрыть" от нажатия на крестик. Если это можно сделать без изменения открываемой формы (как это происходит при создании при вводе), это отлично. Если нет - то тогда вопрос, как отличить "записать и закрыть" от эскейпа и крестика.
Особенно для случая, когда открывается не форма нового объекта, а уже существующего (т.е. на заполненность объект.ссылка ориентироваться нельзя)
6 Fragster
 
гуру
15.03.16
16:01
(5)+ событие обработкавыбора в форме-владельце работает как надо, но, к сожалению, оно получается одно на все открываемые формы.
7 Fragster
 
гуру
15.03.16
16:01
и параметра в него из места вызова ОткрытьФорму не передать
8 Fragster
 
гуру
15.03.16
16:23
ну да, это не "открыть форму существующего объекта", я понимаю...
9 Fragster
 
гуру
15.03.16
16:42
и даже не "открыть форму объекта, заполненного на основании"...
Ошибка? Это не ошибка, это системная функция.