Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 читайте на сайте

Использование Внешней Функций в Запросах 1C • Оператор join

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

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Все поля должны делиться на те, по которым производится группировка, на агрегатные функции рассчитываемые поля и на поля вложенных таблиц. Разбор тестирования 1С: Профессионал и PMP: Конструктор запросов Обращайтесь в форму связи

1С запрос выбор когда несколько условий

Эти операторы возможно использовать во всех 4 ситуациях, но контекст (окружаемые переменные у них отличаются).

В первых двух случаях условия накладываются на поля выборки, например:

ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК СпрКонтрагенты ГДЕ СпрКонтрагенты.ИНН»»

Обращение идет через имя таблицы (в простых запросах может опускаться, но в сложных может вызывать неоднозначность поля).

Данное условие вызывает ограничение выборки (обычно уменьшает ее)

В конструкторе запроса находятся на вкладке условия:

В произвольном варианте пишется текстом, в обычном выбирается поле, оператор сравнения и значение:

Как пользоваться конструктором запросов в 1С 8.3

ВЫБОР КОГДА

Этот условный оператор используется для преобразования значения, ограничивает же выборку только когда расположен после служебного слова ГДЕ.
Допустимо несколько подчиненных условий. Может находится в полях выборки, полях условий ГДЕ, группировок, итогов (универсальный оператор для сложных условий)

ВЫБРАТЬ
ВЫБОР
КОГДА 1 = 2
ТОГДА «Никогда не будет истиной»
КОГДА 1 = 1
ТОГДА «Всегда будет истиной»
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ КАК ПолеПредставленияЗначения

Вариант использования в условии ГДЕ, результат выборки должен возвращать булево значение либо сравниваться с чем-то еще

ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = «» ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ

ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = «» ТОГДА «» ИНАЧЕ «Заполнено» КОНЕЦ = «Заполнено»

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

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
В этой конструкции также возможно использование группировочных операторов И,ИЛИ, но сравнивать можно с константами запроса, с функцией или значением, входящим в группировку другие реквизиты справочника в данном примере не будут доступны для сравнения — тогда следует использовать ГДЕ. Объединение, пересечение, вычитание запросов SQL Обращайтесь в форму связи

Использование некоторых функций в запросах. Сложные запросы

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

format — определяет формат возвращаемого значения. Необязательный аргумент;

firstdayofweek — константа, которая определяет первый день недели. Необязательный аргумент;

firstweekof year — константа, которая определяет первую неделю года. Необязательный аргумент.

Возможные значения аргумента format (символ «» является обязательным):

  • ? «шш» — возвращает номер месяца в текстовом формате;
  • ? «шшшт» — возвращает наименование месяца в текстовом формате;
  • ? «d» — возвращает номер дня месяца в текстовом формате;
  • ? «ddd» — возвращает краткое наименование дня недели в текстовом формате;
  • ? «dddd» — возвращает полное наименование дня недели в текстовом формате;
  • ? «у» — возвращает номер дня года в текстовом формате.

Возвращает значение Истина, если аргументу соответствует пустое значение, в противном случае возвращает значение Ложь.

Промокоды на Займер на скидки

Займы для физических лиц под низкий процент

  • 💲Сумма: от 2 000 до 30 000 рублей
  • 🕑Срок: от 7 до 30 дней
  • 👍Первый заём для новых клиентов — 0%, повторный — скидка 500 руб

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

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

truepart — возвращаемое значение (выражение для расчета значения, константа, идентификатор поля), если логическое выражение истинно;

f alsepart -— возвращаемое значение (выражение для расчета значения, константа, идентификатор поля), если логическое выражение ложно.

Возвращает существующее значение для записей с непустым значением выражения и заданное значение для записей с пустым значением выражения.

где expr — выражение. В качестве аргумента могут использоваться выражения, идентификаторы;

valueif null — устанавливаемое значение для записей с пустым значением поля.

Пример: Nz ( [Спецификация поставки]![КолСдано]; 0) — если для записи значение поля Количество сдано пусто, то присвоить 0.

Важно! Функцию NZ при создании запроса в режиме SQL использовать нельзя

Задание 3.13. Менеджерам по продажам и закупкам, а также руководителю постоянно необходима информация о помесячных поставках каждого наименования товара. Создать необходимый запрос.

Создадим новый запрос. Исходные таблицы — Поставка, Товар, СпецПоставки. Выбираем поле Наименование (товара).

В бланке запроса для нового поля установим флажок Вывод на экран. Зададим имя нового поля — Месяц.

Установим группировку записей по полям: Товар, Месяц.

В режиме Конструктора запроса добавим в бланк запроса поле Количество. Для поля Количество в строке Групповые Операции необходимо определить функцию SUM и присвоить полю имя Поставлено. Проверим результат выполнения запроса и сохраним запрос.

1С запрос выбор когда несколько условий –

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

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Менеджерам по продажам и закупкам, а также руководителю постоянно необходима информация о помесячных поставках каждого наименования товара. Использование некоторых функций в запросах. Сложные запросы — Основы бизнес-информатики Обращайтесь в форму связи

Левое (Правое) соединение

Контрагенты
КонтрагентПолное наименование
ИвановИванов И.И.
ПетровПетров П.П.
СидоровСидоров С.С.
СемёновСемёнов С.С.
Продажи
КонтрагентСумма
Иванов5000
Петров7500
Сидоров15000
Продажи контрагентам
КонтрагентПолное наименованиеСумма
ИвановИванов И.И.5000
ПетровПетров П.П.7500
СидоровСидоров С.С.15000
СемёновСемёнов С.С.Null
Контрагенты
КонтрагентПолное наименование
ИвановИванов И.И.
ПетровПетров П.П.
СидоровСидоров С.С.
Продажи
КонтрагентСумма
Иванов5000
Петров7500
Сидоров15000
1с8 Соединения запросов |
ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = «» ТОГДА «» ИНАЧЕ «Заполнено» КОНЕЦ = «Заполнено»

Создание и работа с запросами (для начинающих): Статьи и материалы.

Полное соединение

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

Закупки
КонтрагентСумма
Иванов4000
Андреев3500
Продажи
КонтрагентСумма
Иванов5000
Петров7500
Сидоров15000

Таблица после полного соединения, со всеми полями исходных таблиц:

Действующие контрагенты
КонтрагентЗакупкиСуммаЗакупкиКонтрагентПродажиСуммаПродажи
Иванов4000Иванов5000
NullNullПетров7500
NullNullСидоров15000
Андреев3500NullNull

Окончательный вид таблицы, в которой контрагенты сведены в одно поле:

Действующие контрагенты
КонтрагентСуммаЗакупкиСуммаПродажи
Иванов40005000
Петров7500
Сидоров15000
Андреев3500

Ниже приводится вариант соответствующего запроса. Обратите внимание, что данные по контрагентам мы получаем не просто из документов, а из подзапросов. В них мы выполняем группировку по контрагентам таким образом, что бы каждый контрагент был представлен в выборке но одному разу. И, естественно, не забываем про Null:

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

1С:Эксперт по технологическим вопросам
Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Просканировать таблицу поставщиков P, каждый раз сравнивая значение статуса поставщика с результатом подзапроса, и отобрать только те строки, в которых статус меньше максимального. Переменная не определена Обращайтесь в форму связи

Процедура не может возвращать значение

Такой текст ошибки платформа 1С выдает на этапе синтаксического контроля, при сохранении конфигурации, внешнего отчета или обработки.
Причин у этой ошибки может быть несколько.

  • Опечатка в имени переменной
  • Обращение к переменной, которая нигде в области видимости не объявлена (неявной инициализацией с присвоением значения, явным образом с использованием ключевого слова “Перем”, или передана в качестве параметра)
  • Написание на клиенте серверного кода. Например, обращение к менеджеру справочников “Справочники”, и т.п. Клиентская часть приложения “не видит ” серверные объекты языка
  • Также ошибка может появиться, если ранее код использовался в режиме толстого клиента, но после был запущен в тонком клиенте.

Внимательно следить за правильностью набранного кода, своевременно объявлять переменные или передавать их в качестве параметров. Писать серверный код только в серверных модулях, а также использовать соответствующие инструкции препроцессора, например “&НаСервере”.

Оператор EXCEPT – Вычитание

  • Использование при обходе коллекции количества элементов вместо индекса. Индексы начинаются с нуля, а количество элементов – с единицы. Поэтому следующий код гарантированно приведет к ошибке: Массив[Массив.Количество()]
  • Последствия удаления элементов из коллекции, очистки коллекции или замены коллекции на пустую
  • Ошибочное увеличение счетчика в цикле “Для”

Обращение к процедуре как к функции

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

А вот неправильное использование процедуры синтаксическая проверка (Ctrl + F7) успешно обнаруживает, и не даст сохранить конфигурацию или внешнюю обработку/отчет, пока ошибка не будет устранена.

1. Воспроизведем ошибку “ Обращение к процедуре как к функции” . При этом платформа не даст сохранить изменения, т.к. не проходит синтакс-контроль.

2. Воспроизведем ошибку “ Обращение к процедуре объекта как к функции” . Здесь мы неверно используем метод объекта массива “Добавить”, который является процедурой.

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts