1с 8 функции языка запросов типзначения

Содержание

ТИПЗНАЧЕНИЯ, ССЫЛКА, ТИП в запросах 1С 8.3 на примерах

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

Несколько примеров

Предположим, что в нашей конфигурации существует документ «ПродажаТоваров».

Состав реквизитов следующий:

То есть покупки у нас может совершать, как сотрудник, так и сторонний покупатель.

Пример №1 — Получаем тип поля в результате запроса

Сделаем запрос к документу «ПродажаТоваров», в котором выберем все документы продажи где можно будет увидеть наименование покупателя, а с помощью функции ТИПЗНАЧЕНИЯ() в отдельной колонке определим тип покупателя.

ВЫБРАТЬ
ПродажаТоваров.Ссылка КАК ДокументПродажи,
ПродажаТоваров.Покупатель КАК Покупатель,
ТИПЗНАЧЕНИЯ(ПродажаТоваров.Покупатель) КАК ТипПокупателя
ИЗ
Документ.ПродажаТоваров КАК ПродажаТоваров

Результат запроса может выглядеть так:

Пример №2 — Отбор с помощью функций ССЫЛКА и ТИП(…)

Функцию ТИПЗНАЧЕНИЯ() удобно применять совместно с функцией ТИП( ), для проверки на соответствие определённому типу значения. Немного модифицируя запрос из примера №1, выведем записи только с теми документами, в которых тип покупателя сотрудник. Для наглядности оставим поле «ТипПокупателя».

ВЫБРАТЬ
ПродажаТоваров.Ссылка КАК ДокументПродажи,
ПродажаТоваров.Покупатель КАК Покупатель,
ТИПЗНАЧЕНИЯ(ПродажаТоваров.Покупатель) КАК ТипПокупателя
ИЗ
Документ.ПродажаТоваров КАК ПродажаТоваров
ГДЕ
ТИПЗНАЧЕНИЯ(Покупатель) = ТИП(Справочник.Сотрудники)

Стоит отметить, что аналогом такой связки ( ТИПЗНАЧЕНИЯ() + ТИП() ), исключительно для ссылочных типов данных, может служить оператор ССЫЛКА.

Тогда текст запроса мог бы выглядеть так:

ВЫБРАТЬ
ПродажаТоваров.Ссылка КАК ДокументПродажи,
ПродажаТоваров.Покупатель КАК Покупатель,
ТИПЗНАЧЕНИЯ(ПродажаТоваров.Покупатель) КАК ТипПокупателя
ИЗ
Документ.ПродажаТоваров КАК ПродажаТоваров
ГДЕ
Покупатель ССЫЛКА Справочник.Сотрудники

Пример №3 — Использование в конструкции ВЫБОР … КОГДА … КОНЕЦ

Также функция ТИПЗНАЧЕНИЯ() часто находит своё применение в конструкциях условного оператора «ВЫБОР».

Синтаксис оператора «ВЫБОР»:

Допустим, в нашей информационной базе предусмотрена система скидок в зависимости от типа покупателя. Если покупатель сотрудник делаем скидку 10%.

Используя связку, функция ТИПЗНАЧЕНИЯ() и условный оператор «ВЫБОР», можем рассчитать в запросе сумму со скидкой в отдельном поле.

Текст запроса может выглядеть так:

ВЫБРАТЬ
ПродажаТоваров.Ссылка КАК Ссылка,
ПродажаТоваров.Покупатель КАК Покупатель,
ПродажаТоваров.СуммаДокумента КАК СуммаДокумента,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ПродажаТоваров.Покупатель) = ТИП(Справочник.Сотрудники)
ТОГДА ПродажаТоваров.СуммаДокумента — ПродажаТоваров.СуммаДокумента * 0.1
ИНАЧЕ ПродажаТоваров.СуммаДокумента
КОНЕЦ КАК СуммаСоСкидкой
ИЗ
Документ.ПродажаТоваров КАК ПродажаТоваров

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Работа с типами в запросах

Значения типа Тип в запросах 1С могут использоваться при наложении условий, в сравнениях, упорядочивании и группировках. Для работы с типами предусмотрено несколько механизмов, которые покрывают все потребности разработчика. Рассмотрим их.

Функция ТИПЗНАЧЕНИЯ

Функция ТИПЗНАЧЕНИЯ имеет единственный параметр, куда передается значение, для которого требуется определить тип. Функция возвращает значения типа Тип. Чаще всего функция используется совместно с литералом ТИП в условиях запроса.

Рассмотрим примеры использования. Вывод в результат запроса типа Регистратора:

ТИПЗНАЧЕНИЯ( Закупки.Регистратор ) КАК ТипРегистратора

РегистрНакопления.Закупки КАК Закупки

Использование функции ТИПЗНАЧЕНИЯ в операции сравнения:

Закупки.Регистратор КАК Регистратор

РегистрНакопления.Закупки КАК Закупки

ТИПЗНАЧЕНИЯ( Закупки.Регистратор ) = ТИП( Документ.ПриобретениеТоваровУслуг )

Литерал ТИП

В литерал ТИП передается имя примитивного типа или таблицы ссылочного типа. Результатом конструкции будет значение типа Тип.

Примеры имен типов:

ТИП(Строка)
ТИП(Число)
ТИП( Перечисление.СтавкиНДС )
ТИП( Справочник.Номенклатура )
ТИП( Документ.ПриобретениеТоваровУслуг )
ТИП( ПланСчетов.Хозрасчетный )
ТИП( ПланОбмена.Полный )

Использование в запросе:

КОГДА ТИПЗНАЧЕНИЯ( Закупки.Регистратор ) = ТИП( Документ.ПриобретениеТоваровУслуг )

ТОГДА «Приобретение товаров»

КОНЕЦ КАК ТипИсточника

РегистрНакопления.Закупки КАК Закупки

Оператор ССЫЛКА

Оператор позволяет проверить, является ли значение выражения, указанного справа от него, ссылкой на таблицу, указанную слева. Результат оператора — значение типа Булево.

Закупки.Регистратор КАК Регистратор

РегистрНакопления.Закупки КАК Закупки

Закупки.Регистратор ССЫЛКА Документ.ПриобретениеТоваровУслуг

Для ссылочных таблиц оператор ССЫЛКА является эквивалентом сравнения

Остались вопросы?
Спросите в комментариях к статье.

3 комментария

Скажите, пжст, для оптимальной производительности что лучше использовать:

ТипЗначения() ИЛИ «Регистартор Ссылка Документ…»?

Если ТИП(Реквизит) вернул «Описание типов», как узнать языком запросов какой там тип допустим?

Читайте также:  Денег нет на армянском языке русскими буквами

ТИП(Реквизит) возвращает не описание типов, а тип «Тип» (как в запросах, так и в коде). При написании запроса программист знает к какой таблице он обращается и какие типы допустимы в реквизитах выборки; для реквизитов с составным типом данных можно использовать условия Реквизит ССЫЛКА ИмяТипа или ТИПЗНАЧЕНИЯ(Реквизит) = ТИП(ИмяТипа). Примеры запросов можно посмотреть в статье.

Источник

Описание языка запросов 1С 8

Язык запросов 1С — одно из основных отличий между версиями 7.7 и 8. Одним из важнейших пунктов в изучении 1С-программирования является язык запросов. В 1С 8.3 запросы — самый мощный и эффективный инструмент получения данных. Язык запросов позволяет в удобном виде получать информацию из базы данных.

Сам синтаксис очень сильно напоминает классический T-SQL, за исключением того, что в 1С с помощью языка запросов можно только получать данные, используя конструкцию Выбрать(select). Язык поддерживает и более сложные конструкции, например, вложенные запросы (запрос в запросе). Запросы в 1С 8 можно составлять как на кириллице, так и на латинице.

В статье я постараюсь рассказать про основные ключевые слова в языке запросов 1С:

А так же небольшие хитрости языка 1С, применяя которые вы сможете оптимально построить текст запроса.

Для отладки запросов в системе 1С предусмотрен специальный инструмент — консоль запросов. Увидеть описание и скачать его можно по ссылке — консоль запросов 1C.

Основные конструкции языка запросов

Рассмотрим самые важные и интересные операторы языка запросов 1С.

ВЫБРАТЬ (SELECT)

В языке запросов 1С предприятия 8 любой запрос начинается с ключевого слова ВЫБРАТЬ. В языке 1С нет конструкций UPDATE, DELETE, CREATE TABLE, INSERT, эти манипуляции производятся в объектной технике. Предназначение его — только чтение данных.

ВЫБРАТЬ
ТекущийСправочник.Наименование
ИЗ
Справочник.Номенклатура КАК ТекущийСправочник

Запрос вернёт таблицу с наименованиями номенклатуры.

Рядом с конструкцией ВЫБРАТЬ можно встретить ключевые слова ДЛЯ ИЗМЕНЕНИЯ, РАЗРЕШЕННЫЕ, РАЗЛИЧНЫЕ, ПЕРВЫЕ

ДЛЯ ИЗМЕНЕНИЯ — блокирует записи таблицы на время транзакции (не актуально для управляемых блокировок). Подробнее в статье ДЛЯ ИЗМЕНЕНИЯ в запросах 1С.

РАЗРЕШЕННЫЕ — выбирает только записи из таблицы, на которые есть права у текущего пользователя.

РАЗЛИЧНЫЕ — означает, что в результат не попадет дублирующих строк.

ПЕРВЫЕ n — в языке 1С 8.3 запрос отберет только n первых записей.

ВЫБОР (CASE)

Очень часто данная конструкция недооценивается программистами. Пример её использования:

КОГДА ТекущийСправочник.Услуга ТОГДА

КОНЕЦ КАК ВидНоменклатуры

Справочник.Номенклатура КАК ТекущийСправочник

Пример возвратит в поле «ВидНоменклатуры» текстовое значение — «Товар» или «Услуга».

ГДЕ (WHERE)

Конструкция языка запросов 1C, позволяющая наложить отбор на получаемые данные. Учтите, что от сервера система получает все данные, а только потом они отбираются по данному параметру.

ВЫБРАТЬ
Справочник.Наименование
ИЗ
ТекущийСправочник.Номенклатура КАК ТекущийСправочник
ГДЕ ТекущийСправочник.Услуга = ИСТИНА

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

По сути, мы отбираем строки, у которых выражение после ключевого слова равно «Истина».

В выражениях можно использовать прямые условия:

С помощью оператора «ЗНАЧЕНИЕ()» в условиях использовать обращение к предопределенным элементам и перечислениям в запросе 1С:

ГДЕ ТипНоменклатуры= Значение(Перечисление.ТипыНоменклатуры.Товар)

Значения времени могут указываться следующим образом:

ГДЕ ДатаПоступления > ДАТАВРЕМЯ(2012,01,01):

Чаще всего условия указываются в виде параметров, передаваемых в запрос:

ГДЕ НоменклатурнаяГруппа= &НоменклатурнаяГруппа

Условие можно наложить на тип реквизита, если он составного типа:

ГДЕ РегистрНакопления.Регистратор ССЫЛКА Документ.ПоступленияТоваров

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

ГДЕ РегистрНакопления.Регистратор В (&СписокДокументовДляОтбора)

Условие может быть и сложное, состоящее из нескольких условий:

ГДЕ ДатаПоступления > ДАТАВРЕМЯ(2012,01,01) И НоменклатурнаяГруппа= &НоменклатурнаяГруппа И НЕ Услуга

СГРУППИРОВАТЬ ПО (GROUP BY)

Конструкция языка запросов 1С, используемая для группировки результата.

ВЫБРАТЬ
ПоступлениеТоваровУслугTовары.Товар,
СУММА(ПоступлениеТоваровУслугTовары.Количество) КАК Количество,
СУММА(ПоступлениеТоваровУслугTовары.Сумма) КАК Сумма
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугTовары

СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугTовары.Товар

Данный запрос просуммирует все поступления по сумме и количеству в разрезе номенклатуры.

Помимо ключевого слова СУММА можно использовать другие агрегатные функции: КОЛИЧЕСТВО, КОЛИЧЕСТВО РАЗНЫХ, МАКСИМУМ, МИНИМУМ, СРЕДНЕЕ.

ИМЕЮЩИЕ (HAVING)

Конструкция, о которой часто забывают, но она очень важна и полезна. Она позволяет указать отбор в виде агрегатной функции, этого нельзя сделать в конструкции ГДЕ.

Пример использования ИМЕЮЩИЕ в запросе 1С:

ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.Товар,
СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество,
СУММА(ПоступлениеТоваровУслугТовары.Сумма) КАК Сумма
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары

СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.товар

Так мы отберем количество товаров, которых поступило более 5 штук.

ЗНАЧЕНИЕ()

В запросе 1C ЗНАЧЕНИЕ () можно использовать для указания предопределенных значений, таких как значения перечисления, пустую ссылку или значение предопределенного элемента (справочника, плана счетов, ПВХ и т.д).

ГДЕ Банк = Значение(Справочник.Банки.ПустаяСсылка)

ГДЕ ВидНоменклатуры = Значение(Справочник.ВидыНоменклатуры.Товар)

ГДЕ ТипНоменклатуры= Значение(Перечисление.ТипыНоменклатуры.Услуга)

ТИП в запросе

Тип данных можно проверить следующим образом: с помощью функций ТИП() и ТИПЗНАЧЕНИЯ() или с помощью логического оператора ССЫЛКА.

ГДЕ ТИПЗНАЧЕНИЯ(Проект.Ссылка) <> ТИП(Справочник.Проект)

ГДЕ Проект.Ссылка ССЫЛКА Справочник.Проект

ВЫРАЗИТЬ()

Оператор Выразить в запросах 1С служит для преобразования типов данных.

Синтаксис: ВЫРАЗИТЬ( КАК )

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

Читайте также:  Как выразить соболезнования на ингушском языке

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

ВЫБРАТЬ
КонтактнаяИнформация.Объект,
ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(150)) КАК Представление
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация

СГРУППИРОВАТЬ ПО
ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(150)),
КонтактнаяИнформация.Объект

ЕСТЬNULL (ISNULL)

Достаточно полезная функция языка запросов 1С, которая проверяет значение в записи, и если оно равно NULL, то позволяет заменить на своё значение. Чаще всего используется при получении виртуальных таблиц остатков и оборотов, чтобы скрыть NULL и поставить понятный 0 (ноль).

Такая функция языка запросов 1С ЕСТЬNULL при отсутствии значения вернет ноль, что позволит избежать ошибки.

СОЕДИНЕНИЕ (JOIN)

Соединения бывают 4 типов: ЛЕВОЕ, ПРАВОЕ, ПОЛНОЕ, ВНУТРЕННЕЕ.

ЛЕВОЕ и ПРАВОЕ СОЕДИНЕНИЕ

Соединения используются для связи двух таблиц по определенному условию. Особенность при ЛЕВОМ СОЕДИНЕНИИ в том, что мы берём первую указанную таблицу полностью и привязываем по условию вторую таблицу. Поля второй таблицы, которые не удалось привязать по условию, заполняются значением NULL.

Пример левого соединения в запросе 1С:

ВЫБРАТЬ
Клиенты.Ссылка КАК Контрагент,
Банки.Ссылка КАК Банк
ИЗ
Справочник.Контрагенты КАК Клиенты
ЛЕВОЕ СОЕДИНЕНИЕ
Справочник.Банки КАК Банки
ПО
Клиенты.Наименование = Банки.Наименование

Вернет всю таблицу Контрагентов и заполнит поле «Банк» лишь в тех местах, где будет соблюдаться условие «Контрагенты.Наименование = Банки.Наименование». Если условие не соблюдается, в поле Банк будет установлено NULL.

ПРАВОЕ СОЕДИНЕНИЕ в языке 1С 8.3 абсолютно аналогично ЛЕВОМУ соединению, за исключением одного отличия: в ПРАВОМ СОЕДИНЕНИИ «главная» таблица — вторая, а не первая.

ПОЛНОЕ СОЕДИНЕНИЕ

ПОЛНОЕ СОЕДИНЕНИЕ отличается от левого и правого тем, что выводит все записи из двух таблиц, соединяет лишь те, которые может соединить по условию.

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

ПОЛНОЕ СОЕДИНЕНИЕ
Справочник.Банки КАК Банки

ПО
Клиенты.Наименование = Банки.Наименование

Язык запросов вернет обе таблицы полностью лишь по выполненному условию Соединить записи. В отличие от левого/правого соединения возможно появления NULL в двух полях.

ВНУТРЕННЕЕ СОЕДИНЕНИЕ

ВНУТРЕННЕЕ СОЕДИНЕНИЕ отличается от полного тем, что выводит только те записи, которые смогли соединить по заданному условию.

ВЫБРАТЬ
Клиенты.Ссылка КАК Клиенты,
Банки.Ссылка КАК Банк

ИЗ
Справочник.Контрагенты КАК Клиенты

ВНУТРЕННЕЕ СОЕДИНЕНИЕ
Справочник.Банки КАК Банки

ПО
Клиенты.Наименование = Банки.Наименование

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

Заключение

Это лишь небольшая часть синтаксиса из языка запросов 1С 8, в дальнейшем я попробую рассмотреть более подробно некоторые моменты, показать способы оптимизации запросов и многое другое!

Рубрикатор статей сайта по запросам

Видеокурс по 1С

Если вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые виде):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Механизм запросов

Механизм запросов — это один из способов доступа к данным, которые поддерживает платформа. Используя этот механизм, разработчик может читать и обрабатывать данные, хранящиеся в информационной базе; изменение данных с помощью запросов невозможно. Это объясняется тем, что запросы специально предназначены для быстрого получения и обработки некоторой выборки из больших массивов данных, которые могут храниться в базе данных.

Табличный способ доступа к данным

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

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

Язык запросов

Для того чтобы разработчик имел возможность использовать запросы для реализации собственных алгоритмов, в платформе реализован язык запросов. Этот язык основан на SQL, но при этом содержит значительное количество расширений, ориентированных на отражение специфики финансово-экономических задач и на максимальное сокращение усилий по разработке прикладных решений. Можно перечислить наиболее существенные возможности, реализуемые языком запросов:

Обращение к полям через точку (».»)

Если поля какой-либо таблицы имеют ссылочный тип (хранят ссылки на объекты другой таблицы), разработчик может в тексте запроса ссылаться на них через «.», при этом количество уровней вложенности таких ссылок система не ограничивает.

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

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

Читайте также:  Испанский язык единственное и множественное число

Но также мы можем считать заголовочную запись документа, в которой значением поля Товары будут все записи вложенной таблицы, подчиненные этому объекту (документу):

Автоматическое упорядочивание

Для выбора наиболее правильного («естественного») порядка вывода информации на экран или в отчет разработчику в большинстве случаев достаточно задать режим автоматического упорядочивания.

Многомерное и многоуровневое формирование итогов

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

Поддержка виртуальных таблиц

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

Стандартные SQL операции

В языке запросов поддерживаются стандартные для SQL операции, такие, как объединение (Union), соединение (Join) и т. д.


Временные таблицы

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

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

Запрос, использующий временную таблицу, будет иметь вид:

Пакетные запросы

Для более удобной работы с временными таблицами в языке запросов поддерживается работа с пакетными запросами — таким образом, создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных символом «;». Запросы исполняются один за другим. Результатом выполнения пакетного запроса в зависимости от используемого метода будет являться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.

Конструкторы запроса

Консоль запросов

Инструмент «Консоль запросов» позволяет разработчикам конфигураций и специалистам по внедрению отлаживать запросы и просматривать результаты их выполнения в режиме «1С:Предприятие 8». Подробнее…

Источник

Функции языка запросов 1С 8.3

Функции ПРЕДСТАВЛЕНИЕ и ПРЕДСТАВЛЕНИЕССЫЛКИ

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

Также можно использовать функцию ПРЕДСТАВЛЕНИЕ. Данная функция тоже получает основное представление ссылки. Если в нее передать не ссылку, а примитивный тип, то независимо от типа в результате будет получена строка.

Отличие виртуальное поля Представление от функции ПРЕДСТАВЛЕНИЕ в том, что функция ПРЕДСТАВЛЕНИЕ всегда вернет строку, даже если ей передать NULL, а в поле Представление может быть NULL, например, если ссылка была составного типа и текущий тип является примитивным.

Также есть функция ПРЕДСТАВЛЕНИЕССЫЛКИ. Она отличается от функции ПРЕДСТАВЛЕНИЕ только тем, что для ссылочного типа вернет строку, а для примитивного типа — значение того же типа. То есть для значения типа число тип результат будет число, для даты — дата, а для ссылки всегда строка.

Функция ЗНАЧЕНИЕ

Функция ЗНАЧЕНИЕ позволяет обращаться в тексте запроса к предопределенным данным, к перечислениям, к пустым ссылкам, к некоторым системным перечислениям:

Функцию ЗНАЧЕНИЕ можно использовать как в полях выборки, так и в предложении ГДЕ.

Функции работы с датами

В запросе можно от даты получить ее часть: секунду, минуту, час, день, неделю, месяц, квартал, год. А также день года и день недели:

В качестве параметра была передана дата 11.04.2021 11:20:50.

С помощью функций НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА можно получить начало и конец минуты, часа, дня, недели, декады, месяца, квартала, полугодия, года:

Параметром также была передана дата 11.04.2021 11:20:50.

С помощью функции ДОБАВИТЬКДАТЕ можно добавлять к дате и вычитать из даты различные ее части: секунду, минуту, час, день, неделю, декаду, месяц, квартал, полугодие и год:

Параметром все также передавалась дата 11.04.2021.

Также можно использовать функцию РАЗНОСТЬДАТ для того чтобы получить разность между двумя датами. Разность может быть получена в секундах, минутах, часах, днях, месяцах, кварталах и годах. Вторым параметром передается дата из которой вычитаем, первым — которую вычитаем:

Дата1 = 11.04.2021, Дата2 = 01.05.2021.

Если второй параметр будет меньше первого, то результат будет отрицательным:

Дата1 = 11.04.2021, Дата2 = 01.05.2020.

Функция ПОДСТРОКА

Функция ПОДСТРОКА позволяет вырезать из строки какую-то часть. Первым параметром указывается сама строка. Вторым символ, начиная с которого нужно взять строку. Третьим количество символов. Например, если параметром передать строку «Подстрока в запросе» в следующий запрос:

То получим такой результат:

Если длина строки больше 1024 символов (например, реквизит неограниченной длины), то на нее нельзя накладывать условия в предложении ГДЕ (можно только через ПОДОБНО) и нельзя группировать по такому полю. Если попытаться это сделать, то будет ошибка «Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.» или «Недопустимое поле для группировки ИмяПоля».

Чтобы обойти это ограничение можно использовать функцию ПОДСТРОКА, например:

Источник

Интересные факты из жизни