|
Программно вызвать "ПередНачаломДобавления" с открытием формы нового элемента. | ☑ | ||
---|---|---|---|---|
0
Zhuravlik
08.04.13
✎
23:52
|
В форме выбора создаю новый элемент справочника, и заполняю его реквизиты в предопр. процедуре СправочникСписокПередНачаломДобавления().
Хочу, чтобы в ПриОТкрытии() формы выбора открывался на создание новый элемент с вызовом этого события. Форма выбора и новый элемент открываются модально. Сейчас делаю через шел: В ПриОткрытии(): Shell = Новый COMОбъект("WScript.Shell"); Shell.sendKeys("{INSERT}"); Только вот не всегда это срабатывает, иногда почему-то конфа сворачивается и просто включает инсерт. Если я в ПриОткрытии открываю модально форму нового элемента, то форма выбора не появляется до тех пор, пока модальное окно не будет закрыто. Если в ПриОткрытии форму нового открывать не модально, то она просто уходит на задний план модально открытой формы выбора. С шелом работает как нужно. Но не всегда( Пробую программно нажать на кнопку - тоже не выходит, дошел до Действие = Панель.ПолучитьДействие("Добавить"), как это использовать не пойму. |
|||
1
zladenuw
08.04.13
✎
23:53
|
(0) ты под чем ? колись. что ты хочешь сделать ?
|
|||
2
zladenuw
08.04.13
✎
23:54
|
что тебе мешает
Справочники.Мой.СоздатьЭлемент() ? |
|||
3
Zhuravlik
08.04.13
✎
23:58
|
(1) :)
Я хочу, чтобы открылась форма выбора, и открылся новый элемент. Не записанный. И на фоне формы выбора. Чтобы пользователь мог отказаться от создания, и выбрать существующий. Дело еще в том, что элемент справочника при создании заполняется по спец. реквизиту (строка 300 симв.), который я при создании нового элемента разбиваю на реквизиты. Уж не знаю как сказать( Посмотрите модуль? Процедура ВводКонтрагента() спрКонтрагенты = Справочники.Контрагенты.СоздатьЭлемент(); спрКонтрагенты.СтрокаВыгрузки = СтрокаВыгрузки; спрКонтрагенты.ПечРеквизиты_ФЛ = ПечРеквизиты_ФЛ; спрКонтрагенты.ПолучитьФорму("ФормаЭлемента").Открыть(); КонецПроцедуры Процедура СправочникСписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, ЭтоГруппа) // Вставить содержимое обработчика. //Элемент.СтрокаВыгрузки = СтрокаВыгрузки; Если НЕ ЭтоГруппа И ЗначениеЗаполнено(СтрокаВыгрузки) Тогда Отказ = Истина; ВводКонтрагента(); КонецЕсли; КонецПроцедуры Процедура ПриОткрытии() РежимВыбора = Истина; ЗакрыватьПриВыборе = Истина; Если ЗначениеЗаполнено(СтрокаВыгрузки) Тогда //Shell = Новый COMОбъект("WScript.Shell"); //Shell.sendKeys("{INSERT}"); //ВводКонтрагента(); //Действие = Панель.ПолучитьДействие("Добавить"); КонецЕсли; КонецПроцедуры Процедура СправочникСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) // Вставить содержимое обработчика. Если ТипЗнч(ВыбраннаяСтрока) = Тип("СправочникСсылка.Контрагенты") Тогда Если ВыбраннаяСтрока.СтрокаВыгрузки <> СтрокаВыгрузки Тогда Объект = ВыбраннаяСтрока.ПолучитьОбъект(); Объект.СтрокаВыгрузки = СтрокаВыгрузки; Объект.Записать(); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
4
zladenuw
09.04.13
✎
00:01
|
(3) так после открытие цепляй обработчик ожидание.
с условием если Процедура Моя () Если ЗначениеЗаполнено(СтрокаВыгрузки) Тогда ВводКонтрагента() КонецЕсли; Конецпроцедуры а уже Процедура ПриОткрытии() ПодключитьОбработчикОжидания("Моя ",5,) Конецпроцедуры Хотя зачем. |
|||
5
Zhuravlik
09.04.13
✎
00:03
|
(4) Приходила в голову такая мысль, но как-то отбросил, думал что в 8 все гораздо интереснее.
|
|||
6
Zhuravlik
09.04.13
✎
00:04
|
(4) Спасибо за совет) По-ходу так и сделаю.
|
|||
7
alexei366
09.04.13
✎
00:11
|
А в модуле ПриОткрытии формы выбора не варик воспользоваться функцией ПолучтьФорму() или процедурой ОткрытьФорму() ?
|
|||
8
Zhuravlik
09.04.13
✎
00:19
|
(7)
Если я в ПриОткрытии открываю модально форму нового элемента, то форма выбора не появляется до тех пор, пока модальное окно не будет закрыто. Если в ПриОткрытии форму нового открывать не модально, то она просто уходит на задний план модально открытой формы выбора. |
|||
9
alexei366
09.04.13
✎
00:54
|
(8) Б л я т ь
ПараметрыФормы = Новый Структура("РежимОткрытияОкна",РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); ОткрытьФорму("Справочник.Мой.ФормаОбъекта", ПараметрыФормы, Список, , , ); Список - эт как у тя назван элемент списка формы. |
|||
10
Dionis Sergeevich
09.04.13
✎
00:59
|
Создаешь объект. получаешь его форму. Объект не запишется пока ты не запишешь его программно либо через форму. всё
|
|||
11
alexei366
09.04.13
✎
01:09
|
(10) чо ты гонишь, какой создаш объект?
|
|||
12
Dionis Sergeevich
09.04.13
✎
01:17
|
(11) создаешь программно объект. Он не записан. Открываешь форму. И либо ты ее запишешь - записав объект, либо ты не запишешь. и созданный но не записанный объект пропадет
|
|||
13
alexei366
09.04.13
✎
01:24
|
(12) код примерный покажи
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |