8.х Отбор отобранных строк

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Peroman, 14 июн 2018.

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.007
    Симпатии:
    24
    Баллы:
    29
    Всем доброго времени суток.

    Есть форма (управляемая), обработки. На форме есть ТЗ.
    Необходимо, если пользователь установил фильтр отбора (ctr+F), получить строки, согласно его отбору.

    Код:
        ОтборСтрок = Элементы.ТабличнаяЧастьИсточник.ОтборСтрок;  
        ПостроительЗапроса = Новый ПостроительЗапроса;
        ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличнаяЧастьИсточник.Выгрузить());
      
        Для каждого ЭлементОтбора Из ОтборСтрок Цикл
            Если ЭлементОтбора.Использование Тогда
                НовыйОтбор = ПостроительЗапроса.Отбор.Добавить(ЭлементОтбора.Имя);
                НовыйОтбор.Использование     = Истина;
                НовыйОтбор.ВидСравнения     = ЭлементОтбора.ВидСравнения; // нужный вид сравнения
                НовыйОтбор.ЗначениеС         = ЭлементОтбора.ЗначениеС;
                НовыйОтбор.ЗначениеПо         = ЭлементОтбора.ЗначениеПо;
                НовыйОтбор.Значение         = ЭлементОтбора.Значение;
            КонецЕсли;
        КонецЦикла;
        Результат = ПостроительЗапроса.Результат; // отобранные строки типа РезультатЗапроса
    
    Выдает ошибку. В отладчике
    Элементы.ТабличнаяЧастьИсточник.ОтборСтрок = Неопределено
    Пробовал и через ЭтаФорма, результат тот же
    Последнее редактирование: 14 июн 2018
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.022
    Симпатии:
    174
    Баллы:
    104
    Насколько знаю, ОтборСтрок и поиск по Ctrl+F - это разные вещи.
    ОтборСтрок устанавливается только программно. В управляемой форме для установки отбора необходимо присвоить этому свойству фиксированную структуру.
    А поиск по Ctrl+F - это платформенная функция. Не уверен, что в коде можно получить строки, отфильтрованные таким способом.
  3. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.251
    Симпатии:
    100
    Баллы:
    104
    Платформенная функция, но ее результат отображается в дин. списке. А отображаемое содержимое дин. списка кажется можно получить программно.
    http://v8.1c.ru/o7/201404list/index.htm
    Но это все в теории. Сам данные дин. списка получал неоднократно, но задачи получить строки отфильтрованные поиском не было. Нужно проверять.
  4. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.022
    Симпатии:
    174
    Баллы:
    104
    Думаю, это получение данных, согласно настройкам динамического списка. Т.е. если отбор установлен через "Еще - Настроить список".
    При фильтрации через Ctrl+F - думаю, не сработает.
    Но можете проверить )

    Ну и плюс, вероятно, у автора не динамический список, а табличная часть или ТЗ на форме.
    Dem0lisher нравится это.
  5. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.251
    Симпатии:
    100
    Баллы:
    104
    Блин точно. Не углядел..
  6. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.007
    Симпатии:
    24
    Баллы:
    29
    Да. У меня таблица значений, а не динамический список.
    В общем-то странная петрушка получается. Задача вроде бы элементарная.
    У меня на форме есть, ТЗ, которая заполняется при открытии формы. Необходимо ,чтобы пользователь установив отбор, проставил флажки. Но так как список может быть большой, необходимо организовать функцию групповой установки флажков, вот тут и встает вопрос получения строк, согласно пользовательскому отбору.
    И хотелось как-то просто. А так получается, надо либо делать ДС и в нём делать механизм флажков, с возможностью, пользователю проставлять флажки в ДС, что опять через какие танцы с бубном, либо рисовать и организовывать свой отбор, для ТЗ.
  7. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.251
    Симпатии:
    100
    Баллы:
    104
    Кажется получилось. Смотрите:
    Есть метод "ПроверитьСтроку(Строка)"

    Код:
    Для Каждого СтрокаТЧ Из фТЗ Цикл
        Если Элементы.фТЗ.ПроверитьСтроку(СтрокаТЧ.ПолучитьИдентификатор()) Тогда
            Сообщить("Строка отображена в списке!");
        КонецЕсли;
    КонецЦикла;
    
    upload_2018-6-15_15-35-10.png
    Хотя в таблице 3 строки изначально, присутствует еще розничный покупатель, но он скрыт поиском по <ctrl>+ <F>
    nbIpKuH_BaH9I, Peroman и 1cUserAndrew нравится это.
  8. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.022
    Симпатии:
    174
    Баллы:
    104
    Оо...круто! )
  9. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.007
    Симпатии:
    24
    Баллы:
    29
    Работает. Спасибо.

Поделиться этой страницей