Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 22:51

Отбор по заданному товару в форме списка документа.

Автор VladimirSPB, 03 дек 2009, 23:30

0 Пользователей и 1 гость просматривают эту тему.

VladimirSPB

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

Admin

В самом типовом списке документов нельзя.

Можно использовать "Групповую обработку справочников и документов", поставив галочку "Обрабатывать табличные части"

Тогда отбор документов можно сделать по наличию в табличной части документа определенной номенклатуры.

VladimirSPB

Хорошо.Можно ли дописать относительно несложную обработу для формы списка документов и разместить ее в модуле формы списка , чтобы  не покидая сам список документов и не вызывая обработку табличных частей документов, все вышесказанное реализовать?

Admin


VladimirSPB

Отвечаю себе сам.

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

Есть ли другие варианты?      

M_Volkov

Цитата: VladimirSPB от 06 дек 2009, 23:16
Есть ли другие варианты?
А чем такой не устраивает?

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


Пересвет

А можете пояснит ,для чено нужен и как работает вот этот фрагмент?

ОтборПоСписку = ДокументСписок.Отбор;       
ОтборПоСписку["Ссылка"].Использование = Истина;
ОтборПоСписку["Ссылка"].ВидСравнения = ВидСравнения.ВСписке;
ОтборПоСписку["Ссылка"].Значение = МассивССылок;


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск