![]() |
|
v8: Фильтр элементов справочника | ☑ | ||
---|---|---|---|---|
0
1634344
22.03.13
✎
10:38
|
Поле номенклатура - тип справочник.Номенклатура находится на форме документа. При открытии формы формируется запрос по регистру сведений.
ВЫБРАТЬ регСведСрезПоследних.Культура ИЗ РегистрСведений.регСвед.СрезПоследних( &Дата, Организация = &Организация ) КАК регСведСрезПоследних как сделать так что бы после выполнение запроса если количество записей больше или равно одной то при выборе поля номенклатуры открывался справочник только с позициями которые есть в запросе, иначе открывался справочник со всеми позициями что в нем есть. Проверяю следующим образом: тзРезультат = Запрос.Выполнить().Выгрузить(); Если тзРезультат.Количество() > 0 Тогда Возврат тзРезультат; КонецЕсли; а вот как дальше не могу сообразить. |
|||
1
kosts
22.03.13
✎
10:42
|
(0) При открытии формы выбора установить отбор по списку найденных.
Ну и вроде можно установить срез последних как источник данных для табличного поля. |
|||
2
1634344
22.03.13
✎
10:42
|
Надо каким -то образом поставить фильтр на справочник при выборе. Скорей всего при открытии надо проверять, количество записей в тзРезультат, если их больше нуля, тогда каким-то образом накладывать фильтр на справочник
|
|||
3
MSII
22.03.13
✎
10:42
|
Если НЕ Запрос.Выполнить().Пустой() тогда отобранные позиции в список, в справочнике отбор с видом сравнения "В списке".
|
|||
4
ssh2006
22.03.13
✎
10:43
|
Обычные формы. Если нужен фильтр то в событии начало выбора ЭУ пишешь СтандартнаяОбработка = Ложь; программно получаешь форму выбора и накладываешь отбор, пример:
ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(); ФормаВыбора.НачальноеЗначениеВыбора = Элемент.Значение; ЭлементОтбора = ФормаВыбора.Отбор.Ссылка; ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке; ЭлементОтбора.Значение = СписокДляОтбора; ЭлементОтбора.Использование = Истина; ФормаВыбора.Открыть(); |
|||
5
kosts
22.03.13
✎
10:44
|
(1) > Ну и вроде можно установить срез последних как источник данных для табличного поля.
Не наврал |
|||
6
1634344
22.03.13
✎
10:45
|
спасибо большое буду пробовать
|
|||
7
1634344
22.03.13
✎
12:13
|
Ребят, опять загвоздка
тзРезультат = Запрос.Выполнить().Выгрузить(); Если тзРезультат.Количество() > 0 Тогда СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(); ФормаВыбора.НачальноеЗначениеВыбора = Элемент.Значение; ЭлементОтбора = ФормаВыбора.Отбор.Ссылка; ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке; ЭлементОтбора.Значение=тзРезультат; ЭлементОтбора.Использование = Истина; ФормаВыбора.Открыть(); Ошибка, {Документ.ПриходнаяТТН.Форма.ФормаДокумента.Форма(815)}: Ошибка при установке значения атрибута контекста (Значение) ЭлементОтбора.Значение=тзРезультат; по причине: Неверный тип значения блин, почему неверный тип ? как можно исправить данную ситуЭЙШЕН |
|||
8
1634344
22.03.13
✎
12:21
|
Может из-за того что я результат запроса выгружаю в ТЗ,а надо список значений ?
|
|||
9
salvator
22.03.13
✎
12:22
|
(8) Ты прав
|
|||
10
salvator
22.03.13
✎
12:22
|
Тебе еще в (3) об этом написали
|
|||
11
MSII
22.03.13
✎
12:22
|
(8) Можно в массив. ВыгрузитьКолонку.
|
|||
12
1634344
22.03.13
✎
12:25
|
блин точно в (3) все написано
|
|||
13
1634344
22.03.13
✎
12:45
|
что я мог неправильно сделать, все нормально список открывается фильтр срабатывает, но почему-то в поле выбора не фиксируется выбранное значение
СЗ = Новый СписокЗначений; СЗ.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Культура")); Если СЗ.Количество() > 0 Тогда СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(); ФормаВыбора.НачальноеЗначениеВыбора = Элемент.Значение; ЭлементОтбора = ФормаВыбора.Отбор.Ссылка; ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке; ЭлементОтбора.Значение=СЗ; ЭлементОтбора.Использование = Истина; ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр=Ложь; ФормаВыбора.Открыть(); |
|||
14
1634344
22.03.13
✎
13:02
|
нечего не пойму вроде сделал все правильно
|
|||
15
MSII
22.03.13
✎
13:04
|
(14) А что у нас в обработке выбора?
|
|||
16
1634344
22.03.13
✎
13:18
|
все разобрался надо было так
ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(,Элемент); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |