![]() |
![]() |
|
ДокументСписок. Количество. ОФ nAPACEHAK, Hawk_1c, Волшебник, crotnn, Олдж, Bigbro, youalex, Vstur, denk32, pasha_d, takefive, OldCondom, DimR_71, craxx, maxab72, Kongo2019, ldo6, Terrixus, Chameleon1980, Галахад, viraboy, Fish, piter3, boozin, mikecool, Prog_man, p-soft, ejikbeznojek, Группа неравнодушных, Мультук, phabeZ, Crusher, San787, Бычье сердце, lEvGl, formista2000, Builder, Dен, TormozIT, Михаил Козлов, ssh2006, DiMel_77, Гипервизор, , kir-g, Homer, saaken, 2S, shuhard, Гость из Мариуполя, DemonShinji2, Tefal
| ☑ | ||
---|---|---|---|---|
0
nAPACEHAK
26.09.25
✎
12:15
|
Доброго
На форму выведен список. тип ДокументСписок Могу я как нибудь получить количество элементов списка? 1. Устанавливаем отбор в списке 2. Получим все что есть, с учетом отборов Источник = Новый ОписаниеИсточникаДанных(Список); ПостроительОтчета = Новый ПостроительОтчета; ПостроительОтчета.ИсточникДанных = Источник; ПостроительОтчета.Выполнить(); ПостроительОтчета.Результат = ... 3. Проблемм. Если я не установлю отборы то в построитель улетит все 2млн строк таблицы, и пока он там выполняется можно не только чая напиться, но и чего покрепче Хотелось бы перед выполнением построителя ругнуться что то типа "дофига элементов отобрано". как то перебрать элементы и если их больше 100 то нафиг. или что то типа первые 100 или еще какую матерную переменную заполнить Спасибо |
|||
1
craxx
26.09.25
✎
12:21
|
(0) "Хотелось бы перед выполнением построителя ругнуться что то типа "дофига элементов отобрано". "
Хотелось - ругнись. Разрешаю. |
|||
2
nAPACEHAK
26.09.25
✎
12:39
|
(1) Спасибо за разрешение. А то я уж испереживался, как же я без него
А по существу и без флуда слабо? |
|||
3
Волшебник
26.09.25
✎
12:42
|
используйте запрос с ВЫБРАТЬ ПЕРВЫЕ 100
|
|||
4
maxab72
26.09.25
✎
12:44
|
(2) Теоретически можно вытащить из Настроек построителя отборы, самому сформировать запрос по ним, получить количество строк в результате запроса и далее ругаться, анализировать, и вообще делать что угодно до ПостроительОтчета.Выполнить();
|
|||
5
nAPACEHAK
26.09.25
✎
12:57
|
(3) а куда его прикрутить?
была мысль выдернуть из построителя запрос и обработать его, но в построителе - ИсточникДанных. и потому ПолучитьЗапрос() не работает (4) Настройки = ПостроительОтчета.ПолучитьНастройки(); Непонятно что с этим делать. СП радует |
|||
6
Галахад
гуру
26.09.25
✎
13:09
|
Зачем из построителя получать настройки, когда источник "Список"?
|
|||
7
nAPACEHAK
26.09.25
✎
13:32
|
(6)
эмм... поправьте если не в ту сторону думаю.... это из список.отборы получаем которые используются Потом человечий запрос к таблице с доками где тип дока такой же как в документсписок что то типа выбрать количетво различные ссылка из документы.пустьбудетзаказ где накидаем условий из отбора.... выборка.количество() = то что нам надо для ругани как то так? |
|||
8
youalex
26.09.25
✎
13:43
|
(7) выборка.количество() - у тебя опять все доки будут.
Можно по идее, в Построитель.Текст = "ВЫБРАТЬ Количество(*) Количество ИЗ Документ.ТвойДок" И отбор из списка перекинуть в построитель |
|||
9
nAPACEHAK
26.09.25
✎
13:58
|
(8) ну да, все доки. только с учетом установленных отборов из ДокументСписок
из документы.пустьбудетзаказ где накидаем условий из отбора.... или я чот не туда полез? а в Построитель.Текст разве прокатит? я из этого исхожу: Источник = Новый ОписаниеИсточникаДанных(Список); ПолучитьЗапрос (GetQuery) Синтаксис: ПолучитьЗапрос() Описание: Получить запрос для выполнения отчета. Данный метод недоступен в случае, если установлено свойство ИсточникДанных. |
|||
10
youalex
26.09.25
✎
14:09
|
(9) ПолучитьЗапрос() - Это все не нужно, ты можешь сразу из построителя получить результат.
>я из этого исхожу: Источник = Новый ОписаниеИсточникаДанных(Список); Ты же от этого хочешь уйти т.к медленно >а в Построитель.Текст разве прокатит? Попробуй. |
|||
11
nAPACEHAK
26.09.25
✎
14:33
|
(9) прокатывает но не так как хотелось бы :)
при такой строке Источник = Новый ОписаниеИсточникаДанных(Список); ПостроительОтчета = Новый ПостроительОтчета; ПостроительОтчета.ИсточникДанных = Источник; ПостроительОтчета.Текст = "ВЫБРАТЬ Количество(*) КАК Количество ИЗ Документ.ЗаказПокупателя"; ПостроительОтчета.Выполнить(); в результате я получу количество всех доков в таблице без учета отборов, все 2млн т.е., получается что тут опять надо считывать установленные отборы и добавлять их в ГДЕ, как предполагалось в (7). ну и в принципе для этого запроса построитель получается лишний, т.к. он тогда не учитывает ИсточникДанных ПолучитьЗапрос() - Это все не нужно, ты можешь сразу из построителя получить результат. да, могу. но (0) если я не установлю отборы , то очень долго я всё это добро получать буду |
|||
12
youalex
26.09.25
✎
14:58
|
(11) да не в ГДе, а в сам построитель скопируй их поэлементно.
Но просто текст не получится (думал что построитель автоматически добавляет возможные отборы), нужно получается динамически их добавлять в {ГДЕ} Добавлять можно из Метаданные.Документ.ЗаказПокупателя.Реквизиты например + стандартные реквизиты. Или из ДокументСписок.Отбор (но там еще могут быть критерии отбора) |
|||
13
nAPACEHAK
26.09.25
✎
15:05
|
(12) ))))))
ну походу задача свелась так: 1. нафиг построителя 2. формируем запрос. в ГДЕ динамически пихаем то что есть в отборах у ДокументСписок 3. Выполняем запрос с группировкой по количеству 4. ругаемся или нет 5. если не ругаемся - тот же самый запрос но уже с выбором полей (ссылка, т.к. по факту от ДокСписок она и нужна) |
|||
14
Волшебник
26.09.25
✎
15:07
|
А не проще отказаться от динамического списка, а выбирать порцию по N элементов + пагинатор?
|
|||
15
nAPACEHAK
26.09.25
✎
15:25
|
(14)
Примерно такая задача: Пользователь выбирает элементы для дальнейшей обработки. тут примерно набросал, как более менее подходящий пример, галки с флагами установить/снять все. если отборами я ограничу ДокументСписок - то все ок если просто ткну без отборов - то всё становится печально. может я как то не с той стороны подошел к решению? тут аля дин.список(ДокументСписок) + к нему колонка прикручена Колонка = ЭлементыФормы.Список.Колонки.Вставить(0, "");
|
|||
16
nAPACEHAK
26.09.25
✎
15:31
|
мне больше нравится вариант - открыл список значений, накидал в него из списка выбора и получил нужные ссылки выбором, но упёрлись на галки :(
|
|||
17
nAPACEHAK
26.09.25
✎
17:05
|
* Для истории
Адекватного решения не нашлось :( по задаче было принято решение установить необходимый минимум обязательных отборов и плясать от него Всем спасибо. З.Ы. Если появятся идеи - накидывайте ;) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |