|
Необходим совет по заполнению реквизита формы справочника значением подчиненного | ☑ | ||
---|---|---|---|---|
0
Aleksey1989
13.03.13
✎
09:16
|
Добрый день. Ситуация такая. Есть справочник контрагенты, для каждого контрагента можно указать контактное лицо, которое будет использоваться по-умолчанию. Для этого необходимо из формы элемента справочника "Контрагенты" открыть окно выбора контактного лица, далее в этой форме выбора создать контактное лицо, после чего его выбрать.
Конечного пользователя этот вариант не устраивает (т.е. ему не нравится то, что для того, чтобы указать контактное лицо, ему надо открывать форму выбора и т.д.), поэтому в форме элемента справочника "Контрагенты" я добавил кнопку "СоздатьКонтактноеЛицо", которая открывает форму элемента справочника "КонтактныеЛица". Как мне теперь сделать так, чтобы реквизит формы элемента справочника "Контрагенты" заполнялся созданным контактным лицом? Вот код, который я использую: &НаКлиенте Процедура СоздатьКонтактноеЛицо(Команда) ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ЗначенияЗаполнения",Новый Структура("Владелец", Объект.Ссылка)); ОткрытьФорму("Справочник.КонтактныеЛица.ФормаОбъекта",ПараметрыФормы); Объект.КонтактноеЛицо КонецПроцедуры |
|||
1
Cube
13.03.13
✎
09:18
|
&НаКлиенте
Процедура СоздатьКонтактноеЛицо(Команда) ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ЗначенияЗаполнения",Новый Структура("Владелец", Объект.Ссылка)); ВыбранноеКонтактноеЛицо = ОткрытьФормуМодально("Справочник.КонтактныеЛица.ФормаОбъекта",ПараметрыФормы); Если КонтактноеЛицо <> Неопределено Тогда Объект.КонтактноеЛицо = КонтактноеЛицо; Объект.Записать(); КонецЕсли; КонецПроцедуры Ошибки сам исправишь)) |
|||
2
Aleksey1989
13.03.13
✎
09:27
|
(1) Каким образом ссылка на контактное лицо будет скопирована в переменную КонтактноеЛицо?
|
|||
3
Cube
13.03.13
✎
09:30
|
(2) Я же написал, "Ошибки сам исправишь". Или ты закоренелый лентяй?
|
|||
4
Aleksey1989
13.03.13
✎
09:33
|
(3) Лентяй я конечно еще тот :).
По вопросу: я написал вот такой код: ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ЗначенияЗаполнения",Новый Структура("Владелец", Объект.Ссылка)); ФормаКонтактногоЛица = ОткрытьФормуМодально("Справочник.КонтактныеЛица.ФормаОбъекта",ПараметрыФормы); Сообщить(""); Объект.КонтактноеЛицо = ФормаКонтактногоЛица.Объект.Ссылка; Но он чего-то не работает, т.к. значение переменной ФормаКонтактногоЛица имеет тип "Неопределенно", поэтому выцепить от туда ссылку на контактное лицо не получится. Единственным вариантом я сейчас вижу создание вручную уникального идентификатора и назначение его контактному лицу. |
|||
5
Cube
13.03.13
✎
09:38
|
(4) Мда... Пейсатель ты ещё тот))))
Чтобы форма вернула значение, это значение нужно передавать в метод Закрыть() этой формы. А я так понимаю, твоя форма ничего не возвращает... |
|||
6
Aleksey1989
13.03.13
✎
09:39
|
(6) "А я так понимаю, твоя форма ничего не возвращает..." Так и есть.
Спасибо! |
|||
7
Aleksey1989
13.03.13
✎
10:52
|
Сори за глупый вопрос, но как "это значение нужно передавать в метод Закрыть() этой формы"?
|
|||
8
Aleksey1989
13.03.13
✎
10:56
|
Кстати, можно было сделать еще проще, а именно:
&НаКлиенте Процедура СоздатьКонтактноеЛицо(Команда) ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ЗначенияЗаполнения",Новый Структура("Владелец", Объект.Ссылка)); Форма = ПолучитьФорму("Справочник.КонтактныеЛица.ФормаОбъекта",ПараметрыФормы); ОткрытьФормуМодально(Форма, ПараметрыФормы); Объект.КонтактноеЛицо = форма.Объект.ссылка; КонецПроцедуры |
|||
9
Cube
13.03.13
✎
10:57
|
(7) Закрыть("Не смотри сюда. Тут ничего нет!");
|
|||
10
Aleksey1989
13.03.13
✎
11:17
|
(9) Теперь буду знать, спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |