Как сделать отбор по колонке которая заполняется через оформление строк

1. katrineKA 25.11.13 19:19 Сейчас в теме
Как сделать отбор по колонке которая заполняется через оформление строк. Собственно как передать значение поиска?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
18. fokin 18.02.14 08:53 Сейчас в теме
(1) katrineKA,
задача была вами решена?
у меня просто точно такая же задача сейчас стоит, с той лишь разницей что работаю в СправочникСписок
19. SuhoffGV 19.02.14 00:14 Сейчас в теме
(18) fokin, Это не имеет большого значения, справочник или документ. Вам нужен тот же метод.
1. Размещаете на форме реквизит с нужным типом данных (по которым нужен отбор).
2. Пишете 2 обработчика, ПриИзменении и ПриОчистке.
3. В ПриИзменении находите ссылки на элементы справочника подходящие под ваше условие. И устанавливаете отбор по ссылке.
4. ПриОчистке - убираете отбор.

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

	Иначе
		Отбор.Ссылка.Использование = Ложь;
	КонецЕсли;
КонецПроцедуры

Процедура ОтборРегионОчистка(Элемент, СтандартнаяОбработка)
   	СтандартнаяОбработка= ложь;
	Элемент.значение = "";
	ОтборРегионПриИзменении(Элемент);
КонецПроцедуры

Показать


Мне этот вариант не нравится, но приходится иногда использовать. Когда по другому не сделать.
shalupov61; +1 Ответить
21. fokin 20.02.14 09:16 Сейчас в теме
(19) SuhoffGV,
спасибо
попробую
сам еще правда даже думать не садился, некогда было
2. Sevens 6 25.11.13 19:37 Сейчас в теме
Стандартным отбором - никак.
Свой писать :)
3. katrineKA 25.11.13 19:41 Сейчас в теме
)) это понятно
я все никак сообразить не могу, как передать значение поиска...

Т.е. дальше сделаю запрос с отбором и уже выборку выгружу в список, НО как пердать то? В отборе и сортировке есть реквизит (число), что бы в нем значение поиска передавать, а как передавать не могу понять.
4. katrineKA 25.11.13 20:09 Сейчас в теме
ну правда уже в тупике полном, направьте на мысль пожалуйста...
5. 32ops 197 25.11.13 20:29 Сейчас в теме
Если колонка заполняется через оформление строк, значит есть зависимость от "нормальных" колонок, значит можно эмулировать отборы по этим колонкам с помощью отборов по "нормальным" колонкам, или я чего-то не понял? А отбор передается через парамер формы отбор. Ну в зависимости от основного реквизита конечно, я предполагаю, что это - динамический список. Ну а если стандартного отбора не хватает, то его и в отборах списка не хватит. Но на всякий случай выглядит примерно так -
Список.УсловноеОформление.Элементы[...] - это элемент, а у него надо установить
Использование,Отбор (добавить), у отбора левое и правое значение.
все это ПриСозданииНаСервере делается.
Можно передавать свой параметр формы и в форме ПриСозданииНаСервере обрабатывать. Например у списка сделать произвольный запрос с параметрами и ПриСозданииНаСервере устанавливать параметры Список.Параметры.УстановитьЗначениеПараметра(...). Вроде как-то так.
6. katrineKA 26.11.13 05:18 Сейчас в теме
наверно не вовремя, но форма обычная, не управляемая :(
7. 32ops 197 26.11.13 06:27 Сейчас в теме
а я думаю, почему у меня не сходиться)) пытаюсь подготовиться к экзамену, так что сам пока не сильно рублю в синусах, могу отвечать невпопад)) А с каким объектом работаете? Это список? (СправочникСписок, документСписок)?
8. katrineKA 26.11.13 06:41 Сейчас в теме
9. peterxx 23 26.11.13 07:52 Сейчас в теме
С обычными формами в этом отношении намного хуже. В списках документов отсутствует колонка "Ссылка", значит придется устанавливать отбор как-то так:
СписокОтбора = Новый СписокЗначений;
....
Здесь добавляем номера документов, которые должны попасть в отбор
....
ДокументСписок.Отбор.Номер.Значение = СписокОтбора;
ДокументСписок.Отбор.Номер.ВидСравнения = ВидСравнения.ВСписке;
ДокументСписок.Отбор.Номер.Использование = Истина;
10. kansler 26.11.13 08:27 Сейчас в теме
(9) peterxx, странно, но у меня почему то работает отбор по полю ссылка, когда его программно заполняю. Поле номер использовать для отбора документов несколько некорректно, номера то могут и повторяться.
15. peterxx 23 26.11.13 09:06 Сейчас в теме
(10) kansler, ключевое слово: программно. Программно можно много чего заполнить.
12. katrineKA 26.11.13 08:37 Сейчас в теме
(9) peterxx, я ищу не по номеру, а по значению в Колонке1, по сумме которую туда через оформление строк поместили.
11. katrineKA 26.11.13 08:28 Сейчас в теме
9. спасибо, это понятно, что можно через списки и запросы. Я не могу никак понять в какой момент мне поймать значение которое задается для поиска в отборе.
Т.е. вот есть у меня колонка, она заполнена через оформление строк. Я добавила реквизит Колонка1, с типом число, которая есть в отборе. Вот как мне из введенного значения в отбор, обратиться к поиску. Просто в СписокПриПолученииДанных(...) она не цепляется, там срабатывает другой поиск.
13. kansler 26.11.13 08:44 Сейчас в теме
(11) katrineKA, из такого объяснения задачи трудно что-либо понять. Попробую стелепатировать. На форме добавляешь колонку, которую заполняешь при получении данных. Также на форму добавь поле ввода, в которое пользователь будет вводить значение для отбора. В событии ПриИзменении этого поля ввода программно устанавливаешь нужные отборы.
14. katrineKA 26.11.13 09:03 Сейчас в теме
(13) kansler, извините за неразвернутый вопрос )) это правда ))

Я думала, что если есть реквизит уже в Отборе, то действовать через него.
Сейчас попробую с реквизитом прям на форме.
16. 32ops 197 26.11.13 15:58 Сейчас в теме
Т.е. вот есть у меня колонка, она заполнена через оформление строк. Я добавила реквизит Колонка1, с типом число, которая есть в отборе.
Не понятно, что такое отбор. Если это свойство СправочникСписок, то как туда может попасть добавленная колонка? или это не добавленная колонка а реквизит документа, просто он заполняется через оформление списка? Если это реквизит документа и он есть в отборе, и нужно получить значение отбора, то ДокументСписок.Отбор.<ИмяКолонки>.Значение
17. serega3333 26.11.13 16:02 Сейчас в теме
ПриВыводеСтроки если конечно не УФ
20. Mafoni 20.02.14 02:27 Сейчас в теме
Штатных средств нет не штатные прийдется придумать
22. пользователь 12.03.14 20:13
Сообщение было скрыто модератором.
...
23. z4z4z 50 22.06.16 13:34 Сейчас в теме
Внесу свои пять копеек
	 
    // добавляем  программно колонку
 
     Колонка = ЭлементыФормы.ПланВидовРасчетаСписок.Колонки.Вставить(4,"ПолнНаименование");
     Колонка.Имя = "ПолнНаименование";
     Колонка.Данные = "ПолнНаименование";
     Колонка.Ширина = 32;
  
     //-------------------------------------
	

     //  не забываем   вот  эту строчу, чтобы  был  отбор 
	 ЭлементыФормы.ПланВидовРасчетаСписок.НастройкаОтбора.Группа.Доступность = Истина;
    
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот