как узнать количество строк в результате запроса 1с
Подсчитать количество строк в таблице в запросе
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Подсчитать количество строк в таблице
подскажите, пожалуйста, как подсчитать количество строк в таблице? и как установить курсор на.
Подсчитать количество строк в таблице
Доброго времени суток. У меня такой вопрос: как подсчитать количество строк выведеных в таблицу в.
как подсчитать количество строк в запросе средствами php
Как мне узнать количество строк в бд припомощи php. Я знаю что это можно делать при помощи msqli.
Как подсчитать количество сгруппированных строк в таблице?
В таблице много записей. Каждая запись принадлежит одному разделу каталога (category_id). В.
Добавлено через 40 секунд
карочи нужно пронумеровать строки
з.ы и случай отличается мне кажется- я вот не смог с налету решить
Решение
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как подсчитать нужное количество строк в таблице?
Хочу посчитать кол-во строк в динамической таблице. Но браузер выдает ошибку. Из-за ошибки я понял.
Подсчитать количество пучтых строк и количество строк,которые начинаются и оканчиваются на одну и ту же букву.
Дан текстовый файл.Подсчитать количество пучтых строк и количество строк,которые начинаются и.
подсчитать количество в запросе
ВЫБРАТЬ ЗамещенияСЛишними.Клиент, ЗамещенияСЛишними.Начало, ЗамещенияСЛишними.Окончание.
Подсчитать количество в самом запросе
Необходимо обновить, сложить содержимое поля с. Вопрос, как это сделать сразу в запросе. Дабы.
Непонятки с КОЛИЧЕСТВО() в запросе
читаю ЖКК (в актуальной справке платформы то же самое):
Агрегатная функция КОЛИЧЕСТВО
Функция исмеет следующий синтаксис:
Функция подсчитывает количество значений поля, указанного в параметре, попавших в выборку. В отличие от других агрегатных функций функция КОЛИЧЕСТВО допускает три способа использования.
Во-первых, функция позволяет подсчитать количество значений указанного поля, не равных NULL.
Во-вторых, функция позволяет подсчитать количество различных значений указанного поля, не равных NULL. Для этого перед спецификацией поля надо указать ключевое слово РАЗЛИЧНЫЕ.
В-третьих, функция позволяет подсчитать количество строк в результате запроса. Для этого в качестве параметра функции надо указать звездочку «*».
В качестве параметра функции можно указывать выражения, содержащие значения любого типа. Не может применяться к выражениям с типом ХранилищеЗначения и Строкам неограниченной длины.
Пример:
ВЫБРАТЬ
КОЛИЧЕСТВО (*) КАК Всего,
КОЛИЧЕСТВО (РАЗЛИЧНЫЕ Накладная.Номенклатура) КАК Разные
ИЗ
Документ.РасходнаяНакладная.Состав КАК Накладная
на практике же получается совсем не так, как описано, а так, как в примере (т.е. пример полностью не соответствует описанию).
конкретно вопрос про КОЛИЧЕСТВО(*)
при указании данной агрегатной функции в поле запроса вычисляется количество строк ДО группировок, т.е. никаким «количеством строк в результате запроса» даже не пахнет.
это я чего-то недопонимаю, или документация топорно составлена?
Вывести количество записей в запросе
Здравствуйте.
Подскажите, пожалуйста, как в таком запросе:
Запрос.Текст =
«ВЫБРАТЬ ПЕРВЫЕ 1
| НумерацияКодов.НомерОтправления
|ИЗ
| РегистрСведений.ИПМ_НумерацияКодов КАК НумерацияКодов
|ГДЕ
| НЕ НумерацияКодов.НомерОтправления В
| (ВЫБРАТЬ
| ТЧ.НомерОтправления
| ИЗ
| РегистрСведений.ИПМ_СоответствиеОтгрузокИНомеровПочтовыхОтправлений КАК ТЧ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.НомерОтправления
| ИЗ
| Документ.ИПМ_ОтгрузкаНаТранспортнуюКомпанию.ЗаказыКлиентов КАК ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов
| ГДЕ
| НЕ ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.Ссылка.ПометкаУдаления)
| И (ВЫРАЗИТЬ(НумерацияКодов.НомерОтправления КАК СТРОКА(6))) = &Индекс
| И НумерацияКодов.Регистратор.Посылки = &Посылки
|
|УПОРЯДОЧИТЬ ПО
| НумерацияКодов.НомерОтправления»;
Вывести количество всех найденных номеров отправления.
Попробовала так:
«ВЫБРАТЬ ПЕРВЫЕ 1
| НумерацияКодов.НомерОтправления,
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НумерацияКодов.НомерОтправления) КАК КоличествоНомеров
|ИЗ
| РегистрСведений.ИПМ_НумерацияКодов КАК НумерацияКодов
|ГДЕ
| НЕ НумерацияКодов.НомерОтправления В
| (ВЫБРАТЬ
| ТЧ.НомерОтправления
| ИЗ
| РегистрСведений.ИПМ_СоответствиеОтгрузокИНомеровПочтовыхОтправлений КАК ТЧ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.НомерОтправления
| ИЗ
| Документ.ИПМ_ОтгрузкаНаТранспортнуюКомпанию.ЗаказыКлиентов КАК ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов
| ГДЕ
| НЕ ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.Ссылка.ПометкаУдаления)
| И (ВЫРАЗИТЬ(НумерацияКодов.НомерОтправления КАК СТРОКА(6))) = &Индекс
| И НумерацияКодов.Регистратор.Посылки = &Посылки
|
|СГРУППИРОВАТЬ ПО
| НумерацияКодов.НомерОтправления
|
|УПОРЯДОЧИТЬ ПО
| НумерацияКодов.НомерОтправления»;
В количество выводится КОЛИЧЕСТВО ПЕРВЫХ : 1.
Как узнать количество строк в результате запроса 1с
Войдите как ученик, чтобы получить доступ к материалам школы
Язык запросов 1С 8.3 для начинающих программистов: функции для работы со строками
Автор уроков и преподаватель школы: Владимир Милькин
Функции для работы со строками в запросе
Когда мы говорим строка в запросе, то имеется в виду либо строковая константа:
либо реквизит таблицы, у которого тип СТРОКА:
Сложение строк
Для сложения используется операция +
Функция ПОДСТРОКА
Данная функция предназначена для выделения подстроки из строки.
В качестве параметров принимает:
Функция ПОДОБНО
Если нужно убедиться, что строковый реквизит соответствует определённым критериям мы его сравниваем. Например, так:
А что, если нужно более хитрое сравнение? Не просто на равенство или неравенство, а на подобие определенному шаблону? Вот как раз для этого и создана функция ПОДОБНО.
Если быть совсем точным, то это даже не функция, а оператор, который позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа.
Значение выражения должно иметь тип строка. Если значение выражения удовлетворяет шаблону – результатом оператора будет ИСТИНА, иначе – ЛОЖЬ.
Давайте уже рассмотрим пример, чтобы ситуация прояснилась:
Результатом выполнения данного запроса будет вся еда, наименование которой начинается на букву «К»:
Думаю вы догадались, что здесь вся «хитрость» сосредоточена в строке шаблона «[К]%». Буква «К» в квадратных скобках в данном случае означает, что первым символом наименования должна быть буква «К». Знак «%», идущий следом означает, что после буквы «К» могут идти (или не идти) любые символы в любом количестве. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.
Конечно, я всё это не из головы придумал. При формировании строки шаблона есть определенные правила, которые нужно соблюдать:
Примеры шаблонов с пояснениями:
«%» абсолютно любая строка (в том числе пустая):
«___» строка из трёх символов (любых):
«[ЧЛ]%[ЫН]» строка, начинающаяся с буквы Ч или Л и оканчивающаяся на Ы или Н:
«[^К]%» строка, не содержащая в начале букву К:
«[А-К]%» строка, начинающаяся с буквы из диапазона с А по К:
Обратите внимание на приём, использованный в шаблоне «[А-К]%». Вместо того, чтобы перечислять все буквы от А до К, например так «[АБВГДЕЁЖЗИЙК]%» мы указали диапазон значений через дефис. Квадратные скобки это позволяют делать.
Как получить количество документов в результате запроса?
Запрос=СоздатьОбъект(«Запрос»);
ТекстЗапроса=
»
|Период с (РабочаяДата()) по (РабочаяДата());
|Обрабатывать НеПомеченныеНаУдаление;
|ОбрабатыватьДокументы Проведенные;
|Док = Документ.РасходнаяНакладная.ТекущийДокумент;
|Контрагент = Документ.РасходнаяНакладная.Клиент;
|ТовСумм = Документ.РасходнаяНакладная.Сумма;
|Функция ДокИтог = Сумма(ТовСумм);
|Функция КолДок = Счётчик();
|Группировка Контрагент без упорядочивания без групп;
|Условие(Контрагент = Клиент);
|»;
Запрос.Выполнить(ТекстЗапроса);
Сумма=Запрос.ДокИтог;
Сообщить(Запрос.КолДок);
(8) Kaijsu, вот ты упертый, один в один скопируй его код к себе, выполни посмотри результат, а потом смотри что в твоем коде не так как в его.
это стандартная группировка, почитай СП
ПриВыборе()
Запрос=СоздатьОбъект(«Запрос»);
ТекстЗапроса=
»
|Период С (РабочаяДата()) По (РабочаяДата());
|Печеньки = Документ.РасходнаяНакладная.Сумма;
|Док = Документ.РасходнаяНакладная.ТекущийДокумент;
|Контрагент = Документ.РасходнаяНакладная.Клиент;
|Функция ИтогоПеченьки = Сумма(Печеньки);
|Функция СколькоПеченек = Счётчик();
|Группировка Док без упорядочивания без групп;
|Условие (Контрагент = Клиент);
|»;
Запрос.Выполнить(ТекстЗапроса);
Сообщить(«Итого печенек за дату: «+Запрос.ИтогоПеченьки);
Запрос.Группировка(1);
Сообщить(«Итого печенек в кучке: «+Запрос.СколькоПеченек);
Запрос.Выгрузить(Таблица);
КонецПроцедуры
правильный вариант: http://screencast.com/t/ZaoFnJAdSjh
неправильный вариант из (19), по барабану с группами или без групп: http://screencast.com/t/vjIohGLkNXE
там можно вообще по любому полю посчитать уникальное колво
или я засыпаю ужее?
а про колво доков не вижу
Для этого требуется Номер строки документа если там есть многострочная часть.
Определяет Количество документов.
(31) CheBurator,
Нет не будет, вставь проверку на НомерСтроки <> 0.
Это рабочий код, и давно работает. К тому-же проведенные документы без табличной части. не имееют смысла и к тому-же не проводятся)
По запросу там используются только проведенные документы. и такая поверка избыточна сама по себе. Смысл проверки по нуль нужна если выбираются все документы
К тому-же смысл в документах без табличной части, сам подумай. Не какого! Поэтому они просто отсекаются как не нужные)
В таких случаях добавляется всего лишь чуток
Функция Счётчик = Счётчик() когда ((НомСтроки=1)или(ТекущийДокумент.КоличествоСтрок()=0));
(39) CheBurator,
В принципе и так можно, но лучше не надо. Я посмотрел его задание у него то-же проведенные, получится такая-же фигня количество документов с пустой табличной частью подсчитывать, а они нужны, а в твоем случае будут считаться такие документы. Документы с пустой табличной частью, это ошибка оператора. И их учитывать не надо. Поэтому НомерСтроки = 1 достаточно то-же. И правильней.
Я отвечал на его вопрос, твоего не видел ответа. Но приятно, что есть еще люди которые понимают в ТиС)
Ну сколько я работаю. всегда накладные с пустой табличной частью игнорирую. Это оператор либо забыл либо затупил и создал новый закрыв этот. И не какой полезной нагрузки этот документ не несет, а только портит статистику своим присутствием, если он попадет в запрос. Канечно не спорю есть фирмы которые возможно как-то иначе введут учет, но это скорее исключение, чем правило. А под такие правила, сам разработчик должен приспосабливать то что ему дают как исходный код для примера.
ну, в любом случае задачка получилась полезной.
в плане осмысления неосмысленного:
кстати, очень было бы интересно посмотреть как отработает что получится в итоге в тексте скульного запроса на такую твою конструкцию
в когда: ТекущийДокумент.КоличествоСтрок()
— думаю (но неуверен) что будет сгенерено какое-то соединение с таблицей скуля для табличной части документа для подсчета количества строк документа.. что утяжеляет запрос.
У меня, например, часть торг12 и счф выписываются в бухбазе по каким-либо неосновным (не)торговым операциям. Под эти буховские документы в торгбазе тупо резервируются документы-болванки. Это проще, чем тянуть в торговую прогу бухгалтерские заморочки.