8.х Отбор по товару в Форме списка документов

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

  1. TopicStarter Overlay
    VladimirSpb
    Offline

    VladimirSpb

    Регистрация:
    25 окт 2009
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    Как грамотно сделать отбор по конкретной номенклатурной позиции в форме списка документа, например, РеализацияТоваровИУслуг?Хочу видеть в этой форме только те документы , в которых присутствует выбранная номенклатурная позиция.
  2. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Можно сделать критерий отбора свой. Но мне кажется он будет еле работать по скорости.
    Как вариант сделать обработку, в которой формировать список программно через запрос например.
  3. TopicStarter Overlay
    VladimirSpb
    Offline

    VladimirSpb

    Регистрация:
    25 окт 2009
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1
    Хорошо.
    Запрос сделать несложно.
    А как потом его результат связать, точнее - выгрузить, в таблицу формы списка документа?
  4. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    звучит так будто решаете задачи из спеца по платформе :) если хотите через критерий, то киньте на форме поле ввода (например имя Товар) и ПриИзмении

    Код:
    Процедура ТоварПриИзменении(Элемент)
    Если ЗначениеЗаполнено(Товар) Тогда
    Отбор.ОтборПоНоменклатуре.Установить(Товар);
    Иначе
    Отбор.ОтборПоНоменклатуре.Использование = Ложь;
    КонецЕсли;
    КонецПроцедуры
    
    
    ОтборПоНоменклатуре - критерий отбора. Данные - тип справочник номенклатура. Состав - поставь галку реквизита номенклатуры табличной части документа, в котором будешь делать отбор
  5. TopicStarter Overlay
    VladimirSpb
    Offline

    VladimirSpb

    Регистрация:
    25 окт 2009
    Сообщения:
    40
    Симпатии:
    0
    Баллы:
    1


    Благодарю.
  6. TopicStarter Overlay
    VladimirSpb
    Offline

    VladimirSpb

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

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