Язык выражений 1с скд

Содержание

Язык выражений системы компоновки данных (1Cv8)

Содержание

Язык выражений системы компоновки данных

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

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

Литералы

В выражении могут присутствовать литералы. Возможны литералы следующих типов:

Строка

Строковый литерал записывается в символах «”», например:

При необходимости использования внутри строкового литерала символа «”», следует использовать два таких символов.

Число

Число записывается без пробелов, в десятичном формате. Дробная часть отделяется при помощи символа «.». Например:

Литерал типа дата записывается при помощи ключевого литерала ДАТАВРЕМЯ (DATETIME). После данного ключевого слова, в скобках, через запятую перечисляются год, месяц, день, часы, минуты, секунды. Указание времени не обязательно.

Булево

Булевы значения могут быть записаны при помощи литералов Истина (True), Ложь (False).

Значение

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

Операции над числами

Унарный –

Данная операция предназначена для изменения знака числа на обратный. Например:

Унарный +

Данная операция не выполняет над числом никаких действий. Например:

Данная операция предназначена для вычисления разности двух чисел. Например:

Бинарный +

Данная операция предназначена для вычисления суммы двух чисел. Например:

Произведение

Данная операция предназначена для вычисления произведения двух чисел. Например:

Деление

Данная операция предназначена для получения результата деления одного операнда на другой. Например:

Остаток от деления

Данная операция предназначена для получения остатка от деления одного операнда на другой. Например:

Операции над строками

Конкатенация (Бинарный +)

Данная операция предназначена для конкатенации двух строк. Например:

Подобно

Данная операция проверяет соответствие строки переданному шаблону.

Значением оператора ПОДОБНО является ИСТИНА, если значение удовлетворяет шаблону, и ЛОЖЬ в противном случае.

Следующие символы в имеют смысл, отличный от просто очередного символа строки:

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

Операции сравнения

Равно

Данная операция предназначена для сравнения двух операндов на равенство. Например:

Не равно

Данная операция предназначена для сравнения двух операндов на неравенство. Например:

Меньше

Данная операция предназначена для проверки того, что первый операнд меньше второго. Например:

Больше

Данная операция предназначена для проверки того, что первый операнд больше второго. Например:

Меньше или равно

Данная операция предназначена для проверки того, что первый операнд меньше либо равен второму. Например:

Больше или равно

Данная операция предназначена для проверки того, что первый операнд больше либо равен второму. Например:

Операция В

Операция проверки наличия значения в наборе данных

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

Операция проверки значения на NULL

Данная операция возвращает значение Истина в случае, если значение является значением NULL. Например:

Операция проверки значения на неравенство NULL

Данная операция возвращает значение Истина в случае, если значение не является значением NULL. Например:

Логические операции

Логические операции принимают в качестве операндов выражения, имеющие тип Булево.

Операция НЕ

Операция НЕ возвращает значение Истина в случае, если ее операнд имеет значение Ложь, и значение Ложь в случае, если ее операнд имеет значение Истина. Например:

Операция И

Операция И возвращает значение Истина в случае, если оба операнда имеют значение Истина, и значение Ложь в случае, если один из операндов имеет значение Ложь. Например:

Операция ИЛИ

Операция ИЛИ возвращает значение Истина в случае, если один из операндов имеет значение Истина, и Ложь в случае, если оба операнда имеют значение Ложь. Например:

Агрегатные функции

Агрегатные функции осуществляют некоторое действие над набором данных.

Сумма

Агрегатная функция Сумма рассчитывает сумму значений выражений, переданных ей в качестве аргумента для всех детальных записей. Например:

Количество

Функция Количество рассчитывает количество значений отличных от значения NULL. Например:

Количество различных

Эта функция рассчитывает количество различных значений. Например:

Максимум

Функция получает максимальное значение. Например:

Минимум

Функция получает минимальное значение. Например:

Среднее

Функция получает среднее значение для значений, отличных от NULL. Например:

Другие операции

Операция ВЫБОР

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

Правила сравнения двух значений

Если типы сравниваемых значений отличаются друг от друга, то отношения между значениями определяются на основании приоритета типов:

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

Если типы данных совпадают, то производится сравнение значений по следующим правилам:

Работа со значением NULL

Любая операция, в которой значение одного из операндов NULL, будет давать результат NULL.

Приоритеты операций

Операции имеют следующие приоритеты (первая строка имеет низший приоритет):

Функции языка выражений системы компоновки данных

Вычислить

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

В данном примере в результате получится отношение суммы по полю «Продажи.СуммаОборот» записи группировки к сумме того же поля во всей компоновке.

Уровень

Функция предназначена для получения текущего уровня записи.

НомерПоПорядку

Получить следующий порядковый номер.

НомерПоПорядкуВГруппировке

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

Формат

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

Форматная строка задается в соответствии с форматной строкой 1С:Предприятие.

НачалоПериода

Функция предназначена для выделения определенной даты из заданной даты.

КонецПериода

Функция предназначена для выделения определенной даты из заданной даты.

ДобавитьКДате

Функция предназначена для прибавления к дате некоторой величины.

РазностьДат

Функция предназначена для получения разницы между двумя датами.

Подстрока

Данная функция предназначена для выделения подстроки из строки.

ДлинаСтроки

Функция предназначена для определения длины строки.

Данная функция предназначена для выделения года из значения типа Дата.

Квартал

Данная функция предназначена для выделения номера квартала из значения типа Дата. Номер квартала в норме находится в диапазоне от 1 до 4.

Месяц

Данная функция предназначена для выделения номера месяца из значения типа Дата. Номер месяца в норме находится в диапа-зоне от 1 до 12.

ДеньГода

Данная функция предназначена для получения дня года из значения типа Дата. День года в норме находится в диапазоне от 1 до 365(366).

Данная функция предназначена для получения дня месяца из значения типа Дата. День месяца в норме находится в диапазоне от 1 до 31.

Неделя

Данная функция предназначена для получения номера недели года из значения типа Дата. Недели года нумеруются, начиная с 1.

ДеньНедели

Данная функция предназначена для получения дня недели из значения типа Дата. День недели в норме находится в диапазоне от 1 (понедельник) до 7(воскресенье).

Данная функция предназначена для получения часа суток из значения типа Дата. Час суток находится в диапазоне от 0 до 23.

Минута

Данная функция предназначена для получения минуты часа из значения типа Дата. Минута часа находится в диапазоне от 0 до 59.

Секунда

Данная функция предназначена для получения секунды минуты из значения типа Дата. Секунда минуты находится в диапазоне от 0 до 59.

Выразить

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

ЕстьNull

Данная функция возвращает значение второго параметра в случае, если значение первого параметра NULL.

В противном случае будет возвращено значение первого параметра.

Функции общих модулей

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

В данном примере будет осуществлен вызов функции «СокращенноеНаименование» из общего модуля конфигурации.

Отметим, что использование функций общих модулей разрешено только при указании соответствующего параметра процессора компоновки данных.

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

Источник

Язык выражений СКД

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

1. Где используется язык выражений Системы Компоновки Данных

Язык выражений СКД в 1С используется как правило в конструкторе системы компоновки данных. Еще его можно использовать при программном изменении СКД:

— Выражения представления (Наборы данных)

— Выражения упорядочивания (Наборы данных)

— На закладке «Вычисляемые поля», в колонке «Выражение».

— На закладке «Параметры», в колонке «Выражение».

— На закладке «Настройки», в колонке «Пользовательские поля».

2. Синтаксис языка выражений СКД в 1С

Выражения оперируют параметрами, передаваемыми в СКД. Например, &МассивЧисел, литералами и полями, полученными из источника данных, например, из запроса.

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

Выражения описываются при помощи следующих операций (как в языке запросов):

· Разыменование поля – обращение к полю через точку, например, Организация.ИНН

· Приведение типа – для составных полей, например:

ВЫРАЗИТЬ(Регистратор КАК Документ.АвансовыйОтчет).Дата

· Операция В – проверка на вхождение элемента в коллекцию значений

· Функции языка выражений СКД в 1С 8.3

Здесь все организовано, как и в языке запросов 1С: строка, число, дата, булево, тип.

Для указания не примитивных типов, следует использовать ключевое слово

3. Использование функций общих модулей 1С в языке выражений СКД

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

Естественно, это работает только с экспортными функциями.

Если свойство модуля – «глобальный» не установлено, то к функции следует обращаться, с указанием названия модуля:

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

При программном формировании отчета на СКД необходимо разрешить использование функций модулей:

4. Описание функций языка выражений Системы Компоновки Данных

Вычислить(Выражение, Группировка, ТипРасчета)

Вместо неё рекомендуется использовать функцию «ВычислитьВыражение».

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

Функция учитывает отбор группировок, но не учитывает иерархические отборы.

Данная функция возвращает строковое представление переданного значения не примитивного типа. Для значений примитивного типа возвращает само значение.

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

Данная функция преобразует переданное значение в строку.

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

-ТипЗначения – то же, что в языке запросов

5. Описание языка выражений СКД в конфигураторе

Найти описание языка выражений СКД 1С можно в синтакс-помощнике в конфигураторе по кнопке F1.

— Система компоновки данных → Язык выражений системы компоновки данных.

Также некоторые примеры применения языка выражений СКД есть в книге

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector