Помощь - Поиск - Пользователи - Календарь
Полная версия: Как при выборе значения в поле ввода ограничить список выбора для типа "Справочник"?
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.0 и 8.1" > (8.0 и 8.1) Конфигурирование на платформе "1С:Предприятие 8.0 и 8.1"
Norseman
Одно из полей табличной части документа задано типом СправочникСтатьиЗатрат. При выборе элемента в соответствующем поле ввода по умолчанию появляется форма выбора, где можно выбрать любой элемент из этого справочника. А необходимо наоборот, ограничить список выводимых для выбора значений, наложив определенные условия. Как можно это реализовать?
Pilgrim
Я првильно понял, что тебе надо вывести тот же справочник, только установив на него
отбор по каким-либо условиям?
Norseman
Цитата(Pilgrim @ 31.10.2006, 11:47) *

Я првильно понял, что тебе надо вывести тот же справочник, только установив на него
отбор по каким-либо условиям?


Совершенно верно!
Pilgrim
Ну тогда пожно например так. Допустим нам надо открыть список всех элементов, у которых значение некоторого поля (Пусть Поле1) равно некоторому значению (Пусть Значение1).
На событие ПриВыборе элемента, пишешь следующий код:

Процедура Поле1НачалоВыбора(Элемент,СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.НашСправочник.ПолучитьФормуВыбора(,Элемент);
ФормаВыбора.СправочникСписок.Отбор.Поле1.ВидСравнения = ВидСравнения.Равно;
(тут СправочникСписок - это название твоего табличного поля на форме выбора справочника, так что оно может быть другим в твоём случае)
ФормаВыбора.СправочникСписок.Отбор.Поле1.Использование = Истина;
ФормаВыбора.СправочникСписок.Отбор.Поле1.Значение = Значение1;
ФормаВыбора.Открыть();
КонецПроцедуры;

Так должно получиться.
Norseman
Спасибо! Буду пробовать.
Norseman
Все получилось. Но теперь стоит другая задача: как запретить пользователям вручную удалять или менять установленный фильтр?
Pilgrim
А там есть свойство у отбора Доступность, попробуй его поставь в ложь.
Norseman
Да вот в том то вся и беда, что такого свойства нет. Я знаю, что для некоторых документов, при нажатии кнопки "Перейти" на панели, открывается справочник или журнал с установленным фильтром по этому документу-регистратору. И если там зайти в фильтр, то откроется форма "Отбор и сортировка", где элемент отбора Регистратор выделен серым цветом и не поддается редактированию.
Вот если бы поиграться с этой формой...
Но в списке объектов конфы я ее не нашел :(
Pilgrim
То есть, если в предыдущем коде так сделать ФормаВыбора.СправочникСписок.Отбор.Поле1.Доступность = Ложь, то не получится?
Norseman
Цитата(Pilgrim @ 1.11.2006, 16:22) *

То есть, если в предыдущем коде так сделать ФормаВыбора.СправочникСписок.Отбор.Поле1.Доступность = Ложь, то не получится?

Неа
Pilgrim
Есть такая вещь, как НастройкаОтбора (момешь в хелпе посмотреть), у неё есть такая вещь, как УправлениеЭлементомОтбора, вот у него есть свойство Доступность и оно вроде как отвечает за интерактивное изменение отбора. Но признаюсь честно, я сам не пользовался эти никогда, может будет время, гляну. А так, можешь сам покопаться, может что интересное нароешь rolleyes.gif
Norseman
Отлично! Помогло.
В итоге получилось так:
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.Наименование.Доступность = Ложь;

Спасибо за советы!
Pilgrim
Ок. Буду тоже знать, что так работает, а то знал только в теории biggrin.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2010 Invision Power Services, Inc.