Имя: Пароль:
1C
1С v8
Пустой справочник
, ,
0 freeman312
 
31.03.17
12:29
Есть ли какая-нибудь функция которая позволяет узнать количество элементов в справочнике или позволяет узнать пустой ли справочник?
1 shamannk
 
31.03.17
12:30
Зачем?
2 DrShad
 
31.03.17
12:31
запрос
3 Heckfy
 
31.03.17
12:31
Запрос
Выбрать КОЛИЧЕСТВО(*) Как Кол
4 DrShad
 
31.03.17
12:31
ВЫБРАТЬ КОЛИЧЕСТВО(Ссылка) ИЗ Справочник.МойСправочник
5 Heckfy
 
31.03.17
12:33
(4) Пипец. Зачем ссылку то в запрос сувать, если только количество посчитать нужно ?!?!?!?
6 Рэйв
 
31.03.17
12:37
(5)Запрос все равно лезет к таблице справочника в базе. Никакой разницы
7 freeman312
 
31.03.17
12:37
Спасибо
8 Heckfy
 
31.03.17
12:59
(6) Ну ну. Удачи при таком подходе. Хотел бы я посмотреть, сколько таким методом справочник миллионов на сто будет считаться....
9 1dvd
 
31.03.17
13:05
(8) попробовал со ссылкой и с кодом. Никакой, суко, разницы...
10 Aleksey
 
31.03.17
13:06
(8) т.е. запрос ко всем полям будет быстрее, чем к конкретному полю ссылка?
11 Aleksey
 
31.03.17
13:08
(9) и не будет
12 youalex
 
31.03.17
13:17
(11) разницы не будет, т.к. ссылка не может быть NULL.

Функция COUNT(*) возвращает количество элементов в группе. Сюда входят значения NULL и повторяющиеся значения.

COUNT (все выражение) вычисляет выражение для каждой строки в группе и возвращает количество значений, не равных NULL.
https://msdn.microsoft.com/ru-ru/library/ms175997.aspx
13 Naf2017
 
31.03.17
13:21
ВЫБРАТЬ ПЕРВЫЕ 1
  42 КАК Флаг
ИЗ Справочник.ХЗ


Если пустой результат, то и справочник пустой
14 Heckfy
 
31.03.17
13:33
Синтаксис спутал. :(
Выбрать
Ссылка из спр.Х
РезЗарп=Запрос.выполнить().Выбрать()
Сообщить РезЗапр.Количество()
15 HardBall
 
31.03.17
14:41
(14) Тогда в ТЗ выгружай, чего уж там.
16 FIXXXL
 
31.03.17
14:43
(14) Запрос.Выполнить().Пустой() - нет записей :)
17 Вафель
 
31.03.17
14:46
(5) тк по полю ссылка кластерный индекс, т отакой запрос равнозначен с Количество(*)
18 youalex
 
31.03.17
14:55
Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ Справочник.Имя");
ПустойСправочник = Запрос.Выполнить().Пустой();
19 sidalexsandr
 
31.03.17
16:23
(0) Выборкой. Далее переменная и ей присваиваем значение Ложь. Далее цикл обхода выборки, внутри цикла меняеш значение на Истина. В итоге у тебя будет если выборка пустая тогда цикл не сработает и переменная будет = Ложь. Если попали в цикл тогда значит справочник не пустой и переменная будет = Истина.
20 sidalexsandr
 
31.03.17
16:24
(18) Можно проще
Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ Справочник.Имя");

ПустойСправочник = Запрос.Выполнить().Пустой();
21 youalex
 
31.03.17
16:51
(20) Серверу явно не будет проще.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn