Приложение 2 Синтаксис языка описания алгоритмов расчётов СПЭЭО - Техническое задание на оказание услуг по системному...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата)


НазваниеТехническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата)
страница14/21
ТипТехническое задание
1   ...   10   11   12   13   14   15   16   17   ...   21

Приложение 2 Синтаксис языка описания алгоритмов расчётов СПЭЭО


Общие принципы работы с формализованным языком

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

  1. Подстановки

    1. Параметризуемые подстановки

В понятие «параметризуемые подстановки» входят признаки:

  • Операционный код показателя ($ОПЕРКОД);

  • Разрез разработки ($РАЗРЕЗ);

  • Тип свода ($ТИП_СВОДА);

  • Тип значений ($ТИП_ЗНАЧЕНИЯ).

Данные признаки указываются в соответствующих столбцах таблицы Расчет.

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

Кроме того, параметризуемой подстановкой также является номер ТОГС ($ТОГС), который не указывается напрямую в таблице Расчет.

    1. Подстановки относительных периодов

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

Используемые подстановки относительных периодов:

Подстановка

Наименование подстановки

Условия фильтрации

$ТекущийПериод

Текущий период

Год и номер периода = году/номеру периода текущего отчётного периода

$ПредыдущийПериод

Предыдущий период

Если периодичность текущего отчётного периода – квартальная и номер текущего отчётного периода = 1, то

  • Год = Году отчётного периода – 1

  • Номер периода = 4

Если периодичность текущего отчётного периода – месячная и номер текущего отчётного периода = 1, то

  • Год = Году отчётного периода – 1

  • Номер периода = 12

Если номер текущего отчётного периода != 1, то

  • Год = Году отчётного периода

  • Номер периода = номеру отчётного периода - 1

$ПериодПрошлогоГода


Соответствующий период прошлого года

  • Год = году отчётного периода – 1

  • Номер периода = номеру отчётного периода

$ПериодСНачалаГода


Период с начала текущего года

  • Год = году отчётного периода

  • Номер периода <= номеру отчётного периода

$ПериодСНачалаПрошлогоГода

Соответствующий период с начала прошлого года

  • Год = году отчётного периода – 1

  • Номер периода <= номеру отчётного периода

    1. Прочие подстановки

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

Подстановка

Наименование подстановки

$Тогс

номер текущего ТОГС

$НомерПериода

номер текущего периода разработки

$НомерПредыдущегоПериода

номер предыдущего периода разработки

$Год

год текущего периода разработки

$ПредыдущийГод

год текущего периода разработки - 1

$Периодичность

периодичность текущего периода разработки

  1. Операторы

    1. Оператор СВОД()

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

Оператор СВОД имеет синтаксис:

СВОД(условия отбора показателей).

Условия отбора необязательны для заполнения.

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

Признак

Значение по умолчанию

Операционный код показателя (признак s_knp)

s_knp = $ОПЕРКОД (текущее значение подстановки)

Разрез разработки (признак s_razrez)

Для РУ: s_razrez = 0

Для ФУ: s_razrez = $РАЗРЕЗ (текущее значение подстановки)

Тип свода (признак s_tipisvodov)

Для РУ: s_tipisvodov = 0

Для ФУ: s_tipisvodov = $ТИП_СВОДА (текущее значение подстановки)

Тип значений (признак s_valuetype)

s_valuetype = $ТИП_ЗНАЧЕНИЯ (текущее значение подстановки)

Период (отсутствует любая из подстановок из раздела «Подстановки относительных периодов» и не указан напрямую признак p_period_number)

$ТЕКУЩИЙ_ПЕРИОД

Номер ТОГС (признак s_togs)

s_togs = $ТОГС для РУ. Для ФУ значение по умолчанию отсутствует.



    1. Оператор ПОКАЗАТЕЛЬ()

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

Оператор ПОКАЗАТЕЛЬ имеет синтаксис:

ПОКАЗАТЕЛЬ (условия отбора показателей).

Условия отбора необязательны для заполнения.

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

Признак

Значение по умолчанию

Операционный код показателя (признак s_knp)

s_knp = $ОПЕРКОД (текущее значение подстановки)

Разрез разработки (признак s_razrez)

s_razrez = $РАЗРЕЗ (текущее значение подстановки)

Тип свода (признак s_tipisvodov)

s_tipisvodov = $ТИП_СВОДА (текущее значение подстановки)

Тип значений (признак s_valuetype)

s_valuetype = $ТИП_ЗНАЧЕНИЯ (текущее значение подстановки)

Период (отсутствует любая из подстановок из раздела «Подстановки относительных периодов» и не указан напрямую признак p_period_number)

$ТЕКУЩИЙ_ПЕРИОД

Номер ТОГС (признак s_togs)

s_togs = $ТОГС для РУ. Для ФУ значение по умолчанию отсутствует.

Пример

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

Группа

Код

Показатель

Отключен

Описание

Тип значения

Тип свода

Разрезы разработки

Формула

П1_Открытая\П1Р202\1

OE005

1002

0

за период с начала года

4

0

0

ПОКАЗАТЕЛЬ ($ПериодСНачалаГода И s_valuetype=1)

П1_Открытая\П1Р202\1

OE006

1002

0

за соответствующий период прошлого года

6

0

0

ПОКАЗАТЕЛЬ ($ПериодСНачалаГода И s_valuetype=3)



    1. Оператор КОЛИЧЕСТВО()

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

Синтаксис аналогичен синтаксису оператора СВОД ():

КОЛИЧЕСТВО(условия отбора показателей).

Условия отбора необязательны для заполнения.

Если в условиях отбора не указаны признаки, перечисленные ниже, эти признаки автоматически добавляются в условия отбора по следующим правилам (аналогично оператору СВОД()):

Признак

Значение по умолчанию

Операционный код показателя (признак s_knp)

s_knp = $ОПЕРКОД (текущее значение подстановки)

Разрез разработки (признак s_razrez)

Для РУ: s_razrez = 0

Для ФУ: s_razrez = $РАЗРЕЗ (текущее значение подстановки)

Тип свода (признак s_tipisvodov)

Для РУ: s_tipisvodov = 0

Для ФУ: s_tipisvodov = $ТИП_СВОДА (текущее значение подстановки)

Тип значений (признак s_valuetype)

s_valuetype = $ТИП_ЗНАЧЕНИЯ (текущее значение подстановки)

Период (отсутствует любая из подстановок из раздела «Подстановки относительных периодов» и не указан напрямую признак p_period_number)

$ТЕКУЩИЙ_ПЕРИОД

Номер ТОГС (признак s_togs)

s_togs = $ТОГС для РУ. Для ФУ значение по умолчанию отсутствует.



    1. Оператор СРЕДНЕЕ()

Используется, когда необходимо подсчитать среднее значение, а не сумму. В остальном аналогичен оператору СВОД().

    1. Оператор МИН()

Используется, когда необходимо подсчитать минимальное значение, а не сумму. В остальном аналогичен оператору СВОД().

    1. Оператор МАКС()

Используется, когда необходимо подсчитать максимальное значение, а не сумму. В остальном аналогичен оператору СВОД().

    1. Оператор ЕСЛИ()

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

Синтаксис:

ЕСЛИ (<Условие>,<Формула, если условие выполнено>, <Формула, если условие не выполнено)

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

    1. Оператор ВЫБОР()

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

Синтаксис:

ВЫБОР(Подстановка) {

  Значение1 [, Значение2, …]: [Формула1];

  [Значение3 [, Значение4, …]: [Формула2]];

  […]

  [ИНАЧЕ: [Формула3]];

}

Квадратными скобками обозначены необязательные составляющие формулы.

Алгоритм работает следующим образом: если значение подстановки совпадает со Значение1 или Значение2, используется Формула1, и т.д. В качестве подстановок могут использоваться подстановки из раздела «Прочие подстановки».

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

    1. Оператор ПЕРЦЕНТИЛЬ()

Оператор ПЕРЦЕНТИЛЬ() аналогичен оператору СВОД(), но использует иную агрегатную функцию – в то время как СВОД() суммирует все элементы, обладающие одинаковыми значениями признаков разреза, ПЕРЦЕНТИЛЬ() использует следующий алгоритм агрегации (по каждой из групп, обладающей одинаковыми значениями признаков разреза):

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

  2. Рассчитывается порядковый номер элемента, который является i-ым перцентилем в данной группе: p = i% * (n + 1), где n – количество элементов. Т.е. порядковый номер 63% перцентиля в группе из 5 элементов будет равен p = 0.63*(5+1) = 3.78

  3. Далее в зависимости от значения p:

    1. Если полученный номер p <=1, то искомый перцентиль = первому элементу в упорядоченном наборе (т.е. минимальному элементу)

    2. Если полученный номер p >= наибольшего номера элемента, то искомый перцентиль = последнему элементу в упорядоченном наборе (т.е. максимальному элементу)

    3. Если полученный номер p целый, то искомым перцентилем является элемент с порядковым номером p (в отсортированном наборе)

    4. Если порученный номер p дробный, то искомым перцентилем является среднее между двумя элементами в наборе, между номерами которых заключен p.

Оператор Перцентиль() имеет синтаксис:

ПЕРЦЕНТИЛЬ(<уровень перцентиля>, <условия отбора показателей>)

Уровень перцентиля – это число от 1 до 100. Условия отбора необязательны для заполнения.

Если в условиях отбора не указаны некоторые выделенные признаки, эти признаки автоматически добавляются в условия отбора, объединяются с другими условиями отбора через оператор «И» и устанавливаются значениями по умолчанию для оператора ПЕРЦЕНТИЛЬ ():

Признак

Значение по умолчанию

Операционный код показателя (признак s_knp)

s_knp = $ОПЕРКОД (текущее значение подстановки)

Разрез разработки (признак s_razrez)

Для РУ: s_razrez = 0

Для ФУ: s_razrez = $РАЗРЕЗ (текущее значение подстановки)

Тип свода (признак s_tipisvodov)

Для РУ: s_tipisvodov = 0

Для ФУ: s_tipisvodov = $ТИП_СВОДА (текущее значение подстановки)

Тип значений (признак s_valuetype)

s_valuetype = $ТИП_ЗНАЧЕНИЯ (текущее значение подстановки)

Период (отсутствует любая из подстановок из раздела «Подстановки относительных периодов» и не указан напрямую признак p_period_number)

$ТЕКУЩИЙ_ПЕРИОД

Номер ТОГС (признак s_togs)

s_togs = $ТОГС для РУ. Для ФУ значение по умолчанию отсутствует.

    1. Оператор КВАРТИЛЬ()

Аналогичен оператору ПЕРЦЕНТИЛЬ(). Имеет синтаксис:

КВАРТИЛЬ(<уровень квартиля>, <условия отбора показателей>)

Уровень квартиля – это число от 1 до 3. Условия отбора необязательны для заполнения.

Оператор КВАРТИЛЬ() сводится к применению оператора ПЕРЦЕНТИЛЬ следующим образом:

КВАРТИЛЬ()

Заменяется на

КВАРТИЛЬ(1, <условия отбора>)

ПЕРЦЕНТИЛЬ(25, <условия отбора>)

КВАРТИЛЬ(2, <условия отбора>)

ПЕРЦЕНТИЛЬ(50, <условия отбора>)

КВАРТИЛЬ(3, <условия отбора>)

ПЕРЦЕНТИЛЬ(75, <условия отбора>)

    1. Оператор МЕДИАНА()

Аналогичен оператору ПЕРЦЕНТИЛЬ(). Имеет синтаксис:

МЕДИАНА(<условия отбора показателей>)

Уровень квартиля – это число от 1 до 3. Условия отбора необязательны для заполнения.

Оператор МЕДИАНА() сводится к применению оператора ПЕРЦЕНТИЛЬ следующим образом:

МЕДИАНА()

Заменяется на

МЕДИАНА(<условия отбора>)

ПЕРЦЕНТИЛЬ(50, <условия отбора>)

    1. Оператор ОКРУГЛ()

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

ОКРУГЛ(<Разрядность>, <Формула>)

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

Формула представляет собой ряд операторов (СВОД(), ПОКАЗАТЕЛЬ(), КОЛИЧЕСТВО(), ЕСЛИ(), ABS() и т.д., объединенных арифметическими операторами.

    1. Оператор ABS()

Оператор ABS() реализует вычисление модуля числа. Применяется над всеми значениями сводного показателя, указанного в качестве параметра. Имеет следующий синтаксис:

ABS(<Формула>)

Формула представляет собой ряд операторов (СВОД(), ПОКАЗАТЕЛЬ(), КОЛИЧЕСТВО(), ЕСЛИ(), ABS() и т.д., объединенных арифметическими операторами.

    1. Оператор СПРАВОЧНИК()

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

СПРАВОЧНИК(<код справочника>, <поле справочника>, <условие отбора>)

Код справочника – код справочника, из которого нам необходимо получить значение.

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

Условие отбора – условие, накладываемое на поля указанного справочника (включая дополнительные поля) и позволяющее отобрать конкретный элемент этого справочника, значение указанного поля по которому вернется в результате. Условие записывается в виде:

<Код поля справочника> = <Значение> И <Код поля справочника> = <Значение> И…

При этом для значений можно указывать стандартные подстановки ($ГОД, $ТОГС, $НомерПериода и т.д.).

    1. Исключение признаков

Используется для операторов СВОД и ПОКАЗАТЕЛЬ. Указывается в квадратных скобках после оператора, до круглых скобок:

СВОД[<Перечень исключаемых признаков>](<условия отбора>)

ПОКАЗАТЕЛЬ[<Перечень исключаемых признаков>](<условия отбора>)

При работе с операторами СВОД() и ПОКАЗАТЕЛЬ() система автоматически сравнивает признаки каждого показателя, находит показатели с одинаковой призначной частью и дальнейшие вычисления производит над ними.

    1. Арифметические операторы над сводными показателями

Операторы СВОД(), КОЛИЧЕСТВО(),ПОКАЗАТЕЛЬ(), ЕСЛИ(), ABS() и т.д. могут быть объединены арифметическими операциями: +, -, *, /, скобки. Используется стандартный арифметический приоритет операций. Перед началом арифметических действий необходимо рассчитать каждый из операндов.

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

Если у одного из показателей-операндов отсутствует совокупность значений признаков разреза, присутствующего у другого показателя (учитываются только признаки, входящие в рассчитываемый разрез и являющиеся общими для обоих операндов), то у первого операнда значение по данной совокупности принимается = 0 и далее используется вышеприведенный механизм расчёта.

    1. Арифметические операторы над сводом и числом

Аналогичны арифметическим оператором над сводами, за исключением того, что в качестве одного или обеих из операндов выступает константа или импортируемый показатель-константа (для таких показателей предусмотрены признаки s_razrez = -1, s_tipisvodov = 0).

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

  1. Описание условий отбора

    1. Арифметические операторы

В операторах СВОД(), ПОКАЗАТЕЛЬ(), КОЛИЧЕСТВО() и т.д. есть возможность указания условий отбора показателей. Условия отбора накладываются на признаки показателя и описываются следующими операторами:

=, !=

равно, не равно

>, >=

больше, больше или равно

<, <=

меньше, меньше или равно

ИЗ, БЕЗ

подробное описание – в разделе «Операторы ИЗ, БЕЗ»

Арифметический оператор = имеет следующий синтаксис:

<Код признака> = <Значение признака>

Синтаксис прочих арифметических операторов аналогичен.

    1. Операторы ИЗ, БЕЗ

Оператор ИЗ проверяет принадлежность значения признака к выборке, определенной в виде списка значений, разделенных запятыми или к заранее подготовленной выборке. Оператор БЕЗ является обратным к оператору ИЗ. Таким образом, синтаксис данных операторов выглядит следующим образом:

  • <Код признака> ИЗ (<Набор значений, разделенных запятыми>)

  • <Код признака> ИЗ @<Код выборки>

  • <Код признака> БЕЗ (<Набор значений, разделенных запятыми>)

  • <Код признака> БЕЗ @<Код выборки>

    1. Оператор Период()

Оператор Период() позволяет задать условие на принадлежность показателя к тому или иному периоду разработки (или сразу к нескольким периодам).

Оператор Период() имеет следующий синтаксис:

Период(<Смещение по году>, <Смещение относительно текущего периода>, <Нарастающий итог?>)

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

  • Параметр "Смещение относительно текущего периода" указывает смещение в периодах относительно номера текущего периода. Может принимать положительные, отрицательные значения и 0

  • Параметр "Нарастающий итог?" служит для указания, требуются ли данные за конкретный период или нарастающим итогом с начала года до конкретного периода.

Подстановки относительных периодов, описанные в "Подстановки относительных периодов", заменяются на оператор Период() следующим образом:

Подстановка

Реализация оператором Период()

$ТекущийПериод

Период(0, 0, 0)

$ПредыдущийПериод

Период(0, -1, 0)

$ПериодПрошлогоГода


Период (-1, 0, 0)

$ПериодСНачалаГода


Период(0, 0, 1)

$ПериодСНачалаПрошлогоГода

Период(-1, 0, 1)

    1. Объединение условий отбора

Условия отбора могут быть объединены при помощи логических операций И, ИЛИ и скобок.

  1. Группировочные признаки разреза

При расчёте по формуле группировка осуществляется по признакам, входящим в разрез.

  1. Результат вычисления

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

Признак

Значение

s_knp

$ОПЕРКОД

s_razrez

$РАЗРЕЗ

s_tipisvodov

$ТИП_СВОДА

s_valuetype

$ТИП_ЗНАЧЕНИЯ

p_year

$ГОД

p_period_number

$НомерПериода

s_periodicity

$ПЕРИОДИЧНОСТЬ

s_togs

$ТОГС

Также добавляются все признаки, входящие в разрез $РАЗРЕЗ со значениями, соответствующими данному значению. Например, для разреза 3 (ОКАТО, Основной ОКВЭД) у результатов вычисления будут указаны следующие признаки:

  • s_knp

  • s_razrez

  • s_tipisvodov

  • s_valuetype

  • p_year

  • p_period_number

  • s_periodicity

  • s_togs

  • s_okved_main

  • s_okato

  1. Использование схем сборок

Для каждого признака, входящего в разрез может быть указана схема сборки, отражающая иерархию данного признака в пределах этого разреза. Схемы сборки применяются для каждого агрегирующего оператора, кроме ПОКАЗАТЕЛЬ() после того как рассчитаны значения показателя по каждой из имеющихся в исходных данных комбинаций значений признаков разреза. При этом применяются схемы сборки, соответствующие разрезу = $РАЗРЕЗ (текущему значению подстановки). В случае если в формуле содержится несколько операторов необходимо применять соответствующие схемы сборки для каждого оператора.

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

    1. Алгоритм применения схем сборки:

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

  2. Применяем 2-ую по порядку схему сборки, соответствующую Признаку2. Аналогично суммируем по данной схеме сборки элементы с одинаковыми значениями других признаков (кроме Признака2). При этом суммируются и те элементы, которые были получены при суммировании по первой схеме сборки (по Признаку1).



  3. Применяем N-ую по порядку схему сборки, соответствующую ПризнакуN. Аналогично суммируем по данной схеме сборки элементы с одинаковыми значениями других признаков (кроме ПризнакаN). При этом суммируются и те элементы, которые были получены при суммировании по все предыдущим схемам сборки (по Признакам1, 2 …).

ВАЖНО! При суммировании с листовых элементов до корня необходимо просуммировать все входящие элементы перед тем как суммировать головной

Схема сборки в дополнении к своей основной функции является фильтром. Те элементы, которых нет в схеме сборки (ни в столбце ParentCode, ни в столбце Code), не должны попасть в результат, даже если они встречаются в исходных данных. Таким образом, если в исходных данных есть ОКВЭДы A, B, C, D, а схема сборки выглядит как C=A+B, то D не должен попасть в результат.

    1. Включение элемента в себя в схеме сборки

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

При этом действуют следующие правила:

  1. Если в схеме сборки указана циклическая связь (например, C=A+B+C), это значит, что при вычислении C следует помимо A и B включить в сумму C, присутствующие в данных, на которых применяется схема сборки. При этом в результат должен попасть именно рассчитанный элемент C = A+B+C, а не исходный элемент C.

  2. Так как суммирование по схеме сборки идёт строго вверх по дереву, то повторное включение уже рассчитанного элемента в себя исключается.

  3. Если же циклической связи не указано (C=A+B), а в итоговых данных есть элементы C, то эти элементы полностью игнорируются при сборке и не попадают в результат.

  1. Описание контролей

Для описаний ФЛК (контролей) используются те же параметризуемые подстановки и операторы, что и для расчёта показателей. Специфика заключается в том, что при расчёте ФЛК система должна выдавать сведения о корректности контроля для каждого элемента разреза (вместо конкретного значения показателя). Для этого при описании ФЛК вводятся дополнительные операторы сравнения:

  • =, !=

  • >, >=

  • <, <=

Каждый из приведенных операторов сравнения работает с двумя операндами. При этом сравнение производится между ними поэлементно – по тем значениям, которые обладают одинаковыми значениями всех признаков разреза. Если у одного из операндов отсутствует комбинация признаков, присутствующая у второго, значение по этой комбинации у этого операнда принимается равным 0. На выходе для каждой комбинации признаков разреза получаем булево значение.

    1. Дополнительные правила

  • Если формула не указана, то подразумевается, что используется формула СВОД()

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

Примеры ФЛК:

ЕСЛИ (ПОКАЗАТЕЛЬ (s_knp=1081_w) >= ПОКАЗАТЕЛЬ (s_knp=1082_w), ПОКАЗАТЕЛЬ (s_knp=1081_w) >= ПОКАЗАТЕЛЬ (s_knp=1080_w) И ПОКАЗАТЕЛЬ (s_knp=1080_w) >= ПОКАЗАТЕЛЬ (s_knp=1082_w), ПОКАЗАТЕЛЬ (s_knp=1082_w)  >= ПОКАЗАТЕЛЬ (s_knp=1080_w) И ПОКАЗАТЕЛЬ (s_knp=1080_w) >= ПОКАЗАТЕЛЬ(s_knp=1081_w))

((ПОКАЗАТЕЛЬ(s_razrez=3 И s_okved_main=00 И s_okato ИЗ @pril_okato_77_%togs%)-ПОКАЗАТЕЛЬ(s_razrez=45 И s_okved_pure=00)) / ПОКАЗАТЕЛЬ(s_razrez=3 И s_okved_main=00 И s_okato ИЗ @pril_okato_77_%togs%))*100 >= -0.15 И ((ПОКАЗАТЕЛЬ(s_razrez=3 И s_okved_main=00 И s_okato ИЗ @pril_okato_77_%togs%)-ПОКАЗАТЕЛЬ(s_razrez=45 И s_okved_pure=00)) / ПОКАЗАТЕЛЬ(s_razrez=3 И s_okved_main=00 И s_okato ИЗ @pril_okato_77_%togs%))*100 <= 0.15

ВЫБОР($НомерПериода) {
6: ((ПОКАЗАТЕЛЬ()*100) / ПОКАЗАТЕЛЬ(ПЕРИОД (0,-3,0)) - 100) >= -10 И ((ПОКАЗАТЕЛЬ()*100) / ПОКАЗАТЕЛЬ(ПЕРИОД (0,-3,0)) - 100) <=10;
9: ((ПОКАЗАТЕЛЬ()*100) / ПОКАЗАТЕЛЬ(ПЕРИОД (0,-3,0)) - 100) >= -10 И ((ПОКАЗАТЕЛЬ()*100) / ПОКАЗАТЕЛЬ(ПЕРИОД (0,-3,0)) - 100) <=10;
12: ((ПОКАЗАТЕЛЬ()*100) / ПОКАЗАТЕЛЬ(ПЕРИОД (0,-3,0)) - 100) >= -10 И ((ПОКАЗАТЕЛЬ()*100) / ПОКАЗАТЕЛЬ(ПЕРИОД (0,-3,0)) - 100) <=10;
}

((ПОКАЗАТЕЛЬ(s_razrez = 3 И s_okato ИЗ @pril_okato_77_%togs% И s_okved_main ИЗ @pril_okved_13)-ПОКАЗАТЕЛЬ[s_grup_org_50, s_kfs](s_razrez = 87 И s_okato ИЗ @pril_okato_77_%togs% И s_grup_org_50 = 18 И s_kfs=199))/ПОКАЗАТЕЛЬ[s_grup_org_50, s_kfs](s_razrez = 87 И s_okato ИЗ @pril_okato_77_%togs% И s_grup_org_50 = 18 И s_kfs=199))*100 >= -1 И ((ПОКАЗАТЕЛЬ(s_razrez = 3 И s_okato ИЗ @pril_okato_77_%togs% И s_okved_main ИЗ @pril_okved_13)-ПОКАЗАТЕЛЬ[s_grup_org_50, s_kfs](s_razrez = 87 И s_okato ИЗ @pril_okato_77_%togs% И s_grup_org_50 = 18 И s_kfs=199))/ПОКАЗАТЕЛЬ[s_grup_org_50, s_kfs](s_razrez = 87 И s_okato ИЗ @pril_okato_77_%togs% И s_grup_org_50 = 18 И s_kfs=199))*100 <= 1

Примеры расчётов показателей:

ВЫБОР($Тогс) {
71: (ПОКАЗАТЕЛЬ(s_knp=4002 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_han И s_okved_pure ИЗ @pril_okved_43)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8801_h И s_valuetype=1)) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8811_h И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8802_h И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8803_h И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8808_h И s_valuetype=2) + (ПОКАЗАТЕЛЬ(s_knp=4002 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_yam И s_okved_pure ИЗ @pril_okved_43)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8801_y И s_valuetype=1)) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8811_y И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8802_y И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8803_y И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8808_y И s_valuetype=2) + (ПОКАЗАТЕЛЬ(s_knp=4002 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_tum И s_okved_pure ИЗ @pril_okved_43)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8801_t И s_valuetype=1)) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8811_t И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8802_t И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8803_t И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8808_t И s_valuetype=2);
}

ВЫБОР($Тогс) {
71: (ПОКАЗАТЕЛЬ(s_knp=4007 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_han И s_okved_pure ИЗ @pril_okved_43)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8804_h И s_valuetype=1)) + (ПОКАЗАТЕЛЬ(s_knp=4030 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_han И s_okved_pure ИЗ @pril_okved_43) * (ПОКАЗАТЕЛЬ[s_okato](s_knp=8812_h И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8811_h И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8806_h И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8802_h И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8807_h И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8803_h И s_valuetype=1)))/1000 + ПОКАЗАТЕЛЬ[s_okato](s_knp=8809_h И s_valuetype=2) + (ПОКАЗАТЕЛЬ(s_knp=4007 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_yam И s_okved_pure ИЗ @pril_okved_43)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8804_y И s_valuetype=1)) + (ПОКАЗАТЕЛЬ(s_knp=4030 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_yam И s_okved_pure ИЗ @pril_okved_43) * (ПОКАЗАТЕЛЬ[s_okato](s_knp=8812_y И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8811_y И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8806_y И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8802_y И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8807_y И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8803_y И s_valuetype=1)))/1000 + ПОКАЗАТЕЛЬ[s_okato](s_knp=8809_y И s_valuetype=2) + (ПОКАЗАТЕЛЬ(s_knp=4007 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_tum И s_okved_pure ИЗ @pril_okved_43)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8804_t И s_valuetype=1)) + (ПОКАЗАТЕЛЬ(s_knp=4030 И s_tipisvodov=251 И s_razrez = 4 И s_okato ИЗ @pril_okato_tum И s_okved_pure ИЗ @pril_okved_43) * (ПОКАЗАТЕЛЬ[s_okato](s_knp=8812_t И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8811_t И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8806_t И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8802_t И s_valuetype=1) + ПОКАЗАТЕЛЬ[s_okato](s_knp=8807_t И s_valuetype=1)*ПОКАЗАТЕЛЬ[s_okato](s_knp=8803_t И s_valuetype=1)))/1000 + ПОКАЗАТЕЛЬ[s_okato](s_knp=8809_t И s_valuetype=2);
}

ВЫБОР($НомерПериода) {1: СВОД (p_period_number=1 И s_valuetype=4);2: СВОД (p_period_number=2 И s_valuetype=4) - СВОД (p_period_number=1 И s_valuetype=1);3: СВОД (p_period_number=3 И s_valuetype=4 И s_okved_main БЕЗ (03.00.09)) - СВОД (p_period_number=2 И s_valuetype=4);4: СВОД (p_period_number=4 И s_valuetype=4) - СВОД (p_period_number=3 И s_valuetype=4 И s_okved_main БЕЗ (03.00.09));5: СВОД (p_period_number=5 И s_valuetype=4) - СВОД (p_period_number=4 И s_valuetype=4);6: СВОД (p_period_number=6 И s_valuetype=4 И s_okved_main БЕЗ (03.00.09)) - СВОД (p_period_number=5 И s_valuetype=4);7: СВОД (p_period_number=7 И s_valuetype=4) - СВОД (p_period_number=6 И s_valuetype=4 И s_okved_main БЕЗ (03.00.09));8: СВОД (p_period_number=8 И s_valuetype=4) - СВОД (p_period_number=7 И s_valuetype=4);9: СВОД (p_period_number=9 И s_valuetype=4 И s_okved_main БЕЗ (03.00.09)) - СВОД (p_period_number=8 И s_valuetype=4);10: СВОД (p_period_number=10 И s_valuetype=4) - СВОД (p_period_number=9 И s_valuetype=4 И s_okved_main БЕЗ (03.00.09));11: СВОД (p_period_number=11 И s_valuetype=4) - СВОД (p_period_number=10 И s_valuetype=4);12: СВОД (p_period_number=12 И s_valuetype=4 И s_okved_main БЕЗ (03.00.09)) - СВОД (p_period_number=11 И s_valuetype=4);}



1   ...   10   11   12   13   14   15   16   17   ...   21

Похожие:

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на оказание услуг по системному сопровождению...
Приложение описание структуры и функциональности текущей реализации гис статистика 26

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

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

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на выполнение работ по интеграции аппаратно программного...
Апк рц с модернизированной единой системой сбора и обработки статистической информации ивс росстата

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconЕдиная система сбора и обработки статистической информации ивс росстата...
Порядок действий сотрудника организации (Респондента), отчитывающейся в территориальный орган Федеральной службы государственной...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на оказание услуг по техническому сопровождению системы
Предмет оказания услуг: оказание услуг по техническому сопровождению системы гарантированного электропитания комплексной автоматизированной...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на оказание услуг по организации технической...
...

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconРуководство пользователя Лист утверждения
Единая система сбора и обработки статистической информации ивс росстата в части электронного сбора данных

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconРуководство пользователя Лист утверждения
Единая система сбора и обработки статистической информации ивс росстата в части электронного сбора данных

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconРуководство пользователя на on-line модуль подготовки отчётов является...
Единая система сбора и обработки статистической информации ивс росстата в части электронного сбора данных

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

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconИзвещение о проведении запроса предложений в электронном виде на...
Заказчик: Открытое акционерное общество «Электрогорский научно-исследовательский центр по безопасности атомных электростанций» (оао...

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

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание на оказание услуг по развитию функционала действующей...
Сверка справочников нси тоир системы со справочниками Централизованной системы управления нси тоир ОАО «Россети» 6

Техническое задание на оказание услуг по системному сопровождению централизованной системы обработки данных информационно-вычислительной системы Росстата (ивс росстата) iconТехническое задание общие сведения
Оказание услуг по миграции территориально распределённого специализированного программного обеспечения автоматизированной информационной...

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


Руководство, инструкция по применению




При копировании материала укажите ссылку © 2018
контакты
rykovodstvo.ru
Поиск