![]() |
![]() |
![]() |
|
Демонический список. Открыть определенную форму документа | ☑ | ||
---|---|---|---|---|
0
егаис
14.03.16
✎
11:32
|
БП 3
Есть ДС, есть два поля документа - Склад и Физлицо. Нужно, в зависимости от заполненного значения поля, открыть определенную форму документа. Для заполненного значения Склад - одна форма, для Физлица - другая. В штатном механизме ПТиУ например, используется вспомогательная форма. А можно как-то штатно через событие ДС открыть нужную форму? |
|||
1
aleks_default
14.03.16
✎
11:39
|
А список обработчиков событий посмотреть, не?
|
|||
2
Cyberhawk
14.03.16
✎
11:41
|
ОткрытьФорму()
|
|||
3
егаис
14.03.16
✎
11:41
|
методом тыка пытаюсь определить который подходит
|
|||
4
vde69
14.03.16
✎
11:43
|
сделать подписку (на нужные тебе типы) на событие <ОбработкаПолученияФормы>
|
|||
5
егаис
14.03.16
✎
11:43
|
&НаКлиенте
Процедура СписокОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) ТекущиеДанные = Элемент.ТекущиеДанные; Если НЕ ТекущиеДанные.ФизическоеЛицо.Пустая() Тогда ОткрытьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДоп", , ВладелецФормы); Иначе ОткрытьФорму("Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента", , ВладелецФормы); КонецЕсли; КонецПроцедуры Не хочет работать |
|||
6
егаис
14.03.16
✎
11:50
|
все события попробовал, нихерась...что не так?
|
|||
7
aleks_default
14.03.16
✎
12:04
|
(5)Ты описание этого события читал?
|
|||
8
егаис
14.03.16
✎
12:10
|
Событие "выбор" однозначно, проверил
Упустил СтандартнаяОбработка = Ложь; Все работает, спасибо, закрываем. |
|||
9
егаис
14.03.16
✎
12:18
|
возникла еще одна проблема )
открывается две формы документа - доп и основная Ткните носом. Модуль &НаКлиенте Процедура СписокВыбор(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ТекущиеДанные = Элемент.ТекущиеДанные; СтруктураПараметров = Новый Структура; СтруктураПараметров.Вставить("Ключ", ТекущиеДанные.Ссылка); Если НЕ ТекущиеДанные.ФизическоеЛицо.Пустая() Тогда ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаДоп", СтруктураПараметров, ВладелецФормы); Иначе ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаДокумента", СтруктураПараметров, ВладелецФормы); КонецЕсли; КонецПроцедуры |
|||
10
егаис
14.03.16
✎
12:31
|
почему после открытия доп формы открывается еще и основная форма документа?
|
|||
11
aleks_default
14.03.16
✎
12:32
|
вот этот обработчик СписокОбработкаВыбора удали же
|
|||
12
егаис
14.03.16
✎
12:34
|
его нет, я переименовал
|
|||
13
aleks_default
14.03.16
✎
12:46
|
(12)В смысле переименовал? В свойствах таблицы формы в событиях он остался?
А мож другие где забыл удалить? |
|||
14
Fragster
гуру
14.03.16
✎
12:51
|
В данном случае я бы использовал обработчик получения формы у менеджера объекта...
|
|||
15
егаис
14.03.16
✎
12:55
|
(13) события у формы списка только такие
ВыборСписок СписокПередНачаломДобавления СписокПередНачаломИзменения |
|||
16
егаис
14.03.16
✎
12:56
|
+
СписокПередЗагрузкойПользовательскихНастроекНаСервере СписокПроверкаПеретаскивания СписокПеретаскивание все, никаких прочих событий открытия формы больше нет |
|||
17
егаис
14.03.16
✎
12:56
|
(14) это как?
|
|||
18
aleks_default
14.03.16
✎
13:01
|
(14) интересно, а как туда параметры передать?
|
|||
19
Fragster
гуру
14.03.16
✎
13:06
|
(18) СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
ОбработкаПолученияФормы (FormGetProcessing) Синтаксис: ОбработкаПолученияФормы(<ВидФормы>, <Параметры>, <ВыбраннаяФорма>, <ДополнительнаяИнформация>, <СтандартнаяОбработка>) Параметры: <ВидФормы> Тип: Строка. Имя стандартной формы. <Параметры> Тип: Структура. Параметры формы. <ВыбраннаяФорма> Содержит имя открываемой формы или объект метаданных Форма. Если значение параметра изменено, то будет осуществлен поиск формы в пределах объекта, для которого открывается форма. <ДополнительнаяИнформация> Тип: Структура. Дополнительная информация открытия формы. <СтандартнаяОбработка> Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет (выбираются установленные разработчиком форма и параметры). Значение по умолчанию: Истина. Описание: Обработчик события вызывается на сервере при получении стандартной управляемой формы. Если требуется переопределить выбор открываемой формы, необходимо установить в параметре <ВыбраннаяФорма> другое имя формы или объект метаданных формы, которую требуется открыть, и в параметре <СтандартнаяОбработка> установить значение Ложь. |
|||
20
Fragster
гуру
14.03.16
✎
13:07
|
тут же вопрос простой - если указанное поведение только в этом ДС - то определяем событие Выбор, если это поведение объекта - то в обработке получения формы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |