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

  • Период
  • Организация
  • Счет
  • Статья
  • Сумма
  • Валюта
  • Комментарий

Вполне логично предположить, что у нас может возникнуть задача вычисления следующих показателей: Общий остаток денежных средств в организации, Остатки денежных средств в разрезе счетов, Расход по статье «Аренда офиса» и т.д.

В Excel эта задача решается формулами, которые позволяют отобрать ( отфильтровать ) данные согласно заданных условий и выполнить суммирование отобранных данных. Для этих целей в Excel часто используются функции СУММ() и СУММЕСЛИМН().

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


Примечание. Интересно отметить, что в Google таблицах доступна функция Query, которая позволяет выполнять SQL запросы к данным в листах таблицы. На наш взгляд, наличие этой функции существенно усиливает функциональность Google таблиц.


В A-Techs мы развили собственный синтаксис выражений для извлечения данных, которые мы называем «Выражения источники данных». Мы постарались сделать данные выражения максимально простыми и легкими в применении. В тоже время при разработке синтаксиса выражений мы использовали терминологию SQL, т.к. SQL фактически является общепризнанным эталоном в задачах извлечения данных. Пользователям, которые имеют хотя бы минимальные знания SQL, будет чрезвычайно легко освоить синтаксис источников данных A-Techs.

Принцип конвейера

Выражения источники данных в A-Techs строятся по принципу конвейера. Выражение начинается с имени Журнала или Справочника и содержит произвольное количество секций, отделенных символами «|». Каждая секция выполняет над исходными данными какие-то действия: фильтрует согласно условию, группирует данные, производит вычисления и т.д. Результат работы текущей секции подается на вход в следующую секцию и так далее пока выражение не закончится и мы не получим результат.

conv.png

Рисунок 1. Принцип конвейера.

Выражения, построенные по принципу конвейера значительно более наглядны, а значит их легче создавать и отлаживать. Напротив, синтаксис, основанный на вложенном вызове функций (как в Excel), зачастую приводит к сложно воспринимаемым выражениям вроде Функция1 ( Функция2 ( Функция3( Журнал ))).

Использование Источников данных в A-Techs.

Источники данных широко используются в сервисе A-Techs. С помощью источников извлекаются данные для формирования отчетов. Настраиваются сервисы заполнения и подбора в операциях, настраивается заполнение индивидуальных полей в операциях. Кроме того, существует возможность использования источников данных A-Techs в Google таблицах. С помощью источника данных извлекаются данные из A-Techs, а затем выполняется анализ данных при помощи возможностей Google таблиц.

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

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

Конструктор и Консоль источников данных более подробнее описаны в отдельной статье.