|
Программное изменение запроса динамического списка | ☑ | ||
---|---|---|---|---|
0
Nyarlathotep
19.08.19
✎
13:22
|
Всем привет!
При определенных обстоятельствах нужно менять текст запроса в динамическом списке, сделал вот так: "&НаКлиенте процедура ЦФУПриИзменении(Элемент) если значениеЗаполнено(ЦФУ) тогда список.ТекстЗапроса = получитьТекстЗапросаСфильтром(); список.Параметры.УстановитьЗначениеПараметра("ЦФУ", ЦФУ); иначе список.ТекстЗапроса = получитьТиповойТекстЗапроса(); конецЕсли; элементы.Список.Обновить(); ОбновитьОтображениеДанных(); конецПроцедуры функция получитьТекстЗапросаСфильтром() возврат "ВЫБРАТЬ | ЗаказНаВнутреннееПотреблениеТовары.Ссылка КАК Заказ, | ЗаказНаВнутреннееПотреблениеТовары.ЦФУ |ПОМЕСТИТЬ фильтрПоТабличнойЧасти |ИЗ | Документ.ЗаказНаВнутреннееПотребление.Товары КАК ЗаказНаВнутреннееПотреблениеТовары |ГДЕ | ЗаказНаВнутреннееПотреблениеТовары.ЦФУ = &ЦФУ | |СГРУППИРОВАТЬ ПО | ЗаказНаВнутреннееПотреблениеТовары.Ссылка, | ЗаказНаВнутреннееПотреблениеТовары.ЦФУ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДокументЗаказНаВнутреннееПотребление.Ссылка, | ДокументЗаказНаВнутреннееПотребление.ПометкаУдаления, | ДокументЗаказНаВнутреннееПотребление.Номер, | ДокументЗаказНаВнутреннееПотребление.Дата, | ДокументЗаказНаВнутреннееПотребление.Проведен, | ДокументЗаказНаВнутреннееПотребление.ЖелаемаяДатаОтгрузки, | ДокументЗаказНаВнутреннееПотребление.Комментарий, | ДокументЗаказНаВнутреннееПотребление.Организация, | ДокументЗаказНаВнутреннееПотребление.Ответственный, | ДокументЗаказНаВнутреннееПотребление.Подразделение, | ДокументЗаказНаВнутреннееПотребление.Склад, | ДокументЗаказНаВнутреннееПотребление.Статус, | ДокументЗаказНаВнутреннееПотребление.МаксимальныйКодСтроки, | ДокументЗаказНаВнутреннееПотребление.Сделка, | ДокументЗаказНаВнутреннееПотребление.ХозяйственнаяОперация, | ДокументЗаказНаВнутреннееПотребление.ПодразделениеОрганизации, | ВЫБОР | КОГДА ДокументЗаказНаВнутреннееПотребление.агСогласованоРуководитель = ИСТИНА | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК Руководитель, | ВЫБОР | КОГДА ДокументЗаказНаВнутреннееПотребление.агСогласованоБухгалтерия = ИСТИНА | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК Бухгалтерия, | ВЫБОР | КОГДА ДокументЗаказНаВнутреннееПотребление.агСогласованоФинДеп = ИСТИНА | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК ФинДеп |ИЗ | Документ.ЗаказНаВнутреннееПотребление КАК ДокументЗаказНаВнутреннееПотребление |ГДЕ | ДокументЗаказНаВнутреннееПотребление.Ссылка В | (ВЫБРАТЬ | фильтрПоТабличнойЧасти.Заказ | ИЗ | фильтрПоТабличнойЧасти)"; конецФункции" на строке "список.Параметры.УстановитьЗначениеПараметра("ЦФУ", ЦФУ);" получаю ошибку: "{Документ.ЗаказНаВнутреннееПотребление.Форма.ФормаСписка.Форма(220)}: Ошибка при вызове метода контекста (УстановитьЗначениеПараметра) список.Параметры.УстановитьЗначениеПараметра("ЦФУ", ЦФУ); по причине: Параметр с указанным именем не найден" Но параметр в тексте, который я устанавливаю, есть. Что делаю не так? Как сделать, чтобы заработало? |
|||
1
ildary
19.08.19
✎
13:24
|
(0) Я не увидел в запросе никаких &ЦФУ. Не надо путать параметр и выводимое поле.
|
|||
2
ildary
19.08.19
✎
13:25
|
+(1) был невнимателен, каюсь.
|
|||
3
Nyarlathotep
19.08.19
✎
13:31
|
(0) Сделал вот так:
&НаКлиенте процедура ЦФУПриИзменении(Элемент) установитьЗапросСписка(); элементы.Список.Обновить(); ОбновитьОтображениеДанных(); конецПроцедуры &НаСервере процедура установитьЗапросСписка() если значениеЗаполнено(ЦФУ) тогда список.ТекстЗапроса = получитьТекстЗапросаСфильтром(); список.Параметры.УстановитьЗначениеПараметра("ЦФУ", ЦФУ); иначе список.ТекстЗапроса = получитьТиповойТекстЗапроса(); конецЕсли; конецПроцедуры теперь вот такое пишет: "Основная таблица динамического списка задана неверно" основная таблица в списке такая: "Документ.ЗаказНаВнутреннееПотребление" я ее не менял. |
|||
4
PuhUfa
19.08.19
✎
13:37
|
(3) В динамическом списке можно использовать временные таблицы?
|
|||
5
Anarki
19.08.19
✎
13:39
|
(4)Уже можно
|
|||
6
Anarki
19.08.19
✎
13:40
|
(0) Не хочешь отбор просто наложить на ДС? типо ОбщегоНазанчения.УстановитьОтборДинамическогоСпика(Дс, отбор)
|
|||
7
Nyarlathotep
19.08.19
✎
13:44
|
(6) Мне нужен отбор по 1 колонке табличной части, в одном документе в табличной части могут в нужной колонке быть разные значения, нужно показать документы, где хотя бы в 1 строке табличной части есть указанное пользователем значение, притом нужно оставить возможность не использовать данный фильтр вообще, ваш метод сработает?
|
|||
8
Nyarlathotep
19.08.19
✎
13:48
|
(4) у клиента установлена совместимость с "Версия 8.2.16", возможно поэтому не работает, сделал вот так:
"функция получитьТекстЗапросаСфильтром() //возврат "ВЫБРАТЬ // | ЗаказНаВнутреннееПотреблениеТовары.Ссылка КАК Заказ, // | ЗаказНаВнутреннееПотреблениеТовары.ЦФУ // |ПОМЕСТИТЬ фильтрПоТабличнойЧасти // |ИЗ // | Документ.ЗаказНаВнутреннееПотребление.Товары КАК ЗаказНаВнутреннееПотреблениеТовары // |ГДЕ // | ЗаказНаВнутреннееПотреблениеТовары.ЦФУ = &ЦФУ // | // |СГРУППИРОВАТЬ ПО // | ЗаказНаВнутреннееПотреблениеТовары.Ссылка, // | ЗаказНаВнутреннееПотреблениеТовары.ЦФУ // |; // | // |//////////////////////////////////////////////////////////////////////////////// возврат "ВЫБРАТЬ | ДокументЗаказНаВнутреннееПотребление.Ссылка, | ДокументЗаказНаВнутреннееПотребление.ПометкаУдаления, | ДокументЗаказНаВнутреннееПотребление.Номер, | ДокументЗаказНаВнутреннееПотребление.Дата, | ДокументЗаказНаВнутреннееПотребление.Проведен, | ДокументЗаказНаВнутреннееПотребление.ЖелаемаяДатаОтгрузки, | ДокументЗаказНаВнутреннееПотребление.Комментарий, | ДокументЗаказНаВнутреннееПотребление.Организация, | ДокументЗаказНаВнутреннееПотребление.Ответственный, | ДокументЗаказНаВнутреннееПотребление.Подразделение, | ДокументЗаказНаВнутреннееПотребление.Склад, | ДокументЗаказНаВнутреннееПотребление.Статус, | ДокументЗаказНаВнутреннееПотребление.МаксимальныйКодСтроки, | ДокументЗаказНаВнутреннееПотребление.Сделка, | ДокументЗаказНаВнутреннееПотребление.ХозяйственнаяОперация, | ДокументЗаказНаВнутреннееПотребление.ПодразделениеОрганизации, | ВЫБОР | КОГДА ДокументЗаказНаВнутреннееПотребление.агСогласованоРуководитель = ИСТИНА | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК Руководитель, | ВЫБОР | КОГДА ДокументЗаказНаВнутреннееПотребление.агСогласованоБухгалтерия = ИСТИНА | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК Бухгалтерия, | ВЫБОР | КОГДА ДокументЗаказНаВнутреннееПотребление.агСогласованоФинДеп = ИСТИНА | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ КАК ФинДеп |ИЗ | Документ.ЗаказНаВнутреннееПотребление КАК ДокументЗаказНаВнутреннееПотребление |ГДЕ | ДокументЗаказНаВнутреннееПотребление.Ссылка В | (ВЫБРАТЬ | ЗаказНаВнутреннееПотреблениеТовары.Ссылка | ИЗ | Документ.ЗаказНаВнутреннееПотребление.Товары КАК ЗаказНаВнутреннееПотреблениеТовары | ГДЕ | ЗаказНаВнутреннееПотреблениеТовары.ЦФУ = &ЦФУ)"; конецФункции" все работает как надо. |
|||
9
Вафель
19.08.19
✎
14:21
|
если бы не запрос, а стал запрос, то могут слететь колонки номер, дата.
ибо по дефолту они привязаны к англискому синониму |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |