[РЕШЕНО] 1С 8.3 УФ, как сделать отбор в форме списка справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ExtreMe, 15 окт 2014.

  1. TopicStarter Overlay
    ExtreMe
    Offline

    ExtreMe Опытный в 1С

    Регистрация:
    13 сен 2014
    Сообщения:
    76
    Симпатии:
    7
    Баллы:
    29
    есть внешняя обработка, в ней реквизит, который открывает справочник
    в этом справочнике есть 2 типа элементов
    как при сделать что бы при открытии было видно элементы справочника только одного типа
    З.Ы. Для того что бы установить отбор в УФ нет метода ПолучитьФормуВыбора()
    желательно код для примера.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Зато есть код
    ПолучитьФорму() - это раз
    Два - настройка выбора в свойствах реквизита, куда копать есть в этой теме
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Копайте в сторону отбора при открытии формы выбора.
  4. TopicStarter Overlay
    ExtreMe
    Offline

    ExtreMe Опытный в 1С

    Регистрация:
    13 сен 2014
    Сообщения:
    76
    Симпатии:
    7
    Баллы:
    29
    отличный совет -Banghead-
    я как бы это и делаю, только вот в УФ не всё так просто для меня
    Последнее редактирование: 15 окт 2014
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Т.е. у вас проблема в управляемых формах вызвать форму выбора, но перед открытием задать параметры с отбором ?
  6. TopicStarter Overlay
    ExtreMe
    Offline

    ExtreMe Опытный в 1С

    Регистрация:
    13 сен 2014
    Сообщения:
    76
    Симпатии:
    7
    Баллы:
    29
    проблемы в открытии нет
    форма выбора открывается из реквизита поле ввода, тип Справочник.Ссылка
    а вот такой код адаптировать под УФ не получается
    Код:
    Процедура МаркаАвтомобиляНачалоВыбора(Элемент, СтандартнаяОбработка)
    
        СтандартнаяОбработка=Ложь;
        ФормыВыб = Справочники.Автотранспорт.ПолучитьФормуВыбора();
        ФормыВыб.Отбор.Тип.Значение = Перечисления.ТипАвтотраспорта.Автомобиль;
        ФормыВыб.Отбор.Тип.Использование=Истина;
        ФормыВыб.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Тип.Доступность = Ложь;
        РезВыбора = ФормыВыб.ОткрытьМодально();
        Если РезВыбора=Неопределено Тогда
            Возврат;
        КонецЕсли;
        Элемент.Значение = РезВыбора;
    
    КонецПроцедуры
    
    попытки получить форму в УФ
    Код:
    {Форма.Форма.Форма(163)}: Ошибка при вызове метода контекста (ПолучитьФормуВыбора)
        ФормыВыб = Справочники.Автотранспорт.ПолучитьФормуВыбора();
    по причине:
    Интерактивные операции недоступны
    
    Код:
    {Форма.Форма.Форма(163)}: Недостаточно фактических параметров
        ФормыВыб = Справочники.Автотранспорт.ПолучитьФорму();
    
    Последнее редактирование: 15 окт 2014
  7. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    вот так открывал список выбора документов с заданием отбора из реквизита с формы, УФ
    Код:
        ЗначениеОтбора = Новый Структура("СкладОтправитель", Магазин);
        ЗначениеОтбора = Новый Структура("СкладПолучатель", Магазин);
        ПараметрыВыбора = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор, Отбор", Истина, Истина, ЗначениеОтбора);
        РезультатОтбора = ОткрытьФормуМодально("Документ.ПеремещениеТоваров.ФормаВыбора", ПараметрыВыбора);
    
    ExtreMe нравится это.
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Удалил сообщения по просьбе ТС.
  9. TopicStarter Overlay
    ExtreMe
    Offline

    ExtreMe Опытный в 1С

    Регистрация:
    13 сен 2014
    Сообщения:
    76
    Симпатии:
    7
    Баллы:
    29
    спасибо LordMaverick, навел на правильную мысль
    Код:
    &НаСервере
    Функция ПолучитьАвтомобиль()
        Автомобиль = Перечисления.ТипАвтотраспорта.Автомобиль;
        Возврат Автомобиль;
    КонецФункции // ПолучитьАвтомобиль()
    
    &НаКлиенте
    Процедура ДокументОбъектАвтомобильНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
        СтандартнаяОбработка = Ложь;
        Автомобиль = ПолучитьАвтомобиль();
        ЗначениеОтбора  = Новый Структура("Тип", Автомобиль);
        ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);   
        ОткрытьФорму("Справочник.Автотранспорт.ФормаВыбора", ПараметрыВыбора);
    КонецПроцедуры
    
  10. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    :) приятного удачного пользования

    только вот зачем "дёргать" сервер?
    там как минимум вместо "&НаСервере" надо "&НаСервереБезКонтекста"
    Последнее редактирование: 16 окт 2014
  11. TopicStarter Overlay
    ExtreMe
    Offline

    ExtreMe Опытный в 1С

    Регистрация:
    13 сен 2014
    Сообщения:
    76
    Симпатии:
    7
    Баллы:
    29
    ладно, заменю, не вопрос ;)
  12. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Не нужен тут ни НаСервере, ни НаСервереБезКонтекста
    нужно просто
    Код:
    Автомобиль = ПредопределенноеЗначение("Перечисление.ТипАвтотранспорта.Автомобиль);
    прямо на клиенте
    ExtreMe нравится это.
  13. TopicStarter Overlay
    ExtreMe
    Offline

    ExtreMe Опытный в 1С

    Регистрация:
    13 сен 2014
    Сообщения:
    76
    Симпатии:
    7
    Баллы:
    29
    nomad_irk нравится это.

Поделиться этой страницей