|
Построитель запроса. Отбор по списку значений | ☑ | ||
---|---|---|---|---|
0
Zixxx
27.02.20
✎
08:23
|
Не получается заставить построитель запроса отбирать по списку значений. При установленном отборе все равно выводятся все строки таблицы значений.
// Сектора СектораНабор1 = Новый СписокЗначений; СектораНабор1.Добавить(1); СектораНабор1.Добавить(2); СектораНабор2 = Новый СписокЗначений; СектораНабор2.Добавить(3); СектораНабор2.Добавить(4); // Таблица клиентов ТаблицаКлиентов = Новый ТаблицаЗначений; ТаблицаКлиентов.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка")); ТаблицаКлиентов.Колонки.Добавить("Сектора", Новый ОписаниеТипов("СписокЗначений")); ТаблицаКлиентов.Индексы.Добавить("Сектора"); // Заполним таблицу НоваяСтрока = ТаблицаКлиентов.Добавить(); НоваяСтрока.Наименование = "Иван"; НоваяСтрока.Сектора = СектораНабор1; // Построитель Построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаКлиентов); //Построитель.ДоступныеПоля.Сектора.Измерение = Истина; Построитель.ДоступныеПоля.Сектора.Отбор = Истина; НовыйОтбор = Построитель.Отбор.Добавить("Сектора"); НовыйОтбор.ВидСравнения = ВидСравнения.ВСписке; НовыйОтбор.Значение = СектораНабор2; НовыйОтбор.Использование = Истина; // Результат Построитель.Выполнить(); ТаблицаРезультат = Построитель.Результат.Выгрузить(); Сообщить(ТаблицаРезультат.Количество()); |
|||
1
Конструктор1С
27.02.20
✎
08:28
|
И зачем тебе устаревший построитель запроса? Используй СКД
|
|||
2
novichok79
27.02.20
✎
08:34
|
(0) а зачем делать список значений в таблице. как-то непрозрачно.
почему нельзя развернуть список и нормально сравнить? каким образом, по вашему, система должна сравнить списки значений? порядок записи + значение или просто по значению без учета порядка? |
|||
3
catena
27.02.20
✎
08:37
|
(2)Какое сравнение списков, вы о чем?
|
|||
4
novichok79
27.02.20
✎
08:45
|
(3) код почитайте
ТаблицаКлиентов.Колонки.Добавить("Сектора", Новый ОписаниеТипов("СписокЗначений")); .... НовыйОтбор = Построитель.Отбор.Добавить("Сектора"); НовыйОтбор.ВидСравнения = ВидСравнения.ВСписке; НовыйОтбор.Значение = СектораНабор2; НовыйОтбор.Использование = Истина; |
|||
5
Галахад
гуру
27.02.20
✎
08:50
|
Тоже хочу отбирать по списку...
|
|||
6
catena
27.02.20
✎
08:50
|
(4)А, пропустила))) Действительно, оргинально
|
|||
7
catena
27.02.20
✎
08:50
|
*оригинально
|
|||
8
Zixxx
28.02.20
✎
08:24
|
(1) В СКД как предлагаешь сделать отбор по списку значений? Источник данных у нас же ТЗ, одна колонка содержит список значений.
Если устанавливать отбор через построитель отчета, то ничего не происходит, а если установить такой отбор через СКД где источник ТЗ то ничего не выводит Пока так и не получилось отбор по тз по списку значений, наверное нельзя такое сделать, хотя отборы в построителе и СКД устанавливаются, но почему-то не реагируют |
|||
9
novichok79
28.02.20
✎
11:49
|
зачем вообще так организовывать информацию? система явно дает понять, что не надо так.
|
|||
10
Zixxx
28.02.20
✎
12:14
|
(9) Она как раз не дает это явно понять, СКД спокойно съедает ТЗ со списком значений и выдает его обратно в виде ТЗ со списком, в СКД в режиме пользователя можно указать отбор в виде списка значений. И если бы такой отбор работал то информация была бы правильно организована, это бы упростило ее обработку и вывод, есть же дерево значений есть же иерархия, есть табличные части у объектов, что это разве не правильно?
|
|||
11
Конструктор1С
28.02.20
✎
12:15
|
(8) так разверни до нормальной таблицы, и будет тебе щасте
Вместо Наим1, {Знач1,Знач2,Знач3} сделай Наим1, Знач1 Наим1, Знач2 Наим1, Знач3 |
|||
12
novichok79
28.02.20
✎
13:00
|
(10) одно дело табличная часть, а другое дело - список значений в реквизите.
тем более, логичнее хранить данные так, чтобы можно было в БД сохранить простым переносом значений. список значений разве можно в реквизите хранить? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |