1. 1C / Говнокод #18040

    −156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Функция ПолучитьКоличествоДокументов(ИмяДокумента) Экспорт
    	
    	Запрос = Новый Запрос("Выбрать Документ." + СокрЛП(ИмяДокумента) + ".Ссылка");
    	
    	Выборка = Запрос.Выполнить().Выбрать();
    	
    	Возврат Выборка.Количество();
        	
    КонецФункции

    Запостил: stungnthumz, 22 Апреля 2015

    Комментарии (12) RSS

    • В последнее время стало модно тягать датасеты по сети? Или написание запроса к БД длиннее 4 слов теперь моветон?
      Ответить
    • Допустим, ему НУЖНО узнать количество документов. Ну не важно там, пометка удаления, непроведенные, за сто лет ведения базы, пофиг. Просто тупо всех документов данного типа.

      Предложите свой вариант.
      Ответить
      • ну в sql для этого SELECT COUNT(*) есть. А в 1С что ли нет аналога?
        Ответить
        • Не владею SQL, пардон) Разве это - не то же самое, что в примере?
          Ответить
          • Сходу гуглится пример:
            ВЫБРАТЬ
                Цвет,
                КОЛИЧЕСТВО(Калорийность)
            ИЗ
                Справочник.Еда
            СГРУППИРОВАТЬ ПО
                Цвет

            И даже так:
            ВЫБРАТЬ
                Цвет,
                КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Калорийность)
            ИЗ
                Справочник.Еда
            СГРУППИРОВАТЬ ПО
                Цвет

            Отсюда:
            http://helpme1c.ru/yazyk-zaprosov-1s-8-3-dlya-nachinayushhix-programmistov-gruppirovka

            Калька с SQL COUNT(*) и COUNT(DISTINCT *).
            Ответить
            • Классно, но это не возвращает количество элементов справочника Еда, например.
              Давайте исходить из задачи)
              Ответить
              • Пример в самом конце статьи:
                ВЫБРАТЬ
                	СУММА(Калорийность) КАК Сумма,
                	СРЕДНЕЕ(Калорийность) КАК Среднее,
                	МИНИМУМ(Калорийность) КАК Минимум,
                	МАКСИМУМ(Калорийность) КАК Максимум,
                	КОЛИЧЕСТВО(Калорийность) КАК Количество	
                ИЗ
                	Справочник.Еда
                Ответить
          • То есть в данной задаче это выглядело бы так:
            Запрос = Новый Запрос("Выбрать КОЛИЧЕСТВО(Документ." + СокрЛП(ИмяДокумента) + ".Ссылка)");

            И тогда вызывать метод Количество у переменной Выборка не нужно. Запрос сразу вернёт число.
            Ответить
          • Конечно, ты же 1сник
            Ответить

    Добавить комментарий