Имя: Пароль:
1C
1С v8
Отбор строк Таблицы значений на форме
0 Gera1t
 
26.12.24
16:03
Здравствуйте!
Есть Таблица значений. Нужно накладывать на нее отборы.
Делаю это через:
Элементы.ТЗ.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураПоиска);
Но появилась необходимость наложить отбор с интервалом.
Подскажите пожалуйста как это сделать именно на ТЗ?
1 Волшебник
 
26.12.24
16:05
Может не нужно. Докажите, что нужно.
2 Gera1t
 
26.12.24
16:05
С интервалом это например Дата от 01.01.2024 до 31.01.2024
3 Gera1t
 
26.12.24
16:06
(1) Не нужно, но очень хочется
4 Волшебник
 
26.12.24
16:07
(2) А время надо учесть? Тогда так:
от 01.01.2024 00:00:00 до 31.01.2024 23:59:59
5 Gera1t
 
26.12.24
16:07
(4) Точно, про время забыл, конечно нужно
6 Волшебник
 
26.12.24
16:10
(5) Ну надо, так надо... Приступайте
7 Мультук
 
гуру
26.12.24
16:58
(0)

Вариант 0
Пишем письмо в 1С.
Раскрываем "им" глаза на лямбда функции и то,
что на дворе  фактически 2025 год, а...

Вариант 1
Засовываем таблицу значений в запрос, а потом..

Вариант 2
Добавляем в таблицу значений реквизит "Флаг" Булево
В цикле
Строка.Флаг = Строка.Дата >= Дата1 и Строка.Дата <= Дата2


Все три варианта "так себе". Особенно один из них
8 Волшебник
 
26.12.24
17:03
(7) "Флаг" — плохое имя реквизита ;)
9 Мультук
 
гуру
26.12.24
17:02
(8)

Как в том анекдоте -- значит "вариант 3" у вас внутреннего отторжения не вызвал ? :-)
10 Волшебник
 
26.12.24
17:03
(9) Я согласен на любой вариант, если мне объяснят, что в строках и что это за даты. :)
11 Мультук
 
гуру
26.12.24
20:44
(10)

Допустим есть таблица значений (вместо Истина/Ложь может быть М/Ж -- в данном примере нет разницы)

Имя  Пол     Дата Рождения
Вася Истина  21.06.1980
Катя Ложь    22.09.1972
Петя Истина  01.05.2020

1) отобрать мальчиков легко -- прямое совпадение

нс = тз.НайтиСтроки(Новый Структура("Пол", Истина));

2) А вот отобрать всех кто родился с 01.1960 по 31.12.1980 уже придется писать цикл.
Никакого встроенного метода (пусть даже синтаксического сахара) 1С нам не предлагает
12 Волшебник
 
26.12.24
20:57
(11) Мультук, я не знаю, как Вас ещё отблагодарить за помощь форуму, кроме роли "Здравомыслящий"...

Хотите, я введу новую роль "Гуру" или "Просветлённый". ТАм будут Гена, Мультук и ещё пара ников?
Я только не пойму, что ещё вам просветлённым дать? Что вы хотите в новом году?
13 Мультук
 
гуру
26.12.24
21:33
(12)

Я много хочу.

Хочу, чтобы ботов было меньше, а людей больше. Как на форуме, так и в жизни.
Хочу быть добрее (я стараюсь, честно)
Хочу, чтобы Волшебник перестал хандрить и {думать о всяком}

А еще хочу, чтобы пришло Новогоднее настроение, а то оно где-то заблудилось похоже!

P.S.
Станислав, спасибо!
Я помогаю по мере сил.
Но я на форуме не за званиями.
Тем более, что есть куда более достойные люди.
14 Волшебник
 
26.12.24
21:34
(13) Вы святой, святой...
15 Fedor-1971
 
27.12.24
12:40
(11) так себе решение, но:
через условное оформление задать видимость строк,
типа ДатаРождения больше "ДД.ММ.ГГГГ" И ДатаРождения Меньше "ДД.ММ.ГГГГ"
16 lEvGl
 
гуру
27.12.24
21:11
Чтобы минимально рисовать, нужно тз превратить в тч, там есть отбор строк. Если рисовать то простор для творчества - свои кнопки, свои отборы, что по сути просто переформирование тз
17 программистище
 
28.12.24
09:52
Решение: пробегать перед отбором по таблице циклом, и формировать для тех строк, что соответствуют условиям, идентификатор (писать в реквизит отбора), по нему и отбирать