Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отбор по владельцу в колонке табличной части
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Мобильная платформа 1С
Bernet
Добрый день.

Платформа 8.3.9
При разработке мобильного приложения возник такой вопрос: на мобильном устройстве не срабатывает отбор по владельцу в колонке табличной части, при чем если смотреть через десктопную версию (просто тонкий клиент, не через мобильное приложение) то все срабатывает отлично.

Т.е. имеется табличная часть "Свойства", в ней две колонки "Свойство" (Справочник.Свойства) и "Значение" (Справочник.ЗначенияСвойств). Справочник "Свойства" установлен как владелец для справочника "Значения свойств". На форме для колонки "Значение" установил свойство "СвязьПараметровВыбора" = Отбор.Владелец(Элементы.СвойстваКонтрагентов.Текущие данные.Свойство) и ожидал что у меня будет октрываться форма выбора значений свойств именно для текущего свойства. На десктопной версии все так и происходит, на мобильной вываливается весь справочник "ЗначенияСвойств" без отбора по свойству.

Вопрос: Как сделать так чтобы список выбора значений свойств ограничивался текущим свойством на мобильной платформе?

Пробовал ещё сделать программный отбор, вот так:
&НаКлиенте
Процедура СвойстваКонтрагентовЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    ТекущаяСтрока = Элементы.СвойстваКонтрагентов.ТекущиеДанные;
    
    СписокДоступныхЗначений = Неопределено;
    СписокДоступныхЗначений = ПолучитьДоступныеЗначения(ТекущаяСтрока.Свойство);    
    
    Элемент.СписокВыбора.Очистить();
    
    Для Каждого ЭлементСписка Из СписокДоступныхЗначений Цикл
        
        Элемент.СписокВыбора.Добавить(ЭлементСписка.Значение);
        
    КонецЦикла;
            
КонецПроцедуры

&НаСервере
Функция ПолучитьДоступныеЗначения(Свойство)
    
    СписокДоступныхЗначений = Новый СписокЗначений;
    
    ВыборкаЗнч = Справочники.ЗначенияСвойствОбъектов.Выбрать(,Свойство);
    Пока ВыборкаЗнч.Следующий() Цикл
        СписокДоступныхЗначений.Добавить(ВыборкаЗнч.Ссылка);
    КонецЦикла;
    
    Возврат СписокДоступныхЗначений;
    
КонецФункции


но оно также не срабатывает на мобильной платформе. Есть подозрение что когда на мобильной платформе добавляешь строку в таб. часть она открывается как в отдельной форме, может из-за этого все эти события и не срабатывают?
Помогите кто сталкивался с подобной проблемой
Bernet
Судя по активности с мобильной платформой только я играюсь smile.gif
На будущее может кому пригодится, удалось решить вопрос таким образом:
&НаКлиенте
Процедура СвойстваКонтрагентовЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ТекущаяСтрока = Элементы.СвойстваКонтрагентов.ТекущиеДанные;
    
    ЗначениеОтбора = Новый Структура("Владелец", ТекущаяСтрока.Свойство);
    ПараметрыВыбораФормы = Новый Структура("Отбор", ЗначениеОтбора);
    
    ОткрытьФорму("Справочник.ЗначенияСвойствОбъектов.ФормаВыбора", ПараметрыВыбораФормы, Элемент);
        
КонецПроцедуры
uanr81
Bernet @ 08.11.17, 15:50 необходимо зарегистрироваться для просмотра ссылки ,
Судя по коду элемент можно выбрать только из формы выбора справочника, если нужно из любой формы выбрать можно так
&НаКлиенте
Процедура СвойстваКонтрагентовЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ТекущаяСтрока = Элементы.СвойстваКонтрагентов.ТекущиеДанные;
    
    ЗначениеОтбора = Новый Структура("Владелец", ТекущаяСтрока.Свойство);
    ПараметрыВыбораФормы = Новый Структура("Отбор", ЗначениеОтбора);
    //Здесь немного изменим
    //ОткрытьФорму("Справочник.ЗначенияСвойствОбъектов.ФормаВыбора", ПараметрыВыбораФормы, Элемент);
    ОписаниеОповещения = Новый ОписаниеОповещения("ЦепляемаяЭкспортируемаяПроцедура", МодульГдеРасположПроцедура,Элемент);
    ОткрытьФорму("ОткрываемаяФорма",ПараметрыВыбораФормы,Элемент,,,, ОписаниеОповещения);
    //Дальше идет выполнение без остановки    
КонецПроцедуры

&НаКлиенте
Процедура ЦепляемаяЭкспортируемаяПроцедура(Результат, Параметры) Экспорт// в Результат залетит выбор, в Параметры
//мы засунули элемент поля выбора
Если не Результат = Неопределено Тогда
Параметры = Результат;
КонецЕсли;
КонецПроцедуры // ЦепляемаяЭкспортируемаяПроцедура()

Это на тот случай когда можно использовать любую форму для выбора значения

Цитата(uanr81 @ 29.11.17, 20:14) необходимо зарегистрироваться для просмотра ссылки
МодульГдеРасположПроцедура

В данном случае в параметре нужно передать ЭтаФорма

Цитата(uanr81 @ 29.11.17, 20:47) необходимо зарегистрироваться для просмотра ссылки
Параметры

А здесь нужно указать реквизит табличной части например
Параметры.Родитель.ТекущиеДанные.Источник = Результат;// Здесь Источник это имя поля табличной части, нужно заменить на ваш
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.