Установить отбор и сортировку списка...

1. Win98 23.09.12 17:18 Сейчас в теме
Есть такая кнопка "Установить отбор и сортировку списка..." в виде воронки, какую процедуру она вызывает?
Как управлять той формой что открывается, как изменить список параметров для отбора?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. losara1983 6 23.09.12 17:39 Сейчас в теме
Список параметров, зависит от признака индексации у реквизитов документа, по другому формой управлять нельзя.
3. Win98 23.09.12 17:41 Сейчас в теме
(2) losara1983,
по другому формой управлять нельзя.

Т.е. только писать свою форму?
4. losara1983 6 23.09.12 18:04 Сейчас в теме
а чем текущая не устраивает? Можно написать свою, итам играть с параметрами списка через отбор, но зачем?
5. Win98 23.09.12 19:01 Сейчас в теме
(4) losara1983, для разных пользователей нужен разный набор полей.
6. m-serg74 46 23.09.12 20:02 Сейчас в теме
(5) Win98,
нужен разный набор полей.

а при чем здесь, простите, Отбор и сортировка?
ЗЫ.Вопрос хороший, но слишком уж абстрактный...
7. Win98 23.09.12 20:22 Сейчас в теме
(6) m-serg74, есть некий список, с офигенным набором реквизитов. В одном отделе сотрудники должны иметь возможность делать отбор и сортировку этого списка по одним полям, а во втором - по другим. Как это можно организовать?
8. m-serg74 46 23.09.12 20:49 Сейчас в теме
(7) Win98, конкретики не добавило - что за список? документы, справочники, какой либо результат работы программы, самописка, типовая, обычный список или динамический, какое приложение - УФ или обычные... на такой не конкретный вопрос даже затрудняюсь предполоижения какие то делать, а в общем случае у Отбора есть ПолучитьДоступныеПоля и УстановитьДоступныеПоля...
9. Win98 23.09.12 21:16 Сейчас в теме
(8) m-serg74,
общем случае у Отбора есть ПолучитьДоступныеПоля и УстановитьДоступныеПоля...

Это уже интереснее, спасибо, сейчас покопаю. Если о конкретике то все самописанное и и т.д. Список этот, список задач (и с бизнес-процессами есть форма). Думаю что не принципиально список чего, или принципиально?
10. m-serg74 46 23.09.12 21:38 Сейчас в теме
(9) Win98, если это обычный список и не УФ то думаю УстановитьДоступныеПоля поможет, а если какой то хитрый то надо соответственно хитрить, но для этого нужна конкретика
11. Win98 24.09.12 07:34 Сейчас в теме
(10) m-serg74, да, список обычный, сейчас попробую.
Спасибо!
16. Win98 24.09.12 11:55 Сейчас в теме
(10) m-serg74, видать список обычный, но динамический :(

Ошибка при вызове метода контекста (ПолучитьДоступныеПоля)
ДоступныеПоляОтбора = Задачи.Отбор.ПолучитьДоступныеПоля();
по причине:
Метод не доступен для данного объекта
18. m-serg74 46 24.09.12 12:15 Сейчас в теме
(16) Win98, попробуй так:
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	ЭлементыФормы.Список.НастройкаОтбора.ДДС.Доступность = ИСТИНА;
	ЭлементыФормы.Список.НастройкаОтбора.Ответственный.Доступность = ЛОЖЬ;
КонецПроцедуры


поля только свои подпиши
19. Win98 24.09.12 12:51 Сейчас в теме
(18) m-serg74, а вот нет объекта "Задачи" среди элементов формы :(

Поле объекта не обнаружено (Задачи)
ЭлементыФормы.Задачи.НастройкаОтбора.Улица.Доступность = Истина;
20. m-serg74 46 24.09.12 12:57 Сейчас в теме
(19) Win98, че за чушь)))
в форме списка задач в процедуре ПередОткрытием надо писать
не знаю как у тебя ЭлементФормы называется но например:
ЭлементыФормы.ЗадачаСписок.НастройкаОтбора....... и т.д.
21. Win98 24.09.12 13:55 Сейчас в теме
12. Win98 24.09.12 11:11 Сейчас в теме
Дабы не плодить темы.
А как установить интервал дат программно? Чего надо написать в процедуре "приоткрытии" что интервал дат установился текущая дата минус 10 дней?
13. m-serg74 46 24.09.12 11:25 Сейчас в теме
КонДата = ТекущаяДата();
НачДата = КонДата - 10 * 86400;
14. Win98 24.09.12 11:35 Сейчас в теме
(13) m-serg74, спасибо.
Пока сделал так:

Задачи.Отбор.Дата.Использование = Истина;
Задачи.Отбор.Дата.ВидСравнения = ВидСравнения.БольшеИлиРавно;
Задачи.Отбор.Дата.Значение = ТекущаяДата()-(60*60*24*10);
Задачи.Отбор.Дата.Установить()


Вроде бы работает.
15. m-serg74 46 24.09.12 11:54 Сейчас в теме
там по моему есть что то типа ВидСравнения.Интервал и заполнять тогда надо ....Отбор.Дата.ЗначениеС = .....
Отбор.Дата.ЗначениеПо.....
17. m-serg74 46 24.09.12 12:02 Сейчас в теме
22. m-serg74 46 24.09.12 14:06 Сейчас в теме
в процедуре ПередОткрытием надо писать

ЭлементыФормы.НашеПоле.НастройкаОтбора.Улица.Доступность = ???
23. Win98 24.09.12 14:17 Сейчас в теме
(22) m-serg74,
ЭлементыФормы.НашеПоле.НастройкаОтбора.Улица.Доступность = Истина;

Спасибо. Появился элемент на форме отбора.
24. Win98 24.09.12 14:22 Сейчас в теме
(22) m-serg74, а по реквизиту реквизита уже не получается :(
ЭлементыФормы.НашеПоле.НастройкаОтбора.Улица.РайонГорода.Доступность = Истина;

Или я опять что-то делаю не так?
25. m-serg74 46 24.09.12 14:51 Сейчас в теме
(24) Win98, нет так не возможно... у НастройкиОтбора "Улица" нет Свойства "РайонГорода"!!! и т.д....
26. Win98 24.09.12 14:59 Сейчас в теме
(25) m-serg74, да, это так, но у реквизита Улица, есть реквизит РайонГорода...
Вопрос, как в списке организовать отбор по реквизитам реквизита? Добавить колонку в список?
27. m-serg74 46 24.09.12 17:00 Сейчас в теме
(26) Win98, для этого есть отчеты, чтобы все реквизиты с разыменовкой использовать,
и это... конкретные решения для конкретных ситуаций всегда можно подобрать, универсальные на все случаи жизни навряд ли... больше времени убъется, чем в результате пользы получится...
28. Win98 24.09.12 17:03 Сейчас в теме
(27) m-serg74, мне не отчет нужен, а форма, со списком :)
29. m-serg74 46 24.09.12 17:05 Сейчас в теме
(28) Win98, (27) с дополнением прочитай
30. KonstB 180 24.09.12 17:09 Сейчас в теме
(28) Win98, попробуй ПостроительОтчета. Для каждой группы пользователей определяй текст запроса и заполняй настройки автоматом. На форму выводи ПостроительОтчета.Отбор - в котором будут те отборы, которые ты описал.
31. Win98 25.09.12 22:21 Сейчас в теме
(25) m-serg74, продолжая тему отбора по реквизиту реквизита

ЭлементыФормы.НашеПоле.Колонки.Добавить("РайонГорода");


В результате появляется колонка "РайонГорода". Вопрос как ее заполнить и как потом по ней сделать отбор?
32. m-serg74 46 25.09.12 22:30 Сейчас в теме
(31) Win98, у задач есть реквизит Улица, а РайонГорода - такого реквизита у задачи нет, насколько я с твоих загадочных постов понял, поэтому то что ты добавил колонку на форме ни с какими данными не связанную, толку огромный 0!!! направление в корне неверное...
33. Win98 26.09.12 07:43 Сейчас в теме
(32) m-serg74, совершенно верно, но реквизит Улица по факту ссылка на элемент справочника Улицы, а вот в справочнике Улицы есть реквизит РайонГорода, так что говорить что никак не связанно, наверное, некорректно. Да, напрямую, не связано, согласен.
Могу заблуждаться, и решение будет совсем другим, но надо решить вопрос с отбором элементов списка по реквизитам реквизитов его элементов.

PS. Колонка вполне себе заполняется через ПриВыводеСтроки. Копаю дальше :)
34. m-serg74 46 26.09.12 08:37 Сейчас в теме
(33) Win98,
Колонка вполне себе заполняется через ПриВыводеСтроки. Копаю дальше

удачи... писать больше не охота, потому что я тебе про Фому а ты в ответ про Ерему
35. Win98 26.09.12 08:54 Сейчас в теме
(34) m-serg74, не сердитесь, я понимаю о чем Вы. Но охота пуще неволи :)
36. m-serg74 46 26.09.12 09:02 Сейчас в теме
я не сержусь но и помочь сделать кнопку "Сделать все" я не могу
37. Win98 26.09.12 09:06 Сейчас в теме
(36) m-serg74, понятно что такой кнопки не будет ни когда, я просто рассматриваю все варианты и всевозможные решения.
38. m-serg74 46 26.09.12 09:14 Сейчас в теме
я просто рассматриваю

их просто делать надо а не просить сделать кого-то 100500 вариантов, а ты будешь их сидеть рассматривать и усложнять, есть конкретная задача с конечной целью и практической нужностью опиши подробно, постараюсь помочь, а если ты таким способом изучаешь возможности обитателей форума, прости я лучше помогу кому-то другому, и это... ну свою работу буду делать)))
39. Win98 26.09.12 09:20 Сейчас в теме
(38) m-serg74, ок. Есть задача сделать отбор в списке на основании реквизита реквизита (т.е. у "задачи" есть реквизит "улица", а у реквизита "улица" есть реквизит "район") как это можно организовать?
40. m-serg74 46 26.09.12 09:40 Сейчас в теме
запросом выбрать все задачи у которых эти реквизиты подходят под отбор, а в форме списка у становить отбор по Задача.Ссылка
41. IvanGorbunov 09.11.17 09:43 Сейчас в теме
А если в окне Отбор И Сортировка нельзя отбирать номенклатуру по группам, а только Равно, Не равно, В списке, Не в списке?
42. IvanGorbunov 09.11.17 09:44 Сейчас в теме
(41) не форме списка, а в своей обработке на произвальной табличной части
43. snorchik 23.11.18 11:44 Сейчас в теме
подскажите пожалуйста. на скрине в настройка списка нельзя выбрать отображение артикула. можно ли его туда добавить и как это сделать?
Прикрепленные файлы:
44. rule_2 47 01.07.22 06:48 Сейчас в теме
В общем, если вдруг кто-то наткнется на этот тред.

Задача была следующей: есть документ Реализация товаров и услуг, у него есть реквизит Контрагент (этот реквизит есть в отборах), у контрагента есть реквизит "СекретныйРеквизит" типа Булево, по которому нужно установить отбор в форме списка документа реализации.

В стандартной форме отбора это НИКАК не сделать, т.к. туда могут быть добавлены только реквизиты самого документа. Сделал так: добавил в командную панель формы кнопку, по нажатию которой происходит запрос по справочнику Контрагенты, который отбирает всех контрагентов, у которых установлена галочка "СекретныйРеквизит". Далее просто устанавливаю отбор по этим контрагентам.

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

Процедура УстановитьОтборСписка()
	
	// Проверяем, нажата ли кнопка
	//
	ТолькоСекретныйРеквизит = ЭлементыФормы.ДействияФормы.Кнопки.ТолькоСекретныйРеквизит.Пометка;	
	
	// Если кнопка нажата - запрещаем пользователю вручную менять отбор
	//
	ЭлементыФормы.ДокументСписок.НастройкаОтбора.Контрагент.Доступность = НЕ ТолькоСекретныйРеквизит;
	
	СписокСсылок = Новый СписокЗначений;

	// Получаем список контрагентов с установленной галочкой
	//
	Если ТолькоСекретныйРеквизит Тогда
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	Таблица.Ссылка
		|ИЗ
		|	Справочник.Контрагенты КАК Таблица
		|ГДЕ
		|	Таблица.СекретныйРеквизит";
		
		МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");	
		СписокСсылок.ЗагрузитьЗначения(МассивСсылок);
		
	КонецЕсли;

	// Устанавливаем отбор
	//
	Отбор.Контрагент.ВидСравнения = ВидСравнения.ВСписке;
	Отбор.Контрагент.Использование = СписокСсылок.Количество() > 0;
	Отбор.Контрагент.Значение = СписокСсылок;
	
КонецПроцедуры
Показать


При применении такого отбора, если документов достаточно много и полученный список ссылок тоже достаточно большой, наблюдаются тормоза в работе списка. Но в моем случае это не сильно актуально, т.к. у пользователей всегда стоит отбор по сегодняшней дате.
С другими типами можно поступить по аналогии, заранее показав форму указания значения. Ну или еще как-то поиграться.
Оставьте свое сообщение

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