|
v7: Открытие справочника и передача выбранного в документ. | ☑ | ||
---|---|---|---|---|
0
Enlighted
25.12.15
✎
11:17
|
Умный народ, подскажите новичку.
Есть документ при открытии которого сначала должна открыться форма справочника "Контрагенты" пользователь должен выбрать одного и при закрытии справочника, выбранный Контрагент должен попадать в собственно документ. вот конструкция которую я навалял КАгент = СоздатьОбъект("Справочник.Контрагенты"); КАгент.ОткрытьФормуМодально ("Справочник.Контрагенты"); Ругается что "ОткрытьФормуМодально" используется неверно, а как по другому передать выбранного контрагента в документ я пока не знаю. Однако, ОткрытьФормуМодально ("Справочник.Контрагенты"); открывает форму но при выборе элемента он открывает конкретного контрагента на редактирование. |
|||
1
ДенисЧ
25.12.15
✎
11:18
|
ПолучитьФорму().ОткрытьМодально()....
|
|||
2
Enlighted
25.12.15
✎
11:19
|
(1) О_о реактивный ответ. Сейчас применю.
|
|||
3
Ясный перец
25.12.15
✎
11:31
|
(2) Применил? ;)
|
|||
4
Enlighted
25.12.15
✎
11:34
|
(1)
КАгент = СоздатьОбъект("Справочник.Контрагенты"); КАгент = ПолучитьФорму().ОткрытьМодально("Справочник.Контрагенты"); КАгент = ПолучитьФорму<<?>>().ОткрытьМодально("Справочник.Контрагенты"); {Документ.ЗалоговыйБилет.Форма.Модуль(580)}: Функция не обнаружена (ПолучитьФорму) КАгент.ПолучитьФорму().ОткрытьМодально("Справочник.Контрагенты"); КАгент.ПолучитьФорму().ОткрытьМодально("Справочник.Контрагенты"); {Документ.ЗалоговыйБилет.Форма.Модуль(580)}: Поле агрегатного объекта не обнаружено (ПолучитьФорму) |
|||
5
Ясный перец
25.12.15
✎
11:35
|
(4) Потому что в 7.7 нет такого слова ;)
|
|||
6
Enlighted
25.12.15
✎
11:37
|
Остряки :)
|
|||
7
Ясный перец
25.12.15
✎
11:38
|
ОткрытьПодбор() не пробовал?
|
|||
8
Enlighted
25.12.15
✎
11:42
|
(7) Ясен перец не пробовал! Ибо новичок.
Сейчас |
|||
9
Enlighted
25.12.15
✎
11:45
|
Попробовал:
КАгент = СоздатьОбъект("Справочник.Контрагенты"); Кагент = ОткрытьПодбор("Справочник.Контрагенты"); открывается окно справочника, при выборе агента Процедура не обнаружена: ОбработкаПодбора/ProcessPermanentChoice |
|||
10
Ясный перец
25.12.15
✎
11:46
|
Ну так напиши её ;)
|
|||
11
Ясный перец
25.12.15
✎
11:46
|
(предопределённая вещь - в том же синтакс-помощнике посмотри)
|
|||
12
Масянька
25.12.15
✎
11:48
|
(0) Что из типовых есть под рукой?
|
|||
13
Ясный перец
25.12.15
✎
11:49
|
Типа такого:
(допустим реквизит Контрагент в документе так и называется) Процедура обработкаПодбора(элемент) Контрагент = элемент; конецПроцедуры Как-то так... |
|||
14
Pers0naGrata
25.12.15
✎
11:50
|
(0)
Процедура ПриОткрытии() ОткрытьПодбор("Справочник.Контрагенты","ДляВыбора",,0); КонецПроцедуры Процедура ОбработкаПодбора(Элемент) Контрагент = Элемент; КонецПроцедуры |
|||
15
Pers0naGrata
25.12.15
✎
12:09
|
(14) Тебе нужно модально. Тогда для типовой ТиС можно сделать так:
Процедура ПриОткрытии() Парам = "Выбор"; ОткрытьФормуМодально("Справочник.Контрагенты.ДляВыбора", Парам); Контрагент = Парам; КонецПроцедуры У тебя типовая или самописка? |
|||
16
vladmenleo
25.12.15
✎
12:18
|
А можно вот так
Процедура ПриОткрытии() Контра = ПолучитьПустоеЗначение("Справочник.Контрагенты"); Если ВвестиЗначение(Контра, "Выберите Контрагента", "Справочник.Контрагенты") = 1 Тогда Контрагент = Контра; КонецЕсли; КонецПроцедуры |
|||
17
Enlighted
25.12.15
✎
13:37
|
(13) (14) Благодарю за разъяснение
Всё удалось, работает. |
|||
18
Enlighted
26.12.15
✎
12:01
|
(15) У меня походу что-то из банка + куча самописки
Ваш вариант открывает форму справочника при выборе открывается форма редактирования Контрагента. Не подходит (16) Ваш вариант открывает форму справочника, при выборе форма справочника закрывается выбранный КА в документ не передаётся |
|||
19
Enlighted
26.12.15
✎
12:05
|
(16) (18) А всё проверил всё верно работает
|
|||
20
HawkEye
26.12.15
✎
17:39
|
подозревается мне, что все это действо лучше всего смотрелось бы в ВводНового... а не в ПриОткрытии...
|
|||
21
Enlighted
28.12.15
✎
14:10
|
(20) Тут возник момент.
Всё отлично работает только если такого контрагента нет, то его надо создать а в открывшейся форме такая опция не предусмотренна. И форма не открывается на весь экран. |
|||
22
Злопчинский
28.12.15
✎
14:13
|
(21) ну так поредусмотри такую опцию (кнопку "сделать нового контрагента", или делай его автоматом если его нет и хватает данных для создания контрагента...
|
|||
23
Enlighted
28.12.15
✎
14:19
|
(22) Не, открывается форма для выбора контрагента еще никаких данных нет предполагается выбрать контрагента и передать его в запущенный документ,
Процедура ПриОткрытии() Контра = ПолучитьПустоеЗначение("Справочник.Контрагенты"); Если ВвестиЗначение(Контра, "Выберите Контрагента", "Справочник.Контрагенты") = 1 Тогда Контрагент = Контра; КонецЕсли; КонецПроцедуры но при открытии формы в ней отсутствуют кнопки и хоткеи для созднаия нового контрагента только выбор уже существующего |
|||
24
HawkEye
28.12.15
✎
14:45
|
(23) в ввестиЗначение - и не будет таких кнопок..
используй ОткрытьФормуМодально() |
|||
25
HawkEye
28.12.15
✎
14:47
|
(23) документ откуда у тебя открывается? он новый или существующий?
|
|||
26
HawkEye
28.12.15
✎
14:50
|
+24 или в при открытии используй ложное закрытие и Активизируй реквизит "Контрагент"
|
|||
27
Enlighted
28.12.15
✎
15:08
|
(25) документ новый открывается создаётся точнее из журнала документов
Процедура ПриОткрытии() ОткрытьПодбор("Справочник.Контрагенты","ДляВыбора",,0); КонецПроцедуры Процедура ОбработкаПодбора(Элемент) Контрагент = Элемент; КонецПроцедуры Этот вариант самый подходящий всё что надо есть и создание и выбор, один вопрос по нему. когда открывается справочник ощущение что он открывается 2 раза. раз мигнуло окно раз поверх него такое же со справочником. ну как-бы косметический эффект |
|||
28
HawkEye
28.12.15
✎
15:11
|
(27) если новый, то и вызывать надо в ВводНового(), а открывать окно для выбора можно или через Подбор, или через ОткрытьФормуМодально или через ложное закрытие и Активировать... как делать - сам выбирай.
ну или ВыбратьЗначение() - но только для выбора |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |