Добрый день.
Платформа 8.3.9
При разработке мобильного приложения возник такой вопрос: на мобильном устройстве не срабатывает отбор по владельцу в колонке табличной части, при чем если смотреть через десктопную версию (просто тонкий клиент, не через мобильное приложение) то все срабатывает отлично.
Т.е. имеется табличная часть "Свойства", в ней две колонки "Свойство" (Справочник.Свойства) и "Значение" (Справочник.ЗначенияСвойств). Справочник "Свойства" установлен как владелец для справочника "Значения свойств". На форме для колонки "Значение" установил свойство "СвязьПараметровВыбора" = Отбор.Владелец(Элементы.СвойстваКонтрагентов.Текущие данные.Свойство) и ожидал что у меня будет октрываться форма выбора значений свойств именно для текущего свойства. На десктопной версии все так и происходит, на мобильной вываливается весь справочник "ЗначенияСвойств" без отбора по свойству.
Вопрос: Как сделать так чтобы список выбора значений свойств ограничивался текущим свойством на мобильной платформе?
Пробовал ещё сделать программный отбор, вот так:
&НаКлиенте
Процедура СвойстваКонтрагентовЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ТекущаяСтрока = Элементы.СвойстваКонтрагентов.ТекущиеДанные;
СписокДоступныхЗначений = Неопределено;
СписокДоступныхЗначений = ПолучитьДоступныеЗначения(ТекущаяСтрока.Свойство);
Элемент.СписокВыбора.Очистить();
Для Каждого ЭлементСписка Из СписокДоступныхЗначений Цикл
Элемент.СписокВыбора.Добавить(ЭлементСписка.Значение);
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПолучитьДоступныеЗначения(Свойство)
СписокДоступныхЗначений = Новый СписокЗначений;
ВыборкаЗнч = Справочники.ЗначенияСвойствОбъектов.Выбрать(,Свойство);
Пока ВыборкаЗнч.Следующий() Цикл
СписокДоступныхЗначений.Добавить(ВыборкаЗнч.Ссылка);
КонецЦикла;
Возврат СписокДоступныхЗначений;
КонецФункции
Судя по активности с мобильной платформой только я играюсь
На будущее может кому пригодится, удалось решить вопрос таким образом:
&НаКлиенте
Процедура СвойстваКонтрагентовЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.СвойстваКонтрагентов.ТекущиеДанные;
ЗначениеОтбора = Новый Структура("Владелец", ТекущаяСтрока.Свойство);
ПараметрыВыбораФормы = Новый Структура("Отбор", ЗначениеОтбора);
ОткрытьФорму("Справочник.ЗначенияСвойствОбъектов.ФормаВыбора", ПараметрыВыбораФормы, Элемент);
КонецПроцедуры
Bernet @ 08.11.17, 15:50
,
Судя по коду элемент можно выбрать только из формы выбора справочника, если нужно из любой формы выбрать можно так
&НаКлиенте
Процедура СвойстваКонтрагентовЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.СвойстваКонтрагентов.ТекущиеДанные;
ЗначениеОтбора = Новый Структура("Владелец", ТекущаяСтрока.Свойство);
ПараметрыВыбораФормы = Новый Структура("Отбор", ЗначениеОтбора);
//Здесь немного изменим
//ОткрытьФорму("Справочник.ЗначенияСвойствОбъектов.ФормаВыбора", ПараметрыВыбораФормы, Элемент);
ОписаниеОповещения = Новый ОписаниеОповещения("ЦепляемаяЭкспортируемаяПроцедура", МодульГдеРасположПроцедура,Элемент);
ОткрытьФорму("ОткрываемаяФорма",ПараметрыВыбораФормы,Элемент,,,, ОписаниеОповещения);
//Дальше идет выполнение без остановки
КонецПроцедуры
&НаКлиенте
Процедура ЦепляемаяЭкспортируемаяПроцедура(Результат, Параметры) Экспорт// в Результат залетит выбор, в Параметры
//мы засунули элемент поля выбора
Если не Результат = Неопределено Тогда
Параметры = Результат;
КонецЕсли;
КонецПроцедуры // ЦепляемаяЭкспортируемаяПроцедура()
Параметры.Родитель.ТекущиеДанные.Источник = Результат;// Здесь Источник это имя поля табличной части, нужно заменить на ваш
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua