![]() |
![]() |
![]() |
|
Проверить строкуТЧ на Отбор | ☑ | ||
---|---|---|---|---|
0
famnam
06.04.15
✎
09:48
|
Всем привет. Есть процедура, которая принимает в качестве параметра строку табличной части и работает с ней. На форме вынесен элемент Отборы, для настройки разных условий (по полям ТЧ). Как проверить, что текущая строка ТЧ удовлетворяет условиям отборов?
|
|||
1
famnam
06.04.15
✎
10:24
|
походу никак...
|
|||
2
Nuobu
06.04.15
✎
10:27
|
(0) Если твоё поле отбор связано с нужной тебе ТЧ, то любая строка из выведенных в таблицу уже соответствует отбору.
А вообще - пробежаться по отбору и сравнить все поля, которые там есть с теми, которые есть в строкеТЧ. |
|||
3
famnam
06.04.15
✎
10:34
|
связать с тч нельзя, так было бы просто :)
на самом деле, я описал простую задачу для понимания. в реале, коллекция представлена не только конкретно одной ТЧ, а выборками, разными ТЗ. Состав колонок у них одинаковый, и процедура написана как универсальная, и вызывается из разных мест конфигурации. Отбор с условиями - это новое требование заказчика. Соответственно, прикрутить проверку условий нужно уже в самой процедуре, дабы код не размазывать. |
|||
4
Nuobu
06.04.15
✎
10:37
|
(3) УФ?
|
|||
5
famnam
06.04.15
✎
10:44
|
нет. обычное приложение
|
|||
6
famnam
06.04.15
✎
11:34
|
нашел в интернете код, который можно использовать
// Функция проверки значения // Проверяемое - значение которое проверяем // ТипСравнения - значение типа ВидСравнения // Сравниваемое - значение с которым сравниваем Функция СоответствиеОтбора(Проверяемое, ТипСравнения, Сравниваемое) Результат = Истина; Если ТипСравнения = ВидСравнения.Равно тогда Результат = (Проверяемое = Сравниваемое); ИначеЕсли ТипСравнения = ВидСравнения.НеРавно тогда Результат = (Проверяемое <> Сравниваемое); ИначеЕсли ТипСравнения = ВидСравнения.БольшеИлиРавно тогда Результат = Проверяемое >= Сравниваемое; ИначеЕсли ТипСравнения = ВидСравнения.Больше тогда Результат = Проверяемое > Сравниваемое; ИначеЕсли ТипСравнения = ВидСравнения.Меньше тогда Результат = Проверяемое < Сравниваемое; ИначеЕсли ТипСравнения = ВидСравнения.ВСписке тогда Результат = (Сравниваемое.НайтиПоЗначению(Проверяемое) <> Неопределено); ИначеЕсли ТипСравнения = ВидСравнения.НеВСписке тогда Результат = (Сравниваемое.НайтиПоЗначению(Проверяемое) = Неопределено); ИначеЕсли ТипСравнения = ВидСравнения.Содержит тогда Результат = Найти(Сравниваемое,Проверяемое) > 0; ИначеЕсли ТипСравнения = ВидСравнения.НеСодержит тогда Результат = Найти(Сравниваемое,Проверяемое) = 0; КонецЕсли; Возврат Результат; КонецФункции функция используется для каждого строки отбора. Всем спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |