Найти следующий в запросе 1с

Обновлено: 06.07.2024

При попытке написать условие в параметрах виртуальной таблицы ВЫБОР, ТОГДА, КОГДА пишет (6,7) ожидается выражение ")" , где то ковычку пропустил? просто я вроде все пересмотрел, вроде норм все.

не надо так "КАК Номенклатура.ОсновнойПоставщик" -- лучше "КАК ОсновнойПоставщик" "выразить" обычно используется когда реквизит составного типа Такс. эту проблему разрешил, смотрите суть в следующем, есть обработка (Скрин 1), я для нее написал запрос:

Вроде в запросе ошибок нет, фильтрацию сделал по поставщику в обработке, при нажатии Выгрузить данные -> Пишет успешно выгружены данные-> А самого файла нету, запрос свой проверял в Консоле Запросов отрабатывает, только не фильтрует, а когда пытаюсь посмотреть Выгруженные данные в обработке показывает следующее (скрин 2), т.е. я так понимаю в выгружаемых данных просто пусто и вот вопрос в следующем, косяк в самой обработке надо искать, либо же я запрос написал некорректно ? (5) а посмотреть результат запроса с фильтром и без фильтра?) Особенно при нажатии на выгрузку

ПостроительОтчета (ReportBuilder)
Результат (Result)
Использование:

Только чтение.
Описание:

Тип: РезультатЗапроса.
Результат выполнения запроса для формирования отчета.

Сервер, толстый клиент, внешнее соединение.

Доброго дня.
Помогите пожалуйста разобраться.
Когда в Выбор ЛС Заполнен, то почему-то подхватывается условие По дате, хотя мне нужно сделать так, чтобы по дате и по улице попадали документы только в том случае, если ЛС пустой.

Как это верно сделать??

Моя невнимательность.
Я сделала 2 условия на дату док.
1 перед
Выбор КОГДА &ЛС = ЗНАЧЕНИЕ(Справочник.КУ_ЛицевыеСчета.ПустаяСсылка)
а второе после.

Невнимательность- это причина большинства моих косяков.

Как можно дописать в Выборе ещё одно значение Тогда

Как это можно реализовать?

(12)
Понятно, думала, что можно в 1 выборе как-нибудь сделать.

(13)Выбор в зависимости от условий может выбрать разные значения, но выбранное значение всегда будет одно, также, как если выбор не использовать.

Выбираем Ссылку и в зависимости от условия - Поле1 или Поле2.
Соответственно, если надо в результате получить еще поля - то добавляем в секцию Выбрать то что нужно.

(14)
А так можно сделать??

2 условия при выборе

И как дальше сделать выбор по значению Нужное поле //Тут возникает ошибка, что Нужное поле не найдено.

Или мы заново делаем такой же выбор??

А так можно сделать??

КОГДА КУ_ИсковоеЗаявление.Ссылка.СуммаИска <= &СуммаИска
И &ВсегдаИск = 1
ТОГДА ХХХ

Конец КАК НужноеПоле

Да, может быть несколько условий в секции КОГДА. После КОГДА всегда должно быть то, что возвращается, если условия в КОГДА выполнены, то есть секция ТОГДА ХХХ, где ХХХ - возвращаемое значение.

И как дальше сделать выбор по значению Нужное поле //Тут возникает ошибка, что Нужное поле не найдено.

Выбор Когда Нужное поле = 1 Тогда

В одной и той же выборке нельзя сравнивать значение поля, которое является результатом Выбор. Поэтому, если нужно в этой же выборке получить другое поле с такими же условиями, придется дублировать всю секцию Выбор.
То есть в текущей выборке - делаем еще такой же выбор.

Но если поместить во временную таблицу, то в следующем запросе пакетного запроса уже можно будет его использовать в Выборе.

Войдите как ученик, чтобы получить доступ к материалам школы

Язык запросов 1С 8.3 для начинающих программистов: операторы МЕЖДУ и В

Автор уроков и преподаватель школы: Владимир Милькин

Логический оператор МЕЖДУ

Оператор МЕЖДУ позволяет проверить, входит ли значение выражения, указанного слева от него, в диапазон , указанный справа ( вместе с границами диапазона , то есть включительно).

Таким образом, вместо

можно написать более лаконичное

А результат будет один и тот же:

01

Если же необходимо наоборот выбрать всю еду, калорийность которой не входит в диапазон [200;300], то подойдёт следующая форма отрицания (появилась частица НЕ):

02

Оператор МЕЖДУ можно применять не только к числовым диапазонам. С датами он также хорошо работает:

19

Логический оператор В

Проверка совпадения с одним из перечисленных

Оператор В позволяет проверить, совпадает ли значение выражения, указанного слева от него, с одним из значений , описанных справа .

Таким образом, вместо

можно написать более лаконичное

А результат будет один и тот же:

03

Если же необходимо наоборот выбрать всю еду, цвет которой не совпадает ни с одним значением из списка, то подойдёт следующая форма отрицания (появилась частица НЕ):

Проверка совпадения значения с одним из результата запроса

Пусть нам требуется выбрать из базы только те цвета, которые присутствуют в описании еды. Таким образом, в отобранном списке не должен присутствовать, например, чёрный цвет, так как еды чёрного цвета в нашей базе нет. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.

Один из вариантов как это можно сделать - использовать логический оператор В, справа от которого будет находиться подзапрос, выбирающий названия цветов из всех записей справочника Еда:

В качестве отступления упомяну, что из внутреннего запроса есть возможность обращаться к полям внешнего запроса.

Опять же, для этой формы оператора В, также доступно использование частицы НЕ перед ним.

Проверка принадлежности по иерархии для справочников

Для справочников проверка может осуществляться и на принадлежность по иерархии.

Для начала давайте рассмотрим пример иерархического справочника. Откройте справочник "Города" в нашей базе:

06

07

Обратите внимание, что его элементы отличаются от других справочников (Еда, Цвета, Вкусы) наличием жёлтых папок. Это группы справочника .

Группы отличаются от обычных элементов тем, что могут включать в себя другие группы и элементы. Подобно тому как папки включают в себя другие папки и файлы.

Чтобы просмотреть содержимое группы, сделайте на ней двойной щелчок мышкой:

08

Чтобы выйти на уровень выше, снова сделайте двойной щелчок по группе:

Таким образом иерархический справочник может содержать как обычные элементы (например, Рио-де-Жанейро, Салвадор), так и группы (например, Бразилия, Индия). Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь.

У каждого элемента (будь то группа или обычный элемент) может быть родитель. Например, родителем элемента Рио-де-Жанейро является группа Бразилия:

10

И это верно, потому что Рио-де-Жанейро входит в состав группы Бразилия в иерархии справочника:

11

Теперь давайте напишем такой запрос, который будет запрашивать выбранную группу-страну и все элементы-города, входящие в неё.

Обратите внимание на то, что в тексте запроса перед именем ГруппаСтрана стоит амперсанд (&). Имена с амперсандом автоматически распознаются системой как параметры , значение которых должно быть задано перед выполнением запроса.

После того, как мы вставим этот запрос в консоль и нажмем кнопку "Выполнить" для обновления, у нас появится возможность задать этот параметр:

12

Выберите в качестве его значения группу "Россия" (кнопка Выбрать):

13

Если теперь мы нажмём кнопку "Выполнить", то результат запроса будет следующим:

В результат запроса попала сама группа (Россия) и все элементы, которые входят в её состав (Пермь, Красноярск и Воронеж).

Если вместо России, выбрать "Бразилия", то результат будет таким:

Таким образом результатом оператора В ИЕРАРХИИ будет ИСТИНА, если значение выражения слева является ссылкой на элемент справочника и входит во множество значений справа (Бразилия) или иерархически принадлежит какой-нибудь группе, содержащейся в этом множестве (Сан-Паулу, Рио-де-Жанейро, Салвадор).

В качестве множества значений, на совпадение с которыми выполняется проверка, может фигурировать и результат запроса. В этом случае справа от оператора В необходимо указать описание запроса:


Для оператора В ИЕРАРХИИ также доступно использование частицы НЕ перед ним.

Доброго времени суток, дорогие коллеги! В данной статье я бы хотел рассказать о том, как делать выборки в запросах 1С. Дочитав этот материал, вы научитесь определять рабочие методы для выборок, а также ознакомитесь с первоначальными значениями выборок в 1С. Все описанное далее будет проиллюстрировано примерами для большей наглядности. Приятного чтения!

Выборка в системе 1С – это специальный метод по перебору данных, состоящий из методичной установки выделения на последней записи.

Для получения выборки нужно воспользоваться выводами запросов, либо менеджером объектов, где объектом может быть справочник или документ.

2. Примеры создания выборок

Итак, как создавать выборку данных? Делается это при помощи объектного менеджера, который продемонстрирован на скриншоте ниже:



Рис. 1 Как создать выборку данных при помощи объектного менеджера?

Далее рассмотрим аналогичный пример, но с созданием выборки данных, как показано на программном коде далее:



Рис. 2 Создание выборки данных с помощью кода

В обоих примерах создания выборки были использованы одни и те же данные по перебору, и оба способа являются рабочими. Разработчик в праве использовать любой, из более удобного для него, на дальнейшую работу это влиять не будет.

3. Методы для выборок данных

Рассмотрим перечень того, какие существуют методы для выборок данных, которые являются актуальными для выборок в 1С 8.3:

· «Выбрать()» – данный метод помогает получить саму выборку, из одной выборки можно делать ещё выборки, подчинённые первой, если указать параметр «при помощи группировок»;

· «Владелец()» – этот метод для выборок данных является противоположным для метода «Выбрать()», при помощи него можно одержать первоначальную выборку в конкретном запросе;

· «Следующий()» – метод, который предназначен для перевода выделения на последующую строку с записью. В случае, когда запись есть, метод будет возвращать значение «Истина», в противном случае – значение «Ложь»;

· «НайтиСледующий()» – данный метод отбора выборок осуществляет перебор лишь по необходимым полям, согласно значению, по которому будет осуществлён отбор, который из себя представляет структуру полей;

· «СледующийПоЗначениюПоля()» – при помощи этого метода можно получать последующую запись, у которой значение разнится с предыдущей. (например, сделать перебор всех возможных записей, которые имеют единственное значение в поле «Контрагент», в скобках будет находится «Контрагент»);

· «Сбросить()» – этот метод служит для сброса текущего расположения выделения и установления выделения на первоначальную позицию;

· «Количество()» – помогает вернуть первоначальное число записей из выборки;

· «Получить()» – данный метод отбора выборок выбирает запись, согласно индексу, который ей присвоен;

· «Уровень()» – метод, который отображает иерархический уровень выбранной записи, – возвращает некоторое число;

· «ТипЗаписи()» – метод для вывода одного, из четырёх возможных, типов для записи: детальная, итоговая по группировкам, итоговая иерархически, общая итоговая;

· «Группировка()» – данный метод служит для возврата наименования последней группировки, для случая, когда запись не служит группировкой – будет возвращена пустая строка.

В данной статье было рассмотрено понятие выборки для запросов в 1С, был приведён пример по программному осуществлению данной процедуры, а также определены возможные методы по регулированию выборок для 1С 8.3.

Читайте также: