| 
    
            
         
         | 
    
    
  | 
Пустой справочник | ☑ | ||
|---|---|---|---|---|
| 
    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) Серверу явно не будет проще.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |