|
Управляемая форма и поле выбора составного типа | ☑ | ||
---|---|---|---|---|
0
Yea-Yea
03.02.14
✎
09:36
|
Есть управляемая форма документа Инвентаризация товаров на складе.
На форме есть поле составного типа: Справочник.Номенклатура и СписокЗначений. При начале выбора, предлагает выбрать из двух типов - выбираю "номенклатура" и после этого выбираю конкретный элемент справочника. Если при начале выбора выбрать "список значений" - то откроется форма списка значений, однако подбор в нем не типизирован! т.е. перед добавлением предлагает выбрать конкретный элемент метаданных (что конечно не удобно). Если же в свойствах поля убрать флаг составного типа и оставить только "список значений" - то там же в свойствах этот список можно типизировать (указать тип "справочник.номенклатура") и тогда уже при выборе откроется типизированный список значений с возможностью подбора сразу из справочника номенклатура. Как только меняю тип поля ввода на составной - возможность типизировать список значений пропадает. Вопрос - как сделать управляемую форму инвентаризации аналогично обычной. Суть - при изменении типа сравнения с "равно" на "в списке" - должен меняться тип поля ввода (он кстати и меняется, если использовать ограничение типа при условии что поле составного типа), но при установке на список значений - он не типизирован! как быть? |
|||
1
Yea-Yea
03.02.14
✎
09:51
|
где же гуру управляемых форм...
|
|||
2
RomaH
naïve
03.02.14
✎
09:53
|
устанавливай свойства поля кодом
|
|||
3
Рэйв
03.02.14
✎
09:55
|
(0)Массив попробуй передать в параметр, а не список. Иногда помогает
|
|||
4
Yea-Yea
03.02.14
✎
09:56
|
(2) не нашел как типизировать список значения кодом. есть пример? в отладчике не нашел подходящих свойств.
|
|||
5
Yea-Yea
03.02.14
✎
09:56
|
(3) а в какой параметр?
|
|||
6
RomaH
naïve
03.02.14
✎
09:59
|
(4) свойства элемента посмотри
что-то типа "типЗначения" |
|||
7
RomaH
naïve
03.02.14
✎
10:00
|
или ограничение типа
|
|||
8
Yea-Yea
03.02.14
✎
10:01
|
(6) искал, нет такого
|
|||
9
Yea-Yea
03.02.14
✎
10:02
|
(7) ограничение типа использую. позволяет установить конкретный тип выбора для поля составного типа. т.е. ставлю или Тип("Справочник.Номенклатура") или Тип("СписокЗначений"). Все работает. Но СписокЗначений получается не типизированный
|
|||
10
RomaH
naïve
03.02.14
✎
10:04
|
(8) плохо искал - поищи еще раз
давай скрин где не нашел |
|||
11
GROOVY
03.02.14
✎
10:06
|
СписокЗначений (ValueList)
ТипЗначения (ValueType) Использование: Чтение и запись. Описание: Тип: ОписаниеТипов. Определяет тип для значений, которые могут храниться в элементах данного списка значений. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). |
|||
12
Yea-Yea
03.02.14
✎
10:12
|
(10) вот все свойства поля выбора в отладчике http://s48.radikal.ru/i119/1402/67/380b7e9e1572.jpg
там нет ТипЗначения |
|||
13
Yea-Yea
03.02.14
✎
10:12
|
(11) а чье это свойство, как к нему обратится?
|
|||
14
RomaH
naïve
03.02.14
✎
10:13
|
Если Отчет.ВидСравненияОрганизации = ВидСравнения.ВСписке ИЛИ Отчет.ВидСравненияОрганизации = ВидСравнения.НеВСписке Тогда
Элементы.Организация.ОграничениеТипа = Новый ОписаниеТипов("СписокЗначений"); Отчет.Организация = Новый СписокЗначений; Отчет.Организация.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Организации"); |
|||
15
Yea-Yea
03.02.14
✎
10:19
|
&НаКлиенте
Процедура ВидСравненияПоНоменклатуреПриИзменении(Элемент) Элементы.ЗначениеОтбораПоНоменклатуре.ОграничениеТипа = Новый ОписаниеТипов("СписокЗначений"); ЗначениеОтбораПоНоменклатуре = Новый СписокЗначений; ЗначениеОтбораПоНоменклатуре.ТипЗначения = Новый ОписаниеТипов("Справочник.Номенклатура"); КонецПроцедуры {Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаДокументаУправляемая.Форма(39)}: Поле объекта не обнаружено (ТипЗначения) ЗначениеОтбораПоНоменклатуре.ТипЗначения = Новый ОписаниеТипов("Справочник.Номенклатура"); |
|||
16
Yea-Yea
03.02.14
✎
10:32
|
смысл процедуры в (15) - при изменении вида сравнения, я должен установить ограничения типа (устанавливается нормально) и каким-то образом типизировать этот список значения
|
|||
17
Yea-Yea
03.02.14
✎
10:42
|
апну чтоли...
|
|||
18
RomaH
naïve
03.02.14
✎
10:59
|
все работает
|
|||
19
RomaH
naïve
03.02.14
✎
10:59
|
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Объект.Реквизит1 = Новый СписокЗначений; Объект.Реквизит1.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Банки"); Реквизит1 = Новый СписокЗначений; Реквизит1.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Банки"); КонецПроцедуры |
|||
20
Yea-Yea
03.02.14
✎
11:03
|
(19) а что такое объект у тебя? у меня объект - это ДанныеФормыСтруктура (сам документ инвентаризация).
а ЗначениеОтбораПоНоменклатуре - реквизит формы. |
|||
21
RomaH
naïve
03.02.14
✎
11:05
|
(20) сам догадайся - я сидел и извращался - делал все сложно
вместо того что бы просто создать обработку и кинуть два реквизита - один в обработку второй в форму |
|||
22
Yea-Yea
03.02.14
✎
11:26
|
большое спасибо за помощь! наверно дело было в кривых руках, так как в итоге заработал вот такой код:
&НаСервере Процедура ИзменитьТипНаСервере(Знач ВидСравнения) ОтборПоНоменклатуре = ВидСравнения = "Равно" ИЛИ ВидСравнения = "Не равно" ИЛИ ВидСравнения = "В иерархии" ИЛИ ВидСравнения = "Не в иерархии"; Если ОтборПоНоменклатуре Тогда Элементы.ЗначениеОтбораПоНоменклатуре.ОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Номенклатура"); ЗначениеОтбораПоНоменклатуре = Справочники.Номенклатура.ПустаяСсылка(); Иначе Элементы.ЗначениеОтбораПоНоменклатуре.ОграничениеТипа = Новый ОписаниеТипов("СписокЗначений"); ЗначениеОтбораПоНоменклатуре = Новый СписокЗначений; ЗначениеОтбораПоНоменклатуре.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура") КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ВидСравненияПоНоменклатуреПриИзменении(Элемент) ИзменитьТипНаСервере(СокрЛП(Элемент.ТекстРедактирования)); КонецПроцедуры |
|||
23
Yea-Yea
03.02.14
✎
11:28
|
Единственно момент остался.
процедура "ВидСравненияПоНоменклатуреПриИзменении" вызывается при изменении ВидСравненияПоНоменклатуре (список значений, список выбора которой заполняется при создании формы на сервере). так вот, в этой процедуре текущее значение выбора я могу получить только через "Элемент.ТекстРедактирования" или "Элемент.ВыделенныйТекст". Чувствую что гамногодом отдает. Но как по другому получить текущее значение списка выбора я не нашел (в отладчике тоже вроде все проверил). может есть другой путь? |
|||
24
Yea-Yea
03.02.14
✎
11:57
|
вопрос в (23) снимается )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |