8.х Установить отбор из справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем o_O, 22 июн 2010.

  1. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    Здраствуйте!

    На форме есть поле выбора ИНСТРУМЕНТ СправочникСсылка.ИНСТРУМЕНТ

    Процедура ИНСТРУМЕНТНачалоВыбора(Элемент, СтандартнаяОбработка)
    ФормаПодбора = Справочники.ИНСТРУМЕНТ.ПолучитьФормуВыбора("ФормаВыбора",ЭтаФорма);
    ФормаПодбора.Отбор.Наименование.Установить("Молоток");
    ФормаПодбора.Открыть();
    КонецПроцедуры

    В результате открывается список со всеми значениями и ещё один список с одним значением "Молоток".
    При выборе молотка из второго списка, поле выбора ИНСТРУМЕНТ остаётся пустым.
    Помогите организовать нормальный Выбор из списка с отбором по наименованию.

    Спасибо!
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    СтандартнаяОбработка =Ложь поставьте в начале

    вот пример

    Код:
    Процедура ПервичныйБольничныйЛистНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ФормаВыбораПервичногоБольничногоЛиста = Документы.НачислениеПоБольничномуЛисту.ПолучитьФормуВыбора("ФормаВыбораПервичногоЛисткаНетрудоспособности", ЭтаФорма, "ВыборПервичногоБЛДляНачисленияПоБЛ № " + Номер);
    Если ЗначениеЗаполнено(Сотрудник) Тогда
    ФормаВыбораПервичногоБольничногоЛиста.Отбор.Сотрудник.Установить(Сотрудник);
    КонецЕсли;
    Если ЗначениеЗаполнено(Организация) Тогда
    ФормаВыбораПервичногоБольничногоЛиста.Отбор.Организация.Установить(Организация);
    КонецЕсли;
    ФормаВыбораПервичногоБольничногоЛиста.Отбор.ЯвляетсяПродолжениемБолезни.Установить(Ложь);
    ФормаВыбораПервичногоБольничногоЛиста.НачальноеЗначениеВыбора = ПервичныйБольничныйЛист;
    ФормаВыбораПервичногоБольничногоЛиста.Порядок.Установить("Дата Убыв");
    ФормаВыбораПервичногоБольничногоЛиста.Открыть();
    
    КонецПроцедуры // ПервичныйБольничныйЛистНачалоВыбора()
    
  3. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    Пример уже видел, видимо чего-то из него не понял.
    Делаю так.

    Процедура РегионНачалоВыбора(Элемент, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    ФормаПодбора = Справочники.РегионыРайоны.ПолучитьФормуВыбора("ФормаВыбора",ЭтаФорма);
    ФормаПодбора.Отбор.Наименование.Установить("Архангельск");
    ФормаПодбора.Открыть();
    КонецПроцедуры

    Теперь появляется только форма со значениями "Архангельск". Но при выборе поле выбора всё равно остается пустым.
    Помогите пожалуйста.
  4. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Тип у поля Регион какой?
  5. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    Вот так заработало.

    Процедура РегионНачалоВыбора(Элемент, СтандартнаяОбработка)

    ФормаПодбора = Справочники.РегионыРайоны.ПолучитьФормуВыбора(,Элемент);
    ЭЛЕМЕНТЫ = ФормаПодбора.Отбор.Наименование;
    ЭЛЕМЕНТЫ.Установить("Архангельск");
    ЭЛЕМЕНТЫ.ВидСравнения = ВидСравнения.Равно;
    ЭЛЕМЕНТЫ.Использование = Истина;
    ФормаПодбора.Открыть();
    СтандартнаяОбработка = Ложь;
    КонецПроцедуры

    Может из-за положения "СтандартнаяОбработка = Ложь;"
    :unsure:
  6. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Да вообще в принципе не должно. Можете проэксперементировать. Заработало и Ок
  7. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    подскажите пожалуйста ещё...

    как сюда добавить ещё условия отбора, например по другому реквизиту или добавить список значений т.е
    добавить ВидСравнения.ВСписке;

    Процедура РегионНачалоВыбора(Элемент, СтандартнаяОбработка)
    ФормаПодбора = Справочники.РегионыРайоны.ПолучитьФормуВыбора(,Элемент);
    ЭЛЕМЕНТЫ = ФормаПодбора.Отбор.Наименование;
    ЭЛЕМЕНТЫ.Установить("Архангельск");
    ЭЛЕМЕНТЫ.ВидСравнения = ВидСравнения.Равно;
    ЭЛЕМЕНТЫ.Использование = Истина;
    ФормаПодбора.Открыть();
    СтандартнаяОбработка = Ложь;
    КонецПроцедуры

    др. словами: как организовать множественный отбор. Напр. отбор по двум реквизитам.
    Спасибо!
  8. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Ну так делайте множественый отбор? В чем проблема. структура стандартна:
    Код:
    Форма.СправочникСписок.Отбор.<НаименованиеОтбора>.Значение = <Значение отбора>;
    Форма.СправочникСписок.Отбор.<НаименованиеОтбора>.Использование = Истина;
    Форма.СправочникСписок.Отбор.<НаименованиеОтбора>.Значение = <Значение отбора>;
    Форма.СправочникСписок.Отбор.<НаименованиеОтбора>.Использование = Истина;
    

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