Версия для печати темы (https://pro1c.org.ua/index.php?s=74348cca1013e7b9edfc6131846b8345&showtopic=53490)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Множественный фильтр для отбора документа

Автор: Constantus 08.08.19, 18:12

Приветствую, Форумчане!
1с.8.3.12, БСП, самопис, УФ

Подскажите, точнее поделитесь опытом (советом) как правильно сделать.

Есть Документ "Заказы". Там множество всяких полей. Требуется вывести результаты поиска документов по нескольким фильтрам, причем неизвестно какие будут использованы (все основные реквизиты документа)

1. Отбор по Номеру
2. Отор по периоду
3. Отбор по Контрагенту (+ как по ссылке таки по его наименованию, типа "содержит"
4. Отбор по подразделению
5. Отбор по телефону
(возможно будут еще добавлены)

Никак не могу придумать как лучше сделать. Сделать в форме отчета СКД скорее всего нет. В формате обработки?

Основная проблема это как применить меняющиеся по составу параметры отбора: Отбор по периоду + по телефону; отбор по подразделению + по номеру + контрагент (остальные не задействованы)

После того, как будет получен список отобранных документов, то необходимо как-то их выделить (галочкой) и далее будет некая кнопка, которая должна получить массив выбранных документов и обработать этот массив...

Автор: pablo 09.08.19, 8:39

1. Используйте динамический список и там отбор можно последовательно вешать на каждое видимое поле.
2. Выделять можно либо через шифт, либо галочкой. Если галочкой - то только через ТЧ, если через шифт - то лучше таки с ДС.

Автор: mut 09.08.19, 9:10

Constantus @ Вчера, 19:12 * ,
Кстати.
В упр формах доступен метод таблицы формы ВыделенныеСтроки()
через него можно получить массив который вы хотите дальше обрабатывать

И вообще. smile.gif
Это всё можно просто в списке документов реализовать. Стандартным отбором отфильтровать, выделить нужное и потом уже командой обработать. Т.е. из "писанины" будет только команда, в которой будет обрабатываться массив ссылок, остальное встроенными средствами.

Автор: pablo 09.08.19, 11:59

Цитата
в списке документов
Цитата
Стандартным отбором отфильтровать
можно только данные из индексированных полей. А номера телефонов (как минимум) не часто индексируют.

Автор: mut 09.08.19, 18:34

Цитата(pablo @ 09.08.19, 12:59) *
можно только данные из индексированных полей


Может у меня версия неправильная, но у меня можно. И по условию "Содержит" и по шаблону.. если это простое текстовое поле в шапке документа или в реквизитах чего-то что есть в шапке.

ЗЫ только сейчас досмотрел что мы в разделе "Обычные формы". А я про управляемые smile.gif
Тогда всё стереть и забыть, я ничего не предлагал smile.gif)

Автор: Kerberos 09.08.19, 23:11

Constantus @ 08.08.19, 19:12 * ,
То, что вы спрашиваете, называется Построитель отчета. там вам и динамические отборы, и сортировка.
Эх.. матчасть и Радченко уже студенты не читают..

Автор: Constantus 10.08.19, 14:51

Пошел по линии формирования формы списка Заказов по динамическому списку

У меня есть общий модуль с экспортной функцией:

Функция ФИО(Заказ) Экспорт
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаказУсопшиеИОформление.ТипДанных,
        |    ЗаказУсопшиеИОформление.Элемент
        |ИЗ
        |    Документ.Заказ.УсопшиеИОформление КАК ЗаказУсопшиеИОформление
        |ГДЕ
        |    ЗаказУсопшиеИОформление.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Заказ);
    
    Результат = Запрос.Выполнить();
    
    Выборка = Результат.Выбрать();
    
    Результат = "";
    
    Пока Выборка.Следующий() Цикл
        Если Выборка.ТипДанных = Перечисления.ТипыДанныхОформления.Фамилия
            Или Выборка.ТипДанных = Перечисления.ТипыДанныхОформления.Имя
            Или Выборка.ТипДанных = Перечисления.ТипыДанныхОформления.Отчество Тогда
            Результат = Результат + "; " + Выборка.Элемент;
        КонецЕсли;
    КонецЦикла;
    
    Возврат Результат;
    
КонецФункции


Функция работает, проверял на СКД

Как можно эту функцию применить в динамическом списке формы списка?

Автор: pablo 12.08.19, 8:56

В динамическом списке функции из общих модулей недоступны.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua