Как найти максимальное значение в запросе 1с
6. При группировке требуется, чтобы значения в столбце Цена просуммировались. Для этого подойдёт агрегатная функция
7. При группировке требуется найти максимальное значение в столбце Цена. Для этого подойдёт агрегатная функция
8. При группировке требуется найти количество различных значений в столбце Цена. Для этого подойдёт агрегатная функция
Домашнее задание
а) Напишите запрос, который группирует цвета, встречающиеся среди еды:
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите на сайт как ученик
б) Напишите запрос, который находит максимальную калорийность еды для каждого цвета:
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите на сайт как ученик
в) Напишите запрос, который группирует еду по вкусу и цвету:
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите на сайт как ученик
Если всё ещё не совсем понятно, как это группировать сразу по двум полям, то давайте разберём такой пример:
Пусть у нас есть следующая таблица:
И мы хотим сгруппировать её по полю А. Это значит, что мы возьмём все строчки с одинаковым полем А и "слепёшим" (свернём, сгруппируем) в одну.
Поэтому на выходе будет:
А теперь пусть есть таблица:
А Б
1 3
1 3
1 5
2 4
2 4
2 6
И мы группируем сразу по А и Б. Это значит, что мы возьмём все строчки с одинаковыми А и Б и "слепёшим" (свернём, сгруппируем) в одну.
Поэтому на выходе будет:
А Б
1 3
1 5
2 4
2 6
А теперь замените А на Вкус, а Б на Цвет.
г) Напишите запрос, который выведет количество цветов в таблице Справочник.Цвета:
Эталонное решение. Сначала пишем код сами, проверяем на компьютере (как и все примеры программ из уроков), только потом сверяемся
Войдите на сайт как ученик
Для учеников
Уровень сложности уроков идёт снизу вверх. Поэтому старайтесь заниматься последовательно, ничего не пропуская и не откладывая на потом.
Обязательно выполняйте все тесты и домашние задания, старайтесь улучшить свои результаты. Сверяйтесь с эталонными решениями только после самостоятельного выполнения задач.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
1c7 поиск 2 значений в 2 колонках ТЗ
Есть 2 Таблицы Значений. одну обходим в цикле. В другой нужно найти сразу 2 значения в 2 разных.
Поиск Максимального и Минимального числа
Привет. Нужна помощь. Ввожу дату и числа в цикле: Для i = 1 По 5 Цикл ВвестиДату(y.
Поиск отрицательного значения, а так же деление, поиск максимального значения и запись в таблицу
Помогите пожалуйста дорешать две задачки: Вобщем первая задачка заключается в том, что надо.
Поиск максимального значения
Добрый день!! Имеется две таблицы к примеру в одной таблице есть Ф.И.О. и должности в другой.
ну ты посмотри почему ноль!
Добавлено через 2 минуты
Так попробуй:
Может окинешь код своим взглядом и скажешь где можно было сделать более короче/ проще. Число_Строк и Число_Колонок это поля ввода которые соответственно вводит пользователь.
Добавлено через 6 минут
Задавай имена колонок:
И при поиске можно использовать заголовок
Теперь вопрос не по теме, но всё таки достаточно интересующий меня. Сделал следующим образом.
В модуле формы
Полный текст ошибки дай
Добавлено через 1 минуту
И вообще это дурной ТОН переносить работу с формой в модуль объекта
: Процедура или функция с указанным именем не определена (Колонки_Добавить)
>Колонки_Добавить(Таблица1, Число_Колонок);
: Процедура или функция с указанным именем не определена (Строки_Добавить)
>Строки_Добавить(Таблица1, Число_Строк);
: Процедура или функция с указанным именем не определена (Таблица1_Заполнить)
>Таблица1_Заполнить(ЭлементыФормы.Таблица1, Количество_Колонок, Количество_Строк);
: Процедура или функция с указанным именем не определена (Копировать_Таблицу)
>Копировать_Таблицу(ЭлементыФормы.Таблица1, ЭлементыФормы.Таблица2);
: Процедура или функция с указанным именем не определена (Максимальное_Значение_В_Колонках_Найти)
>Максимальное_Значение_В_Колонках_Найти(Таблица2);Форма.Заполнение_Таблицы_Числами.Форма(2,2)>
Эти операторы возможно использовать во всех 4 ситуациях, но контекст (окружаемые переменные у них отличаются).
В первых двух случаях условия накладываются на поля выборки, например:
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК СпрКонтрагенты ГДЕ СпрКонтрагенты.ИНН<>""
Обращение идет через имя таблицы (в простых запросах может опускаться, но в сложных может вызывать неоднозначность поля).
Данное условие вызывает ограничение выборки (обычно уменьшает ее)
В конструкторе запроса находятся на вкладке условия:
В произвольном варианте пишется текстом, в обычном выбирается поле, оператор сравнения и значение:
ВЫБОР КОГДА
Этот условный оператор используется для преобразования значения, ограничивает же выборку только когда расположен после служебного слова ГДЕ.
Допустимо несколько подчиненных условий. Может находится в полях выборки, полях условий ГДЕ, группировок, итогов (универсальный оператор для сложных условий)
Например, так выглядит вариант преобразования:
ВЫБРАТЬ
ВЫБОР
КОГДА 1 = 2
ТОГДА "Никогда не будет истиной"
КОГДА 1 = 1
ТОГДА "Всегда будет истиной"
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ КАК ПолеПредставленияЗначения
Вариант использования в условии ГДЕ, результат выборки должен возвращать булево значение либо сравниваться с чем-то еще
Пример № 1
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = "" ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ
Пример № 2:
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = "" ТОГДА "" ИНАЧЕ "Заполнено" КОНЕЦ = "Заполнено"
Параметры виртуальных таблиц
В данном случае оперирование идет с полями таблиц, например ресурсами, измерениями, реквизитами. В этих условиях обращение идет без точки (контекст этого не требует).
ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют.СрезПоследних(, Валюта.Код = "RUR")
В конструкторе запроса они находятся вот здесь:
Стоит отметить, что обычно используется ограничение над измерениями, так как иначе условие отнесется к выборке для получения, а не на сам результат (на ресурсы ограничения следует наложить в операторе ГДЕ, чтобы получить ожидаемый результат).
Накладывание условия в запросе на измерения, если нет обращения через точку (как в примере выше), ускоряет выборку: на больших таблицах, это будет визуально заметно; на небольших можно использовать как удобно.
ИМЕЮЩИЕ
Для наложения отбора для результата «группировочных» функции
ВЫБРАТЬ
Контрагенты.ИНН,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) КАК Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
СГРУППИРОВАТЬ ПО
Контрагенты.ИНН
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) > 1 И
Контрагенты.ИНН <> ""
В данную выборку попадут дубли ИНН, когда оно вообще заполнено.
В конструкторе запроса также находится на вкладке условия
В этой конструкции также возможно использование «группировочных» операторов И,ИЛИ, но сравнивать можно с константами запроса, с функцией или значением, входящим в группировку (другие реквизиты справочника в данном примере не будут доступны для сравнения -> тогда следует использовать ГДЕ).
Можно дурачить всех все время, — при условии, что реклама ведется правильно, а расходы на нее достаточно велики.
— Джозеф Левин
Команда ИТОГИ ПО предназначена для получения итогов по выбранным полям, затем позволяет производить иерархическую выборку результата запроса, а также выгрузку его сразу в ДеревоЗначений.
Обычный же результат выгружается как таблица значений (помимо линейной выборки).
Синтаксис блока ИТОГИ
Пример:
ИТОГИ
МАКСИМУМ(СуммаОборот)
ПО
ОБЩИЕ,
Ссылка ИЕРАРХИЯ
Конструктор запроса
Управление итогами производится на одноименной вкладке «Итоги»
- Доступно выбор группировочного поля
- Типа итогов (Элементы, Элементы и иерархия, Только иерархия)
- Указания наличия/отсутствия общего итога по всей выборке
- Выбор итоговых полей и выражений аналогичных по синтаксису группировке
Иерархия выборки
Выборка запроса по группировкам была рассмотрена в этой статье.
Приведем фрагмент кода:
Тонкости итогов
Если вызвать команду выгрузить с обходом по группировкам, она вернет ДеревоЗначений:
Есть интересный механизм получения аккуратного и компактного дерева через использования ВЫБОР в разделе ИТОГИ
Имя поля в итоге должно совпадать с одним из полей выборки иначе будет ошибка «Невозможно определить поле для записи результата»
Поля в итогах также должны быть в выборке, в противном случае выйдет ошибка: «Поле, по которому рассчитываются итоги, должно присутствовать в списке выборки»
ВЫБРАТЬ
4 КАК Четыре,
3 КАК Три,
2 КАК Два,
1 КАК Один
ИТОГИ
ВЫБОР
КОГДА Два ЕСТЬ NULL
ТОГДА Один
КОГДА Три ЕСТЬ NULL
ТОГДА Два
ИНАЧЕ Три
КОНЕЦ КАК Четыре
ПО
Один,
Два,
Три
На Выходе будет вот такая дерево:
- Осталось удалить лишние колонки и можно сразу выводить на форму
Реклама магазина самообслуживания: треска, стоящая в очереди за cобственной печенью.
— Владимир Колечицкий
Эти операторы возможно использовать во всех 4 ситуациях, но контекст (окружаемые переменные у них отличаются).
В первых двух случаях условия накладываются на поля выборки, например:
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК СпрКонтрагенты ГДЕ СпрКонтрагенты.ИНН<>""
Обращение идет через имя таблицы (в простых запросах может опускаться, но в сложных может вызывать неоднозначность поля).
Данное условие вызывает ограничение выборки (обычно уменьшает ее)
В конструкторе запроса находятся на вкладке условия:
В произвольном варианте пишется текстом, в обычном выбирается поле, оператор сравнения и значение:
ВЫБОР КОГДА
Этот условный оператор используется для преобразования значения, ограничивает же выборку только когда расположен после служебного слова ГДЕ.
Допустимо несколько подчиненных условий. Может находится в полях выборки, полях условий ГДЕ, группировок, итогов (универсальный оператор для сложных условий)
Например, так выглядит вариант преобразования:
ВЫБРАТЬ
ВЫБОР
КОГДА 1 = 2
ТОГДА "Никогда не будет истиной"
КОГДА 1 = 1
ТОГДА "Всегда будет истиной"
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ КАК ПолеПредставленияЗначения
Вариант использования в условии ГДЕ, результат выборки должен возвращать булево значение либо сравниваться с чем-то еще
Пример № 1
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = "" ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ
Пример № 2:
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = "" ТОГДА "" ИНАЧЕ "Заполнено" КОНЕЦ = "Заполнено"
Параметры виртуальных таблиц
В данном случае оперирование идет с полями таблиц, например ресурсами, измерениями, реквизитами. В этих условиях обращение идет без точки (контекст этого не требует).
ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют.СрезПоследних(, Валюта.Код = "RUR")
В конструкторе запроса они находятся вот здесь:
Стоит отметить, что обычно используется ограничение над измерениями, так как иначе условие отнесется к выборке для получения, а не на сам результат (на ресурсы ограничения следует наложить в операторе ГДЕ, чтобы получить ожидаемый результат).
Накладывание условия в запросе на измерения, если нет обращения через точку (как в примере выше), ускоряет выборку: на больших таблицах, это будет визуально заметно; на небольших можно использовать как удобно.
ИМЕЮЩИЕ
Для наложения отбора для результата «группировочных» функции
ВЫБРАТЬ
Контрагенты.ИНН,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) КАК Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
СГРУППИРОВАТЬ ПО
Контрагенты.ИНН
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) > 1 И
Контрагенты.ИНН <> ""
В данную выборку попадут дубли ИНН, когда оно вообще заполнено.
В конструкторе запроса также находится на вкладке условия
В этой конструкции также возможно использование «группировочных» операторов И,ИЛИ, но сравнивать можно с константами запроса, с функцией или значением, входящим в группировку (другие реквизиты справочника в данном примере не будут доступны для сравнения -> тогда следует использовать ГДЕ).
Можно дурачить всех все время, — при условии, что реклама ведется правильно, а расходы на нее достаточно велики.
— Джозеф Левин
Читайте также: