Имя: Пароль:
1C
1С v8
Вопрос про форму записи регистра сведений
0 SHAS
 
10.03.19
11:51
Добрый день! В определённом месте мне надо из формы обработки открыть форму новой записи регистра сведений и после её закрытия, в форме обработки, определить, нажали ли в форме записи регистра сведений кнопку "Записать и закрыть" (т.е. записали запись в регистр) или просто отказались (закрыли крестиком или Esc). Не могу понять, как это определить.

Открываю форму вот так:

ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ЗначенияЗаполнения", ПередаваемыеПараметры);
Форма = ПолучитьФорму("РегистрСведений.Штрихкоды.ФормаЗаписи", ПараметрыФормы,этаФорма);
й = Форма.ОткрытьМодально();    

После закрытия "Формы" й всегда принимает значение "Неопределено".
1 SHAS
 
10.03.19
11:56
После закрытия формы записи регистра обращаться к регистру, чтобы проверить, есть ли запись в базе не хочется - лишнее обращение к базе, может можно как-то по-другому?
2 palsergeich
 
10.03.19
11:57
Пилить свою кнопку записать и закрыть и в ней оповещать форму родителя
3 palsergeich
 
10.03.19
12:00
А в ней код простой
Процедура КнопкаЗаписатьИзакрыть()
Записать()
ОповеститьОВыборе(Истина)// ну или что надо передать в родителя
КонецПроцедуры
4 SHAS
 
10.03.19
12:01
Про свою кнопку мысль была, но очень похоже на костыли. Была надежда, что есть более технологичное решение, о котором я не знаю, в силу пробелов в знаниях про УФ.
5 SHAS
 
10.03.19
12:01
(3) в любом случае лучше. чем к базе обращаться, спасибо
6 palsergeich
 
10.03.19
12:02
Стандартно форма именно записи, а не выбора ничего не возвращает во владельца.
При записи кидается оповещение ОповеститьОбИзменении, но оно не перехватывается во встроенных процедурах
7 palsergeich
 
10.03.19
12:04
Я бы не назвал это костылями, глянь любую конфу современную на УФ. Очень много стандартных кнопок заменены своими
8 SHAS
 
10.03.19
12:06
(7) Если костылями пользуются в типовых, то они ж не перестают быть костылями :)
9 palsergeich
 
10.03.19
12:08
(8) Это не костыль, а подмена стандартного поведения.
Ну вот зачем оповещать о записи владельца в общем случае?
10 SHAS
 
10.03.19
12:10
Ну, это уже философский вопрос, как можно было бы реализовать знание о том, что запись была произведена. Будем подменять...
11 SHAS
 
10.03.19
12:47
А вот не срабатывает обработкаОповещения. В момент "Оповестить о выборе" в "ВладелецФормы" стоит моя форма обработки. Но в форме обработки в "ОбработкуОповещения" не заходит. В СП:
Может применяться в случае, когда открытие формы выбора или подбора выполнено средствами языка.

Может потому что у меня не форма выбора или подбора?

В общем, пришлось добавить реквизит ("ЗаписалиШК") в обработку и из процедуры "ЗаписатьИЗакрыть" его присваивать. Но это костылищи! Может я что-то делаю не так?
12 hhhh
 
10.03.19
13:42
(11) Оповестить о выборе и просто Оповестить - это две совершенно разные вещи. Вы всё свалили в одну кучу.

Так должно быть

ОповеститьОВыборе() ->  ОбработкаВыбора

Оповестить() ->  ОбработкаОповещения
13 palsergeich
 
10.03.19
13:42
Ну я думал что справку по этому методу то он прочитает)
14 palsergeich
 
10.03.19
13:43
А широковещательные оповещения - зло
15 SHAS
 
10.03.19
15:29
Спасибо, тормоз, бывает, внимание никогда не было моей сильной стороной, а оповещения мне встречаются очень редко.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn