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

Помогите ! Передача результата запроса в форму списка

Автор SergioSS, 29 дек 2011, 00:39

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

SergioSS

Доброго времени суток. О проблеме в двух словах. В форме списка справочника РасходнаяНакладная создал фильтр ВыборТовара, который должен выбирать все РасходныеНакладные, содержащие выбранный товар. Товар в каждой накладной представлен таблицей. В произвольном запросе выбрал РасходныеНакладные с параметром запроса по ВыборТовара. Однако форма списка РасходныхНакладных "слушается" только при указании параметра в фильтре ВыборТовара, а если фильтр не выбран, то список пустой, а я хочу чтобы если ВыборТовара не выбрано, то список должен содержать все. Попробовал сделать запрос не произвольный, а в форме, но не могу результат запроса перенести в форму списка.
Это второй вариант: (второй день бьюсь)

&НаКлиенте
Процедура ВыборТовараПриИзменении(Элемент)
ОтборПоФильтру(ВыборТовара);
КонецПроцедуры


&НаСервереБезКонтекста
Процедура ОтборПоФильтру(Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст =

"ВЫБРАТЬ
| Расходная.Ссылка,
| Расходная.Номер,
| Расходная.Дата,
| Расходная.Контрагент,
| Расходная.Контрагент.Адрес,
| Расходная.СуммаПредоплаты,
| Расходная.ТоварыСумма
| ИЗ
| Документ.Расходная КАК Расходная
| ГДЕ
| Расходная.ТаблТовары.Номенклатура = &Товар";


Запрос.УстановитьПараметр("Товар",Номенклатура);
Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

КонецПроцедуры

sergeevds

Я тут для примера взял документ "ОчтетОРозничных Продажах", в нем табличная часть есть "Товары"

Процедура ВыборТовараПриИзменении(Элемент)
Если ЗначениеЗаполнено(ВыборТовара) Тогда
ОтборПоФильтру(ВыборТовара);
Иначе
Список.Отбор.Ссылка.Использование = Ложь;
ДокументСписок.Обновить();
КонецПроцедуры

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

sergeevds

А дату я туда впигдючил, чтобы сохранялся отбор по выбранному на форме списка периоду.

SergioSS

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

Мы ж в данный момент на Сервере. Сервер не понимает "Список"

 

Dethmontt

Управляемые формы или нет??? Вы же нифига не пишете...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

SergioSS


Dethmontt

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

sergeevds

Список документов - это в любом случае динамический список, в него новый отбор не добавишь.

А строчки эти:

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

Я использовал отбор по списку документов по ссылке, т.е. ссылка на документ в списке, полученном запросом.

SergioSS

Табличная часть - это Табличная часть Документа

Теги:

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

Рейтинг@Mail.ru

Поиск