|
программно заполнить поле адреса на форме контрагента | ☑ | ||
---|---|---|---|---|
0
shds
16.10.12
✎
16:51
|
как программно заполнить поле адреса на форме нового контрагента.
(типовая Бух 2.0) ФормаНового =Справочники.Контрагенты.ПолучитьФормуНовогоЭлемента("ФормаЭлемента",ЭтаФорма); ФормаНового.Наименование= "Рога и копыта"; ФормаНового.ЭлементыФормы.ПолеКИ1.Значение = "мой адрес, не дом и не улица"; ФормаНового.ОткрытьМодально(); // тут пользователь смотрит, корректирует и сохраняет, либо отказывается НовыйЭлементСсылка = ФормаНового.Ссылка; Если НовыйЭлементСсылка <> Справочники.Контрагенты.ПустаяСсылка() Тогда Сообщить("создан контрагент "+НовыйЭлементСсылка); Иначе Сообщить("контрагент не создан."); КонецЕсли; проблема в том, что в обработчике формы справочника "приоткрытии" заполненное значение поля адреса (ПолеКИ1) очищается, и заполняется на основании данных регистра сведений, который в настоящий момент пуст,- элемент то новый (и не факт что будут пользователем сохранен). единственный путь пока нашел, - отключение обработчика с выполнением всех действий у себя в обработке, но... как то не нравится решение. может есть вариант? |
|||
1
YF
16.10.12
✎
16:52
|
(0) Сначала открыть форму, потом заполнить и все это программно ..
|
|||
2
DrHiHi
16.10.12
✎
16:54
|
может будет легче записать в регистр сведений "контактная информация" адрес??
|
|||
3
YF
16.10.12
✎
16:55
|
(2) Он не знает еще будут ли записывать элемент справочника
|
|||
4
shds
16.10.12
✎
16:56
|
>>Сначала открыть форму,
хотелось бы модально >>может будет легче записать в регистр сведений а "объект" кто, элемента то не существует, да и не факт что пользователь его запишет |
|||
5
hhhh
16.10.12
✎
17:00
|
(4) пишите в комментарий, там места дофига, можете хоть 50 адресов записать.
|
|||
6
DrHiHi
16.10.12
✎
17:17
|
(4) не ленись, а посмотри в типовом механизме как все реализовано и от туда вытащи
|
|||
7
shds
17.10.12
✎
11:05
|
в общем, победил )
с переопределением я был трав, только чуть мимо. код: ФормаНового = Справочники.Контрагенты.ПолучитьФормуНовогоЭлемента(,ЭтаФорма); //заполнение реквизитов ФормаНового.Наименование = "Рога и копыта"; ФормаНового.Комментарий = "загружен"; //переопределим обработчика "ПередОткрытием" и самостоятельно обработаем ФормаНового.УстановитьДействие("ПередОткрытием", Неопределено ); ФормаНового.НаборКонтактнойИнформации = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); ФормаНового.НаборКонтактнойИнформации.Отбор.Объект.Установить(ФормаНового.Ссылка); НоваяСтрока = ФормаНового.НаборКонтактнойИнформации.Добавить(); НоваяСтрока.Объект = ФормаНового.ЭтотОбъект; НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента; НоваяСтрока.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; НоваяСтрока.Представление = "Фактический адрес, дом, улица "; НоваяСтрока.Комментарий = "Комментарий Фактический"; НоваяСтрока = ФормаНового.НаборКонтактнойИнформации.Добавить(); НоваяСтрока.Объект = ФормаНового.ЭтотОбъект; НоваяСтрока.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента; НоваяСтрока.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес; НоваяСтрока.Представление = "Юридический адрес, дом, улица "; НоваяСтрока.Комментарий = "Комментарий Юридический"; //конец (переопределим обработчика "ПередОткрытием" и самомстоятельно обработаем) ФормаНового.ОткрытьМодально(); НовыйЭлементСсылка = ФормаНового.Ссылка; Если НовыйЭлементСсылка <> Справочники.Контрагенты.ПустаяСсылка() Тогда Сообщить("создан контрагент "+НовыйЭлементСсылка); Иначе Сообщить("контрагент не создан."); КонецЕсли; есть замечания? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |