![]() |
![]() |
|
Подскажите как установить отбор в справочнике. | ☑ | ||
---|---|---|---|---|
0
SashaNNV
02.08.09
✎
17:41
|
Суть такова, есть документ в ТЧ документа есть реквизит «справочник «СПР»».
В шапке документа есть поле из этого-же справочника. Как установить отбор при выборе реквизита «справочник «СПР»» в ТЧ документа на только те строки справочника в которых есть совпадающий реквизит из шапки документа? Заранее спасибо за ответ. |
|||
1
ТелепатБот
гуру
02.08.09
✎
17:41
|
||||
2
AndrejFAA
02.08.09
✎
17:46
|
УстановитьОтбор(<?>,);
Синтаксис: УстановитьОтбор(<ИмяОтбора>,<ЗначениеОтбора>) Назначение: Установить отбор списка справочника. Параметры: <ИмяОтбора> - строка с именем реквизита справочника (по которому возможен отбор, т.е. взведен флажок ''Отбор по реквизиту'' в свойствах реквизита справочника), по которому установлен отбор. Если это значение пустое, то отбор отключается. <ЗначениеОтбора> - необязательный параметр. Значение отбора. Замечание: Метод доступен только в контексте Модуля формы списка справочника и относится ко всему |
|||
3
SashaNNV
02.08.09
✎
17:49
|
УстановитьОтбор(<?>,); это понятно, куда его ставить в документ или в справочник приоткрытии, если в справочник, то как перенести реквизит из шапки документа?
|
|||
4
AndrejFAA
02.08.09
✎
17:51
|
Если используете типовую конфигурацию, то можно, например в ТиС, посмотреть справочник Номенклатура при ткрытии формы списка "ДляПодбора" процедуру ПриОткрытии.
|
|||
5
Rie
02.08.09
✎
17:54
|
(3) Если для выбора - опиши предопределённую процедуру ПриНачалеВыбораЗначения, которая отследит, откуда производится выбор значения и откроет нужную форму справочника нужным тебе образом.
Для простоты можешь при этом вместо выбора делать подбор. |
|||
6
SashaNNV
02.08.09
✎
17:54
|
(4) К сожалению типовой конфигурации нет.
|
|||
7
AndrejFAA
02.08.09
✎
18:08
|
Если негде подгядеть. Как вариант (5).
Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога, ФлагСтандОбр) Если ИдентЭлемДиалога = "Колонка" Тогда ФлагСтандОбр = 0; Параметры = РеквизитШапки; ОткрытьФормуМодально("Справочник.ФизЛица.ДляВыбора", Параметры); Если ПроверимВыбор Тогда Колонка = Параметры; КонецЕсли; КонецЕсли; КонецПроцедуры В справочнике: Процедура ПриОткрытии() УстановитьОтбор("Колонка", Форма.Параметр); Форма.ОбработкаВыбораСтроки(1); КонецПроцедуры Процедура ПриВыбореСтроки() Форма.Параметр = ТекущийЭлемент(); КонецПроцедуры |
|||
8
Cthulhu
02.08.09
✎
18:19
|
(7): очень вредный и не совсем умный совет.
(0): в модуле документа: Процедура ПриНачалеВыбораЗначения(НаимРекв,ФСО) Перемт Конт; Если НаимРекв="<РеквизитТабЧастиКоторыйВыбиратьИзСПР>" Тогда ФСО=0; ОткрытьФорму("Справочник.СПР",тКонт); тКонт.УстановитьОтбор("<ИмяРеквизитаСправочникаДляОтбора>",<ЗначениеРеквизитаШапкиДокументаТипаСправочникСПР>); тКонт.Форма.Обновить();// тКонт.ВидыОтбора(""); - опция чтобы не отрубили отбор в процессе выбора КонецЕсли; КонецПроцедуры |
|||
9
AndrejFAA
02.08.09
✎
18:24
|
(8) Вопросик. Я, конечно, не проверял данный вариант. А можно использовать УстановитьОтбор в модуле документа? Если верить ЖКК, то данный метод можно использовать только в форме списка справочника.
|
|||
10
Guk
02.08.09
✎
18:26
|
(9) там контекст формы списка справочника...
|
|||
11
AndrejFAA
02.08.09
✎
18:29
|
(10) Это я понял. Ладно, проверю ради любопытства. Насчёт модальности я не против, что это глупо. )
|
|||
12
Cthulhu
02.08.09
✎
18:32
|
(11): только синтаксис подправь )))
|
|||
13
AndrejFAA
02.08.09
✎
18:38
|
(12) Так понятно, что нужно обрабатывать процедуру ОбработкаПодбора. Я лишь использовал данный код в одном месте, его и скопировал, вырезав кучу лишнего. ) Просто в то время лень было обрабатывать в ОбработкаПодбора. Там и так хватала кода + мне нужно было именно модальность, чтобы пользователь никуда больше не ушёл от выбора.
|
|||
14
SashaNNV
02.08.09
✎
19:03
|
Интересно, а можно установитьотбор по нескольким реквизитам?
|
|||
15
AndrejFAA
02.08.09
✎
19:28
|
С ходу либо ИспользоватьСписокЭлементов, либо вторая ссылка из (2), но для справочников.
|
|||
16
Cthulhu
02.08.09
✎
19:39
|
(13): ну а для (8) кроме того что там нарисовано - не надо больше ни-че-го..
(кстати я именно про синтаксис (8) имел ввиду - ты вроде решил попробовать). А в (8) пользователь стандартно никуда не уйдет тоже, так или иначе или выберет или закроет выбор, но без иодальности с возможностью позырить-поправить ещё что-нибудь.. |
|||
17
AndrejFAA
02.08.09
✎
19:55
|
(16) Не поленился, проверил. Работает. :) Но мне в одном случае нужно именно без "с возможностью позырить-поправить ещё что-нибудь...".
|
|||
18
AndrejFAA
02.08.09
✎
20:01
|
Ладно. Поправлю в другом месте, где простой выбор с отбором. Так красивше получается, чем "парсить" параметр при открытии формы выбора. )
|
|||
19
SashaNNV
02.08.09
✎
20:31
|
Спасибо за советы, решил свою задачу через ИспользоватьСписокЭлементов.
|
|||
20
Cthulhu
02.08.09
✎
21:26
|
(18): по способу (8) возвращаемое значение ловится в предопределенной процедуре "ОбработкаВыбораЗначения" (и хоть обпарсися там - можешь точно так же ФСО обнулять и подменять стандартные действия (по помещению выбранного значения в реквизит) любыми своими действиями)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |