8.х Управляемая форма. Табличная часть. Результаты поиска. Как обойти программно?

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

  1. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Здравствуйте.
    Есть форма обработки, у обработки есть ТЧ. Выполняем поиск по табличной части стандартными средствами. Нужно обойти результаты поиска (обработать строки ТЧ, удовлетворяющие условиям поиска).

    Подскажите, плиз
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.572
    Симпатии:
    717
    Баллы:
    204
    Какой тип значения у результата поиска? Скорее всего, массив. Обходится так же циклом, как и другие коллекции.
  3. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Так это понятно, что циклом :)
    Только не понятно, что перебирать.
    Не нашел ни отборов, ни резульатов поиска...
    Последнее редактирование: 18 ноя 2015
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.572
    Симпатии:
    717
    Баллы:
    204
    эээ....а каким образом выполняли поиск?
  5. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Сейчас сделаю обработку, прицеплю, чтоб не безпредметный разговор был....
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.572
    Симпатии:
    717
    Баллы:
    204
    да кусок кода проще вставить, чем саму обработку делать....
  7. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Так нет еще кусков кода :) Вот демка...

    Вложения:

  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.572
    Симпатии:
    717
    Баллы:
    204
    и чего с этой демкой не так?
  9. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    После того когда она отберет документы (с помощью кнопки Поиск), как эти результаты обойти?
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.572
    Симпатии:
    717
    Баллы:
    204
    СтрокиТЧ как элемента формы нужно обрабатывать.

    Список документов сразу нужный формировать через параметры запроса/динамического списка - не будет этого геморроя с поиском.
  11. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Нет, так не подходит сразу запросом формировать.
    Дело в том, что если обходить строки ТЧ, то там все строки. А мне нужно обойти только удовлетворяющие результатам поиска.
    И я не нашел способов добраться не до критериев поиска, ни до отборов (их здесь вообще нет). Имея параметры поиска, я бы мог использовать НайтиСтроки (), так я не могу найти где к ним подобраться. В обычных формах делал такое через Построитель. А здесь не понятно
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.572
    Симпатии:
    717
    Баллы:
    204
    Почему?

    В ТЧ, как реквизите объекта - да, все строки, результат поиска - это в ТЧ как ЭУ на форме, почувствуй разницу.

    Судя по коду, у тебя список документов с определенным отбором. Сделай динамический список нужного типа документов и используй типовой отбор - эффект будет тот же, но геморроя в плане программирования будет заметно меньше.
  13. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Я разницу-то понимаю.между формой и объектом. Вы попробуте сами обойти ТЧ как элемент формы, если получиться, то мне подскажете
  14. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Если не получается, то в принципе могу показать решение. Свою задачу я выполнил, но решение не очень красивое.
    Показывать? ;-)
  15. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.572
    Симпатии:
    717
    Баллы:
    204
    Свой способ решения поставленной задачи я озвучил выше, если есть другой способ - вещайте...
  16. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Так без динамических списков, как бы Вы делали?? Мне здесь ДС не нужны -- это не обсуждается.
    Вот пример решения:
    Код:
        МассивСтрок = Новый Массив;
       
        Для Каждого Строка ИЗ Объект.СписокДокументов Цикл
            ВОтборе = Элементы.СписокДокументов.ПроверитьСтроку(Строка.НомерСтроки -1);
            Если Не ВОтборе Тогда
                Продолжить
            КонецЕсли;   
            МассивСтрок.Добавить(Строка)
        КонецЦикла;   
       
        Для Каждого Строка ИЗ МассивСтрок Цикл
            Строка.Флажок = Истина   
        КонецЦикла;   
    
    
  17. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    когда документов мало - пойдет.
    сколько будет думать на 1000 документов? на 10000?

    или запрос делать или играть с отбором динамического списка (все-таки СКД он)
  18. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Возьмите обработку, что я прицепил выше. Поместите на панель кнопку "Вывести список...", воспользуйтесь командой "Найти", Сделайте "Вывести список...". Получится список именно результатов поиска. Как это делают 1с-ники? И никаких СКД, ДС мы не добавляли. Ведь так? Значит механизм есть и изобретать велосипед не нужно. Нужно только знать где он. О чем в принципе я и спросил.
    У кого-то есть что по существу??? ;-)
  19. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    По существу - у вас есть реквизит ОтборСтрок у табличного поля. Если не используете динамический список - можете пользоваться им для формирования запроса либо поиска данных в таблице.
    Если используете динамический список - у вас есть функция ПолучитьИсполняемыеНастройкиКомпоновкиДанных у того же поля, которая вернет все необходимые настройки для выполнения запроса к базе.

    Не все внутренние возможности платформы выставляются наружу для разработчиков конфигураций. Например, регулярные выражения - внутри есть, разработчикам конфигураций - закрыты.
  20. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Так нет его......
    :-(

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