В данной небольшой заметке хочу показать, как можно произвести суммирование значений на различных уровнях группировки, в отчете с использованием системы компоновки данными.
Как показано на изображении, только на уровне группировки «Группы номенклатуры», рассчитывается ресурс «Заказать», в нем отображается, сколько нужно заказать по текущей группе номенклатуры исходя из определенных условий:
Соответственно, теперь необходимо рассчитать итоги, по выше находящимся группировкам («Склады», «ТипыСкладов») и общий итог.
Для этого используется функция ВычислитьВыражениеСГруппировкойМассив:
ВЫЧИСЛИТЬВЫРАЖЕНИЕСГРУППИРОВКОЙМАССИВ (EVALEXPRESSIONWITHGROUPARRAY)
Синтаксис:
ВычислитьВыражениеСГруппировкойМассив(,)
Описание:
Функция возвращает массив, каждый элемент которого содержит результат вычисления выражения для группировки по указанному полю.
Компоновщик макета при генерации макета преобразовывает параметры функции в термины полей макета компоновки данных. Например, поле Контрагент будет преобразовано в НаборДанных.Контрагент.
Компоновщик макета при генерации выражений для вывода пользовательского поля, в выражении которого присутствует только функцияВычислитьМассивСГруппировкойМассив(), генерирует выводимое выражение таким образом, чтобы выводимая информация была упорядочена. Например, для пользовательского поля с выражением:
ВычислитьВыражениеСГруппировкойМассив("Сумма(СуммаОборот)", "Контрагент")
Компоновщик макета сгенерирует для вывода следующее выражение:
СоединитьСтроки(Массив(Упорядочить(ВычислитьВыражениеСГруппировкойТаблицаЗначений("Представление(Сумма(НаборДанных.СуммаОборот)),Сумма(НаборДанных.СуммаОборот)","НаборДанных.Контрагент"),"2")))
Параметры:
Тип: Строка. Выражение, которое нужно вычислить. Строка, например, Сумма(СуммаОборот).
Тип: Строка. Выражения полей группировки – выражения полей группировки, перечисленные через запятую. Например, Контрагент, Партия.
Тип: Строка. Выражение, описывающее отбор, применяемый к детальным записям. В выражении не поддерживается использование агрегатных функций. Например,ПометкаУдаления = Ложь.
Тип: Строка. Выражение, описывающее отбор, применяемый к групповым записям. Например, Сумма(СуммаОборот) > &Параметр1.
Пример:
Максимум(ВычислитьВыражениеСГруппировкойМассив ("Сумма(СуммаОборот)", "Контрагент"));
Подробное описание синтаксиса функции можно найти по адресу http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Теперь для расчета, продублируем поле «Заказать», с различными значениями «Рассчитывать по…», используя следующие выражения, обратите внимание, что в каждом выше стоящем уровне используются значения уровней ниже стоящих группировок.
В итоге получаем следующую конструкцию:
ВычислитьВыражение - довольно сложная функция СКД для понимания, а примеры применения в справочной информации довольно скудны. В данной статье рассмотрены примеры, которые наверняка пригодятся каждому разработчику:
Рисунок 4. Группировки отчета с нарастающим итогом |
Одним из самых удобных и уникальных инструментов разработки в 1С является система компоновки данных (СКД). Мало в каких информационных системах разработчики могут создавать отчеты без написания программного кода. Данный механизм разрабатывался с целью упростить и ускорить разработку отчетных форм и дать больше возможностей пользователям в работе с выводимыми данными. Последнее очень высоко ценится продвинутыми пользователями, которые благодаря этому могут самостоятельно настроить отчет под собственные нужды, не ожидая действий разработчиков.
Процесс разработки отчета при помощи СКД можно разделить на следующие этапы:
Несмотря на возможность пользователей настраивать отчеты на СКД, создавать их необходимо через конфигуратор.
Рассмотрим пример создания внешнего отчета на СКД:
Теперь заходим в 1С, открываем наш отчет, чтобы удостовериться в правильности совершенных действий. Данные все отражены, группировки можно сворачивать и разворачивать. Как видите, СКД позволяет получать полноценные отчеты без написания кода за исключением нестандартных требований. Учитывая, что большинство отчетов имеют схожую структуру, знание СКД позволит существенно сократить время на разработку этих объектов.
Большую популярность этому механизму обеспечила поддержка широких возможностей при формировании отчета. Причем пользоваться ими могут не только разработчики, но и простые пользователи.
Бывают ситуации, когда мы сделали отчет, а потом приходит пользователь и просит сделать небольшую доработку. Например, вместо названий номенклатуры выводить артикулы. СКД позволяет такие доработки делать пользователям самостоятельно с помощью кнопки «Еще» - «Изменить вариант…».
Открывшееся окно похоже на окно настройки в отчете в конфигураторе, а также оно имеет схожие функции. Чтобы решить поставленную задачу пользователь должен зайти во вкладку «Поля» и изменить поле «Номенклатура». Это поле для редактирования открывается двойным щелчком, и становится доступна кнопка «Выбрать…».
Открывшееся окно предоставляет нам возможность выбора любого значения, которое будет фигурировать в поле «Номенклатура». У некоторых полей слева фигурирует знак плюса – в эти поля разработчик поместил ссылки, значит, мы можем увидеть их реквизиты. Раскрываем «Номенклатура» и видим артикул, который нам и нужен. Выделяем его и выбираем.
В окне изменения вариантов отчета заложены многие полезные функции системы компоновки данных. К примеру, пользователь самостоятельно может изменить порядок группировок, добавить отбор или наложить условное оформление. Завершаем редактирование и формируем отчет – как видим, вся номенклатура теперь отображается в виде артикулов.
Механизм СКД 1С:Предприятие 8.3 также имеет расширенный функционал для разработчиков. При разработке отчета мы пользовались всего 2 вкладками – «Наборы данных» и «Настройки», но в СКД их намного больше. Чтобы пользоваться всеми функциями системы компоновки данных, необходимо представлять, для чего каждая из вкладок нужна:
В свете ближайшего выхода 8.2.14, попытаюсь описать некоторые новые функции системы компоновки данных.
Открываем схему компоновки данных, желательно во внешнем отчете, чтобы было проще редактировать.
Добавляем набор данных типа запрос и пишем, либо вручную, либо с помощью конструктора запросов простейший запрос:
1. Настраиваем запрос в СКД.
2. Настраиваем вычисляемые поля в СКД
3. Выполняем настройку компоновки данных на закладке настройки
4. Запускаем 1С Предприятие 8.2.14. Открываем отчет. Формируем, получаем.
Описание самих новых функций:
1. ТекущаяДата()
Возвращает системную дату. При компоновке макета компоновки во всех выражениях, которые присутствуют в компоновке, функция ТекущаяДата() заменяется значением текущей даты.
2. ВЫЧИСЛИТЬВЫРАЖЕНИЕ()
Синтаксис:
ВычислитьВыражение(,)
Описание:
Функция предназначена для вычисления выражения в контексте некоторой группировки.
Функция учитывает отбор группировок, но не учитывает иерархические отборы.
Функция не может применяться к группировке в групповом отборе этой группировки. Например, в отборе группировки Номенклатура нельзя использовать выражение ВычислитьВыражение(«Сумма(СуммаОборот)", «ОбщийИтог») > 1000 . Но такое выражение можно использовать в иерархическом отборе.
Если конечная запись предшествует начальной, то считается, что записи для расчета детальных данных и расчета агрегатных функций отсутствуют.
При расчете интервальных выражений для общего итога (параметр Группировка имеет значение ОбщийИтог ) считается, что записи для расчета детальных данных и расчета агрегатных функций отсутствуют.
Компоновщик макета при генерации выражения функции ВычислитьВыражение , в случае если выражение упорядочивания содержит поля, которые не могут быть использованы в группировке, заменяет функцию ВычислитьВыражение на NULL .
Параметры
Тип: Строка . Выражение, которое надо вычислить.
Тип: Строка . Содержит имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог , вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
Например:
Сумма(Продажи.СуммаОборот)/Вычислить("Сумма(Продажи.СуммаОборот)", "ОбщийИтог")
В данном примере в результате получится отношение суммы по полю Продажи.СуммаОборот записи группировки к сумме того же поля во всей компоновке;
Тип: Строка . Параметр может принимать следующие значения:
· ОбщийИтог — выражение будет вычисляться для всех записей группировки.
· Иерархия — выражение будет вычисляться для родительской иерархической записи, если таковая имеется, и для всей группировки, если родительской иерархической записи не имеется.
· Группировка — выражение будет вычисляться для текущей групповой записи группировки.
· ГруппировкаНеРесурса — при вычисление функции для групповой записи по ресурсам, выражение будет вычислено для первой групповой записи исходной группировки.
При вычислении функции ВычислитьВыражение() со значением ГруппировкаНеРесурса для групповых записей, не являющихся группировками по ресурсам, функция вычисляется так же, как бы она вычислялась в том случае, если значение параметра было равно значению Группировка .
Компоновщик макета компоновки данных при генерации макета компоновки данных при выводе в макет поля-ресурса, по которому выполняется группировка, помещает в макет выражение, вычисляемое при помощи функции ВычислитьВыражение() , с указанием параметра ГруппировкаНеРесурса . Для остальных ресурсов в группировке по ресурсу помещаются обычные выражения ресурсов.
Тип: Строка . Указывает, с какой записи нужно начинать фрагмент, в котором рассчитывать агрегатные функции выражения и из какой записи получать значения полей вне агрегатных функций. Значение может быть одним из следующих:
· Первая (First )
· Последняя (Last )
· Предыдущая (Previous )
· Следующая (Next )
· Текущая (Current )
· ОграничивающееЗначение (BoundaryValue ) ОграничивающееЗначение
Тип: Строка . Указывает, до какой записи нужно продолжать фрагмент, в котором рассчитывать агрегатные функции выражения. Значение может быть одним из следующих:
· Первая (First ) . Необходимо получать первую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение от начала группировки. Получаемое значение должно целым быть числом, больше нуля. Например, Первая(3) - получение третьей записи от начала группировки.
Если первая запись выходит за пределы группировки, то считается, что записей нет. Например, если записей 3, а требуется получить Первая(4) , то считается, что записей нет.
· Последняя (Last ) . Необходимо получить последнюю запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение от конца группировки. Получаемое значение должно целым быть числом, больше нуля. Например, Последняя(3) - получение третьей записи от конца группировки.
Если последняя запись выходит за пределы группировки, то считается, что записей нет. Например, если записей 3, а требуется получить Последняя(4) , то считается, что записей нет.
· Предыдущая (Previous ) . Необходимо получить предыдущую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение назад от текущей записи группировки. Например, Предыдущая(2) - получение предыдущей от предыдущей записи.
Если предыдущая запись выходит за пределы группировки (например, для второй записи группировки требуется получить Предыдущая(3) , то получается первая запись группировки.
При получении предыдущей записи для итога по группировке считается, что получается первая запись.
· Следующая (Next ) . Необходимо получить следующую запись группировки. После слова в скобках можно указывать выражение, результат которого будет использоваться как смещение вперед от текущей записи группировки. Например, Следующая(2) - получение следующей от следующей записи.
Если следующая запись выходит за пределы группировки, то считается, что записей нет. Например, если записей 3 и для третьей записи получают Следующая() , то считается, что записей нет.
При получении следующей записи для итога по группировке считается, что записи нет.
· Текущая (Current ) . Необходимо получить текущую запись.
При получении для итога по группировке получается первая запись.
· ОграничивающееЗначение (BoundaryValue ) . Необходимость получить запись по указанному значению. После слова ОграничивающееЗначение в скобках нужно указать выражение, со значения которого нужно начинать фрагмент, первого поля упорядочивания.
В качестве записи будет получаться первая запись, значение поля упорядочивания у которой больше или равно указанному значению. Например, если в качестве поля упорядочивания используется поле Период , и оно имеет значения 01.01.2010 , 01.02.2010 , 01.03.2010 , и требуется получить ОграничивающееЗначение(ДатаВремя(2010, 1, 15)) , то будет получена запись с датой 01.02.2010 .
Тип: Строка . Перечисляются выражения, разделенные запятыми, которые описываютправила упорядочивания. Если не указана, то упорядочивание выполняется также как и у группировки, для которой вычисляется выражение. После каждого выражения можно указать ключевое слово Возр (для упорядочивания по возрастанию), Убыв (для упорядочивания по убывания) и Автоупорядочивание (для упорядочивания ссылочных полей по полям, по которым нужно упорядочивать объект, на который выполняется ссылка). Слово Автоупорядочивание может использоваться как со словом Возр , так и со словом Убыв .
Тип: Строка . Аналогично параметру Сортировка . Применяется для упорядочивания иерархических записей. Если не указано, компоновщик макета генерирует упорядочивание в соответствии с упорядочиванием, указанным в параметре Сортировка .
Тип: Строка . Указывает правило определения предыдущей или следующий записи в случае если есть несколько записей с одинаковым значением упорядочивания:
· Отдельно (Separately ) обозначает, что для определения предыдущей и следующей записей используется последовательность упорядоченных записей. Значение по умолчанию.
· Вместе (Together ) обозначает, что предыдущая и следующие записи определяются на основании значений выражений упорядочивания.
Например, если полученная последовательность упорядочена по дате:
№ | Дата | ФИО | Значение |
1 | 01 января 2001 года |
Иванов М. |
10 |
2 | 02 января 2001 года | Петров С. | 20 |
3 | 03 января 2001 года | Сидоров Р. | 30 |
4 | 04 января 2001 года | Петров С. | 40 |
Отдельно , то:
§ предыдущей записью к записи 3 будет запись 2.
Текущая, Текущая (соответственно, параметры Начало и Конец ), то для записи 2 этот фрагмент будет состоять из одной записи 2. Выражение будет равно 20.
Если значение параметра равно Вместе , то:
§ предыдущей записью к записи 3 будет запись 1.
§ если расчетный фрагмент определяется как Текущая, Текущая (соответственно, параметры Начало и Конец ), то для записи 2 этот фрагмент будет состоять из записей 2 и 3. Выражение ВычислитьВыражение(«Сумма(Значение)", Текущая, Текущая) будет равно 50.
При указании значение параметра равного Вместе , в параметрах Начало и Конец нельзя указывать смещение для позиций Первая , Последняя , Предыдущая , Следующая .
ВычислитьВыражение("Сумма(СуммаОборот)", "Первая", "Текущая")
Если требуется получить значение группировки в предыдущей строке, то можно использовать следующее выражение:
ВычислитьВыражение("Курс", "Предыдущая")
Список новых функций:ВычислитьВыражениеСГруппировкойМассив (,) -
Функция возвращает массив, каждый элемент которого содержит результат вычисления выражения для группировки по указанному полю.
ВычислитьВыражениеСГруппировкойТаблицаЗначений (,) -
Функция возвращает таблицу значений, каждая строка которой содержит результат вычисления выражений для группировки по указанному полю
ЗначениеЗаполнено () - Возвращает Истина , если значение отлично от значения данного типа по умолчанию, отлично от значения NULL , отлично от пустой ссылки, отлично от значения Неопределено . Для логических значений осуществляется проверка на значение NULL . Для строк осуществляется проверка на отсутствие не пробельных символов
Формат (, ) - Получить отформатированную строку переданного значения. Форматная строка задается в соответствии с форматной строкой системы «1С:Предприятие».
Подстрока (, , ) - Данная функция предназначена для выделения подстроки из строки.
ДлинаСтроки () - Функция предназначена для определения длины строки. Параметр — выражение строкового типа
Строка () - Если в качестве параметра передан массив, то функция возвращает строку, содержащую строковые представления всех элементов массива, разделенных символами "; ". Если в качестве параметра передана таблица значений, то функция возвращает строку, содержащую строковые представления всех строк таблицы значений, причем представления ячеек каждой строки разделяются символами "; ", а строки — смиволом перевода строки. Если у какого либо элемента строковое представление пустое, то вместо его представления выводится строка.
Язык выражений системы компоновки данных предназначен для записи выражений, используемых в различных частях системы.
Выражения используются в следующих подсистемах:
В выражении могут присутствовать литералы. Возможны литералы следующих типов:
Строковый литерал записывается в символах «”», например:
“Строковой литерал“
При необходимости использования внутри строкового литерала символа «”», следует использовать два таких символов.
Например:
“Литерал ““в кавычках“““
Число записывается без пробелов, в десятичном формате. Дробная часть отделяется при помощи символа «.». Например:
10.5 200
Литерал типа дата записывается при помощи ключевого литерала ДАТАВРЕМЯ (DATETIME). После данного ключевого слова, в скобках, через запятую перечисляются год, месяц, день, часы, минуты, секунды. Указание времени не обязательно.
Например:
ДАТАВРЕМЯ(1975, 1, 06) – Шестое января 1975 года ДАТАВРЕМЯ(2006, 12, 2, 23, 56, 57) – Второе декабря 2006 года, 23 часа 56 минут 57 секундода, 23 часа 56 минут 57 секунд
Булевы значения могут быть записаны при помощи литералов Истина (True), Ложь (False).
Для указания литералов других типов (системных перечислений, предопределенных данных) используется ключевое слово Значение, после которого в скобках идет указание имени литерала.
Значение(ВидСчета. Активный)
Данная операция предназначена для изменения знака числа на обратный. Например:
Продажи.Количество
Данная операция не выполняет над числом никаких действий. Например:
Продажи.Количество
Данная операция предназначена для вычисления разности двух чисел. Например:
ОстаткиИОбороты.НачальныйОстаток – ОстаткиИОбороты.КонечныйОстаток ОстаткиИОбороты.НачальныйОстаток - 100 400 – 357
Данная операция предназначена для вычисления суммы двух чисел. Например:
ОстаткиИОбороты.НачальныйОстаток + ОстаткиИОбороты.Оборот ОстаткиИОбороты.НачальныйОстаток + 100 400 + 357
Данная операция предназначена для вычисления произведения двух чисел. Например:
Номенклатура.Цена * 1.2 2 * 3.14
Данная операция предназначена для получения результата деления одного операнда на другой. Например:
Номенклатура.Цена / 1.2 2 / 3.14
Данная операция предназначена для получения остатка от деления одного операнда на другой. Например:
Номенклатура.Цена % 1.2 2 % 3.14
Данная операция предназначена для конкатенации двух строк. Например:
Номенклатура.Артикул + “: ”+ Номенклатура.Наименование
Данная операция проверяет соответствие строки переданному шаблону.
Значением оператора ПОДОБНО является ИСТИНА, если значение <Выражения> удовлетворяет шаблону, и ЛОЖЬ в противном случае.
Следующие символы в <Строке_шаблона> имеют смысл, отличный от просто очередного символа строки:
Любой другой символ означает сам себя и не несет никакой дополнительной нагрузки. Если в качестве самого себя необходимо записать один из перечисленных символов, то ему должен предшествовать <Спецсимвол>, указанный после ключевого слова СПЕЦСИМВОЛ (ESCAPE).
Например, шаблон
“%АБВ[абвг]\_абв%” СПЕЦСИМВОЛ “\”
означает подстроку, состоящую из последовательности символов: буквы А; буквы Б; буквы В; одной цифры; одной из букв а, б, в или г; символа подчеркивания; буквы а; буквы б; буквы в. Причем эта последовательность может располагаться, начиная с произвольной позиции в строке.
Данная операция предназначена для сравнения двух операндов на равенство. Например:
Продажи.Контрагент = Продажи.НоменклатураОсновнойПоставщик
Данная операция предназначена для сравнения двух операндов на неравенство. Например:
Продажи.Контрагент <> Продажи.НоменклатураОсновнойПоставщик
Данная операция предназначена для проверки того, что первый операнд меньше второго. Например:
ПродажиТекщие.Сумма < ПродажиПрошлые.Сумма
Данная операция предназначена для проверки того, что первый операнд больше второго. Например:
ПродажиТекщие.Сумма > ПродажиПрошлые.Сумма
Данная операция предназначена для проверки того, что первый операнд меньше либо равен второму. Например:
ПродажиТекщие.Сумма <= ПродажиПрошлые.Сумма
Данная операция предназначена для проверки того, что первый операнд больше либо равен второму. Например:
ПродажиТекщие.Сумма >= ПродажиПрошлые.Сумма
Данная операция осуществляет проверку наличия значения в переданном списке значений. Результатом операции будет Истина, в случае, если значение найдено, или Ложь - в противном случае. Например:
Номенклатура В (&Товар1, &Товар2)
Операция осуществляет проверку наличия значения в указанном наборе данных. Набор данных для проверки должен содержать одно поле. Например:
Продажи.Контрагент В Контрагенты
Данная операция возвращает значение Истина в случае, если значение является значением NULL. Например:
Продажи.Контрагент ЕСТЬ NULL
Данная операция возвращает значение Истина в случае, если значение не является значением NULL. Например:
Продажи.Контрагент ЕСТЬ НЕ NULL
Логические операции принимают в качестве операндов выражения, имеющие тип Булево.
Операция НЕ возвращает значение Истина в случае, если ее операнд имеет значение Ложь, и значение Ложь в случае, если ее операнд имеет значение Истина. Например:
НЕ Документ.Грузополучатель = Документ.Грузоотправитель
Операция И возвращает значение Истина в случае, если оба операнда имеют значение Истина, и значение Ложь в случае, если один из операндов имеет значение Ложь. Например:
Документ.Грузополучатель = Документ.Грузоотправитель И Документ.Грузополучатель = &Контрагент
Операция ИЛИ возвращает значение Истина в случае, если один из операндов имеет значение Истина, и Ложь в случае, если оба операнда имеют значение Ложь. Например:
Документ.Грузополучатель = Документ.Грузоотправитель ИЛИ Документ.Грузополучатель = &Контрагент
Агрегатные функции осуществляют некоторое действие над набором данных.
Агрегатная функция Сумма рассчитывает сумму значений выражений, переданных ей в качестве аргумента для всех детальных записей. Например:
Сумма(Продажи.СуммаОборот)
Функция Количество рассчитывает количество значений отличных от значения NULL. Например:
Количество(Продажи.Контрагент)
Эта функция рассчитывает количество различных значений. Например:
Количество(Различные Продажи.Контрагент)
Функция получает максимальное значение. Например:
Максимум(Остатки.Количество)
Функция получает минимальное значение. Например:
Минимум(Остатки.Количество)
Функция получает среднее значение для значений, отличных от NULL. Например:
Среднее(Остатки.Количество)
Операция Выбор предназначена для осуществления выбора одного из нескольких значений при выполнении некоторых условий. Например:
Выбор Когда Сумма > 1000 Тогда Сумма Иначе 0 Конец
Если типы сравниваемых значений отличаются друг от друга, то отношения между значениями определяются на основании приоритета типов:
Отношения между различными ссылочными типами определяются на основе ссылочных номеров таблиц, соответствующих тому или иному типу.
Если типы данных совпадают, то производится сравнение значений по следующим правилам:
Любая операция, в которой значение одного из операндов NULL, будет давать результат NULL.
Есть исключения:
Операции имеют следующие приоритеты (первая строка имеет низший приоритет):
Функция Вычислить предназначена для вычисления выражения в контексте некоторой группировки. Функция имеет следующие параметры:
В данном примере в результате получится отношение суммы по полю "Продажи.СуммаОборот" записи группировки к сумме того же поля во всей компоновке.
Функция предназначена для получения текущего уровня записи.
Уровень()
Получить следующий порядковый номер.
НомерПоПорядку()
Возвращает следующий порядковый номер в текущей группировке.
НомерПоПорядкуВГруппировке()
Получить отформатированную строку переданного значения.
Форматная строка задается в соответствии с форматной строкой 1С:Предприятие.
Параметры:
Формат(РасходныеНакладные.СуммаДок, "ЧДЦ=2")
Параметры:
НачалоПериода(ДатаВремя(2002, 10, 12, 10, 15, 34), "Месяц")
Результат:
01.10.2002 0:00:00
Функция предназначена для выделения определенной даты из заданной даты.
Параметры:
КонецПериода(ДатаВремя(2002, 10, 12, 10, 15, 34), "Неделя")
Результат:
13.10.2002 23:59:59
Функция предназначена для прибавления к дате некоторой величины.
Параметры:
ДобавитьКДате(ДатаВремя(2002, 10, 12, 10, 15, 34), "Месяц", 1)
Результат:
12.11.2002 10:15:34
Функция предназначена для получения разницы между двумя датами.
Параметры:
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2002, 10, 12, 10, 15, 34), ДАТАВРЕМЯ(2002, 10, 14, 9, 18, 06), "ДЕНЬ")
Результат:
Данная функция предназначена для выделения подстроки из строки.
Параметры:
ПОДСТРОКА(Контрагенты.Адрес, 1, 4)
Функция предназначена для определения длины строки.
Параметр:
Строка(Контрагенты.Адрес)
Данная функция предназначена для выделения года из значения типа Дата.
Параметр:
ГОД(РасхНакл.Дата)
Данная функция предназначена для выделения номера квартала из значения типа Дата. Номер квартала в норме находится в диапазоне от 1 до 4.
Параметр
Данная функция предназначена для выделения номера месяца из значения типа Дата. Номер месяца в норме находится в диапа-зоне от 1 до 12.
Данная функция предназначена для получения дня года из значения типа Дата. День года в норме находится в диапазоне от 1 до 365(366).
Данная функция предназначена для получения дня месяца из значения типа Дата. День месяца в норме находится в диапазоне от 1 до 31.
Данная функция предназначена для получения номера недели года из значения типа Дата. Недели года нумеруются, начиная с 1.
Данная функция предназначена для получения дня недели из значения типа Дата. День недели в норме находится в диапазоне от 1 (понедельник) до 7(воскресенье).
Данная функция предназначена для получения часа суток из значения типа Дата. Час суток находится в диапазоне от 0 до 23.
Данная функция предназначена для получения минуты часа из значения типа Дата. Минута часа находится в диапазоне от 0 до 59.
Данная функция предназначена для получения секунды минуты из значения типа Дата. Секунда минуты находится в диапазоне от 0 до 59.
Данная функция предназначена для выделения типа из выражения, которое может содержать составной тип. В случае, если выражение будет содержать тип, отличный от требуемого типа, будет возвращено значение NULL.
Параметры:
Выразить(Данные.Реквизит1, "Число(10,3)")
Данная функция возвращает значение второго параметра в случае, если значение первого параметра NULL.
В противном случае будет возвращено значение первого параметра.
ЕстьNULL(Сумма(Продажи.СуммаОборот), 0)
Выражение механизма компоновки данных может содержать вызовы функций глобальных общих модулей конфигурации. Никакого дополнительно синтаксиса для вызова таких функций не требуется.
В данном примере будет осуществлен вызов функции "СокращенноеНаименование" из общего модуля конфигурации.
Отметим, что использование функций общих модулей разрешено только при указании соответствующего параметра процессора компоновки данных.
Кроме того, функции общих модулей не могут быть использованы в выражениях пользовательских полей.