8.х Отбор в ДокументСписок

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

  1. TopicStarter Overlay
    redwonder
    Offline

    redwonder

    Регистрация:
    25 фев 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Есть форма на ней расположены два элемента: поле ввода и табличное поле.
    У табличного поля данные ДокументСписок.Принят. А у документа есть реквезит со значением СправочникСсылка.Улицы. В поле ввода произвольное значение типа строка (пользователь пишет название улицы, возможно не полное (вместо Волошиной напишут волош)). И по этому значению надо сделать отбор в ДокументСписок. Так вот как это сделать. Т.е. у нас поле для отбора имеет тип СправочникСсылка, а у нас значение строка.

    Пробывал:
    Создал отбор по справочнику Улицы. видотбора = содержит.
    И хотел создать отбор по ДокументСписок уже сравнивая ссылки из результата отбора по справочнику.
    Но вот как конкретные значения выгрузить, например, в СписокЗначений из отбора справочника Улицы?

    Может есть более гуманный способ?
  2. TopicStarter Overlay
    redwonder
    Offline

    redwonder

    Регистрация:
    25 фев 2010
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    С вопросом разобрался, вот решение
    делаем выборку Содержит по нименованию справочника Улицы
    после пишем вот такой код
    Код:
    Построитель = Новый ПостроительОтчета;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписок);
    Выборка = Построитель.Результат.Выбрать();
    
    список = Новый СписокЗначений;
    
    Пока Выборка.Следующий() Цикл
    список.Добавить(Выборка.Ссылка);
    КонецЦикла;
    
    
    
    
    после чего создаем отбор по СправочникСсылка, где вид сравнения в списке.

    полный код отбора у меня выглядит так
    Код:
    Если Адрес1 > "" Тогда
    СправочникСписок.Отбор.Наименование.ВидСравнения = ВидСравнения.Содержит;
    СправочникСписок.Отбор.Наименование.Использование = Истина;
    СправочникСписок.Отбор.Наименование.Значение = Адрес1;
    
    Построитель = Новый ПостроительОтчета;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(СправочникСписок);
    Выборка = Построитель.Результат.Выбрать();
    
    список = Новый СписокЗначений;        
    
    Пока Выборка.Следующий() Цикл
    список.Добавить(Выборка.Ссылка);
    КонецЦикла;
    
    ДокументСписок.Отбор.Адрес.ВидСравнения = ВидСравнения.ВСписке;
    ДокументСписок.Отбор.Адрес.Использование = Истина;
    ДокументСписок.Отбор.Адрес.Значение = список;
    Иначе
    ДокументСписок.Отбор.Адрес.Использование = Ложь;
    КонецЕсли;
    
    
    
    
    

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