|
Отбор на ТабличноеПоле (Обычная форма) | ☑ | ||
---|---|---|---|---|
0
Lin
25.05.20
✎
21:19
|
Добрый вечер! Подскажите пожалуйста, как установить отбор на табличное поле с типом РегистрСведенийСписок в обычной форме??
Есть список регистра сведений с полями "Аналог" и "Номенклатура", добавлено еще две колонки "Артикул" и "Остаток". И мне надо ограничить показ строк, убрать строки с номенклатурой у которой нет остатков. Добавленные колонки заполняются по результатам запроса. |
|||
1
RomanYS
25.05.20
✎
22:03
|
(0) В ОФ нельзя фильтровать по колонке без данных. Самый простой вариант - УФ и динсписок
|
|||
2
Lin
25.05.20
✎
22:23
|
(1) А можно поставить отбор на результат запроса, который равен 0?
у меня есть еще на форме табличное поле списка номенклатуры, и при выборе строки, в табличном поле с аналогами должна меняться информация. Я так попробовала, но при выборе другой номенклатуры табличное поле пустое. РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий() Цикл ДанныеАналог = Соответствие.Получить(РезультатЗапроса.Аналог); Если ДанныеАналог <> Неопределено Тогда ДанныеАналог.Ячейки.Артикул.Значение = РезультатЗапроса.Артикул; ДанныеАналог.Ячейки.Остаток.Значение = РезультатЗапроса.КоличествоОстаток; КонецЕсли; ОтборОстатка = ЭлементыФормы.ТабличноеПолеАналоги.Значение; ОтборОстатка.Отбор.Аналог.Установить(РезультатЗапроса.Аналог); КонецЦикла; |
|||
3
RomanYS
25.05.20
✎
22:32
|
(2) Можно сделать отбор на вхождение в список. Но это в любом случае костыль
|
|||
4
Lin
25.05.20
✎
23:11
|
(3) Подскажите как? мне пока и костыль сойдет, может позже что лучше придумаю...
|
|||
5
Ёпрст
25.05.20
✎
23:17
|
(4) получаешь значения измерений, по ним устанавливаешь отбор.. усё
|
|||
6
Lin
26.05.20
✎
23:34
|
(5) (4) немного не понимаю как ставить отбор по результатам из списка значений.... подскажите как это сделать?
И будет ли это работать если нужно вывести больше одного значения? Процедура ТабличноеПолеАналогиПриПолученииДанных(Элемент, ОформленияСтрок) Соответствие = Новый Соответствие; АналогМассив = Новый Массив; Для каждого Стр Из ОформленияСтрок Цикл АналогМассив.Добавить(Стр.ДанныеСтроки.Аналог); Соответствие.Вставить(Стр.ДанныеСтроки.Аналог, Стр); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | спрНоменклатура.Ссылка, | Аналоги.Аналог, | Аналоги.Аналог.Артикул КАК Артикул, | Остатки.КоличествоОстаток |ИЗ | РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК Остатки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Аналоги КАК Аналоги | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК спрНоменклатура | ПО Аналоги.Номенклатура = спрНоменклатура.Ссылка | ПО Аналоги.Аналог = Остатки.Номенклатура |ГДЕ | спрНоменклатура.Ссылка = &Ссылка" ; Запрос.УстановитьПараметр("Ссылка", ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Ссылка); РезультатЗапроса = Запрос.Выполнить(); МассивЗнач = Новый Массив; Список = Новый СписокЗначений; ТЗО = РезультатЗапроса.Выгрузить(); МассивЗнач = ТЗО.ВыгрузитьКолонку("КоличествоОстаток"); Список.ЗагрузитьЗначения(МассивЗнач); //ОтборОстатка = ЭлементыФормы.ТабличноеПолеАналоги.Значение; //ОтборОстатка.Отбор.Аналог.Установить(МассивЗнач); РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий() Цикл ДанныеАналог = Соответствие.Получить(РезультатЗапроса.Аналог); Если ДанныеАналог <> Неопределено Тогда ДанныеАналог.Ячейки.Артикул.Значение = РезультатЗапроса.Артикул; ДанныеАналог.Ячейки.Остаток.Значение = РезультатЗапроса.КоличествоОстаток; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
7
Lin
26.05.20
✎
23:52
|
(6) немного не так...
Добавила таблицу значений, и в нее передаю ссылку номенклатуры из запроса... Подскажите как правильно установить отбор полученной ссылки из массива на колонку "Номенклатура" в списке регистра?? МассивЗнач = Новый Массив; Список = Новый СписокЗначений; ТЗО = РезультатЗапроса.Выгрузить(); РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий() Цикл МассивЗнач = ТЗО.ВыгрузитьКолонку("Ссылка"); Список.ЗагрузитьЗначения(МассивЗнач); и Дальше это передать на обработку результата запроса |
|||
8
Lin
27.05.20
✎
01:03
|
(5) спасибо, сделала
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |