Имя: Пароль:
1C
1С v8
программно узнать элементы соответствующие отбору
,
0 spapin87
 
15.07.13
10:18
Доброе утро. Подскажите, пожалуйста, устанавливаю отбор на форме списка справочника номенклатура.
Как  узнать  количество  элементов  которые  остались  отображаться на
экране?
Иными   словами   мне   нужно   программно  узнать  есть  ли  элементы
соответствующие отбору.

Спасибо за ответ.
1 Живой Ископаемый
 
15.07.13
10:20
скормить список построителю запроса. наверное самое быстрое
2 Лефмихалыч
 
15.07.13
10:21
+(1) только вместо полей в предложении ВЫБРАТЬ надо написать всего-лишь "КОЛИЧЕСТВО(*)"
3 Живой Ископаемый
 
15.07.13
10:23
2(2)? что?
4 Мыш
 
15.07.13
10:24
(3) Всё верно. Нужно количество записей. Оно и будет на выходе.
5 Лефмихалыч
 
15.07.13
10:24
(3) предложение ВЫБРАТЬ в тексте запроса построителя должно не перечень конкретных полей содержать, а только "КОЛИЧЕСТВО(*)". Это я так автора уберечь пытался от распространенной ошибки получения 100500ТБ данных на клиента, чтобы просто убедиться, что там хоть что-то есть.
6 Живой Ископаемый
 
15.07.13
10:28
http://screencast.com/t/nhN2UYGnnv5
я имел в виду так
7 Живой Ископаемый
 
15.07.13
10:30
:) но правда прикольно, если я например устанавливаю отбор по которому получается 15 элементов, то с иерархическим просмотром получается 18, а без - 15
Ну, группы просто, в которых содержатся элементы сами не удовлетворяют
8 spapin87
 
15.07.13
10:31
выбрать количество из списка что ль? Если не трудно дайте пример кода
9 Живой Ископаемый
 
15.07.13
10:31
2(8) что?
10 Лефмихалыч
 
15.07.13
10:32
(6) так лишние данные на клиента ломанутся + с группами, как ты правильно заметил, неоднозначность будет
(8) из справочника выбрать
11 Живой Ископаемый
 
15.07.13
10:35
ему нужно "остались отображаться на экране", но тут фокус в том, что если он зайдет внутрь одной групы, то будут отображаться только элементы внутри этой группы и сама она (это будет менее 18), а вот в результате построителя все равно будет 18
12 Лефмихалыч
 
15.07.13
10:36
а "остались отображаться на экране" - это только ПриПолученииДанных
13 Живой Ископаемый
 
15.07.13
10:37
http://screencast.com/t/Mj9gO053SYa

у меня и есть при получении данных, там ведь написано
14 Живой Ископаемый
 
15.07.13
10:39
заход внутрь группы при включенном иерархическом просмотре не добавляет автоматом эту группу в отбор. если нужно чтобы добавлялась  -этим нужно озаботиться отдельно
15 Живой Ископаемый
 
15.07.13
10:40
Построитель = Новый ПостроительЗапроса;
   Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(СправочникСписок);
   Результат = Построитель.Результат; //отобранные строки типа РезультатЗапроса
   Сообщить(""+Результат.Выгрузить().Количество());
16 Живой Ископаемый
 
15.07.13
11:22
не получилось?
17 spapin87
 
15.07.13
11:35
Да получилось, спасибо. Сделал так:

Построитель = новый ПостроительЗапроса;
Построитель.ИсточникДанных = новый ОписаниеИсточникаДанных(Список);
результат = Построитель.Результат.выгрузить();
Сообщить("УРА "+результат.Количество());

Если результат.Количество()=0 тогда
18 Живой Ископаемый
 
15.07.13
11:36
и куда этот код повесил?
19 spapin87
 
19.07.13
11:16
А как отобрать без групп, если иерархичесикй справочник каталогов?
20 Mitriy
 
19.07.13
11:20
(19) добавить условие на ЭтоГруппа?
21 spapin87
 
19.07.13
11:24
а как в синтаксисе добавить это условие?
22 spapin87
 
19.07.13
11:26
(22)в построителе, чтобы выбирались элементы именно выбранной папки
23 Mitriy
 
19.07.13
11:26
ПостроительЗапроса.Отбор...
24 spapin87
 
19.07.13
11:32
ПостроительЗапроса.Отбор.Родитель.Значение = НашТекущийРодитель
Так?
25 Бледно Золотистый
 
19.07.13
11:34
Нафига построитель ПроверитьСтроку() можно использовать ведь
26 Mitriy
 
19.07.13
11:50
(24) лезть надо ковырять... с ходу не скажу...
27 spapin87
 
19.07.13
11:58
В этом-то и проблема, никогда не работал с построителями, всегда так писал ...
28 spapin87
 
19.07.13
14:27
сделал: сначала снимаю иерархию, а потом ставлю. В принципе работает, но это же не правильно ... может все-такие кто-то подскажет правильно как сделать?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан