Настройка форм
Состав форм бюджетирования задаётся одной системной настройкой в формате JSON. В ней описывается, какие формы появятся в меню «Бюджетирование», из каких колонок они состоят, какой счёт используется по умолчанию, какие строки считаются расходом и в чём показываются суммы.
Чтобы быстро получить рабочую форму, возьмите Минимальный рабочий JSON. Назначение конкретного ключа ищите в разделе Справочник ключей. Если форма ведёт себя не так, как ожидалось, – Ошибки и диагностика.
Набор форм, который ФинГрад использует по умолчанию, приведён в разделе Эталонная настройка целиком. Его удобно взять за основу.
Где хранится настройка
Настройка правится в справочнике «Системные настройки»: строка WEB/BudgetingSettings, поле «Значение».
Настройка одна на базу данных и описывает сразу все формы бюджетирования. Прав на отдельную форму нет: все описанные формы видит любой пользователь, у которого есть доступ к разделу «Бюджетирование». Правами разграничивается доступ к ЦФО и право утверждения бюджета.
Текст должен быть корректным JSON без послаблений: комментарии // и запятая перед закрывающей скобкой недопустимы, имена ключей пишутся в точности как в этой статье, с учётом регистра.
Сохраните значение и обновите страницу (Ctrl+F5). Если JSON правили из десктопного приложения, может потребоваться заново войти в систему.
Что настраивается, а что нет
Настройкой задаются:
- состав форм бюджетирования и их имена в меню;
- счёт формы по умолчанию;
- значение аналитики «Бюджет», в котором хранится план;
- состав, порядок и заголовки колонок;
- обязательность колонок и их закрепление слева;
- состав колонок вкладки «Бюджет»;
- состав колонок вкладки «Анализ»;
- правило инверсии знака сумм;
- ограничение формы одним значением аналитики или свойства счёта;
- формат чисел – рубли или тысячи.
Настройкой не задаются:
- набор вкладок;
- перечень сценариев бюджетирования;
- состав плоскостей (план, факт, отклонение) и годы;
- фильтр по ЦФО;
- ширина колонок;
- права доступа.
Вкладок всегда четыре: «Бюджет», «Анализ», «Данные» и «Утверждено». Сценариев пять: «+ 12», «Год», «3 + 9», «6 + 6» и «9 + 3». И то, и другое задано в самом ФинГраде. В справочнике «Период бюджетирования» обязаны существовать значения ровно с этими пятью названиями; новое значение в справочнике нового сценария не создаёт.
Минимальный рабочий JSON
{
"numberFormat": "Default",
"forms": [
{
"caption": "БДДС",
"defaultAccount": "Денежные средства",
"budget": "План",
"frozenColumnsCount": 2,
"columns": [
{ "type": "analytic", "analytic": "ЦФО", "budgetReport": true },
{ "type": "analytic", "analytic": "Статья ДДС", "budgetReport": true },
{ "type": "comment" }
],
"tabs": {
"data": {
"negation": {
"type": "analytic",
"analytic": "Вид движения@Статья ДДС",
"value": "Платежи"
}
}
}
}
]
}
Где:
numberFormat– формат сумм:Default(рубли) илиThousands(тысячи);forms– формы бюджетирования, каждая станет отдельным пунктом меню;caption– имя формы;defaultAccount– счёт или группа счетов, из которой выбираются счета формы;budget– значение аналитики «Бюджет», в котором хранится план;frozenColumnsCount– сколько колонок закрепить слева;columns– колонки формы;tabs.data.negation– правило, по которому строка считается расходом.
Обязательность ключей:
| Ключ | Обязателен | Если не указать |
|---|---|---|
forms | да | Раздел «Бюджетирование» не появляется в меню |
columns | да | Форма не открывается |
caption | да | Форму нельзя открыть |
defaultAccount | да | Ошибка «Не задан счёт для формы [X]» |
numberFormat | нет | Суммы показываются в рублях |
budget | нет | Используется значение «План» |
frozenColumnsCount | нет | Колонки закрепляются по обязательности, см. Закрепление колонок слева |
tabs | нет | Все суммы показываются как есть, без инверсии знака |
constraints | нет | Форма видит все данные ветви счетов defaultAccount по выбранному ЦФО |
Справочник ключей
Полный перечень ключей по уровням вложенности. Рецепты ссылаются на этот раздел и не повторяют его.
Корень настройки
| Ключ | Тип | Назначение |
|---|---|---|
forms | массив объектов | Формы бюджетирования. Порядок в массиве задаёт порядок пунктов меню. |
numberFormat | строка | Default – суммы в рублях, Thousands – в тысячах. Сравнивается с учётом регистра: thousands строчными буквами равносильно Default. |
Если колонки «ЦФО» нет в columns, она добавится скрытой: значение по ней учитывается, но на экране колонки не будет. На вкладку «Бюджет» такая скрытая колонка не попадает. Фильтр по ЦФО в панели инструментов есть всегда, от состава колонок он не зависит.
Форма
| Ключ | Тип | Назначение |
|---|---|---|
caption | строка | Имя формы. Показывается в меню «Бюджетирование» и подставляется в адрес страницы. Должно быть уникальным. |
defaultAccount | строка | Имя счёта или группы счетов. Задаёт ветвь плана счетов: из неё читаются данные формы и из неё же выбираются счета в колонке типа account. Если такой колонки на форме нет, данные записываются на сам этот счёт. |
budget | строка | Значение аналитики «Бюджет», в котором хранится план формы. Если ключ не указан или значение не найдено, используется «План». |
columns | массив объектов | Колонки формы, см. Колонка. |
frozenColumnsCount | число | Сколько колонок закрепить слева, см. Закрепление колонок слева. |
tabs | объект | Настройки отдельных вкладок. Сейчас в нём задаётся только инверсия знака – tabs.data.negation, tabs.budget.negation и tabs.analysis.negation, см. Инверсия знака. |
constraints | массив объектов | Ограничения формы по значению аналитики или свойства счёта, см. Ограничения формы. |
Колонка
"columns": [
{ "type": "analytic", "analytic": "ЦФО", "budgetReport": true },
{ "type": "analytic", "analytic": "Контрагент", "dropdownColumns": [ "Наименование", "ИНН" ] },
{ "type": "analytic", "analytic": "Вид движения@Статья ДДС", "optional": true },
{ "type": "accountProperty", "analytic": "Вид направления", "name": "Вид движения" },
{ "type": "account" },
{ "type": "comment" }
]
| Ключ | Тип | Назначение |
|---|---|---|
type | строка | Тип колонки, см. таблицу ниже. Регистр не важен. |
analytic | строка | Имя аналитики. Нужен для типов analytic и accountProperty. |
name | строка | Заголовок колонки, если он должен отличаться от имени аналитики. |
optional | логический | true – колонку можно не заполнять. По умолчанию false. |
dropdownColumns | массив строк | Состав колонок выпадающего списка выбора значения. |
budgetReport | логический | true – колонка выводится на вкладке «Бюджет», см. Вкладка «Бюджет». По умолчанию false. |
analysisReport | логический | true – колонка выводится на вкладке «Анализ», см. Вкладка «Анализ». По умолчанию false. |
Типы колонок:
type | Что это |
|---|---|
analytic | Значение аналитики, указанной в analytic. |
account | Счёт. Ключ analytic не нужен. Заголовок по умолчанию – «Счёт», его меняет ключ name. Выбор ограничен листовыми счетами ветви defaultAccount, сама группа-корень в списке не показывается. |
accountProperty | Свойство счёта. Значение не вводится вручную, а выводится из выбранного счёта. |
comment | Комментарий строки. Заголовок по умолчанию – «Комментарий», его меняет ключ name. Текст не связан со справочниками и сохраняется в комментарии проводки. |
Запись Поле@Аналитика в ключе analytic выводит не саму аналитику, а её поле:
{ "type": "analytic", "analytic": "Вид движения@Статья ДДС" }
Где:
Вид движения– имя поля аналитики;Статья ДДС– имя самой аналитики.
Такая колонка заполняется автоматически по выбранному значению аналитики и вручную не редактируется.
Ключ dropdownColumns задаёт, какие поля аналитики показывать в выпадающем списке выбора значения. Если в списке указано имя самой аналитики, её значение встаёт на соответствующее место; если не указано – в списке показываются только перечисленные поля:
{
"type": "analytic",
"analytic": "Контрагент",
"dropdownColumns": [ "Наименование", "ИНН", "КПП" ]
}
Закрепление колонок слева
Если frozenColumnsCount задан, закрепляются ровно первые N видимых колонок, независимо от их обязательности.
Если ключ не задан, закрепление идёт слева направо, пока колонки обязательные. Первая необязательная колонка обрывает цепочку, и все колонки правее уже не закрепляются, даже если они обязательные. Скрытые колонки не учитываются.
Число действует на вкладках «Данные», «Бюджет» и «Анализ»: на вкладке «Данные» оно отсчитывается по видимым колонкам формы, на вкладках «Бюджет» и «Анализ» – по колонкам отчёта.
Задавайте frozenColumnsCount явно. Иначе снятие обязательности у одной колонки меняет прокрутку всей формы.
Инверсия знака
По умолчанию суммы показываются так, как они хранятся в базе. Блок negation указывает, какие строки считать расходом: их суммы отображаются с противоположным знаком и с противоположным знаком же записываются в базу.
Блок задаётся отдельно для каждой вкладки – tabs.data для вкладки «Данные», tabs.budget для вкладки «Бюджет» и tabs.analysis для вкладки «Анализ»:
"tabs": {
"data": {
"negation": {
"type": "analytic",
"analytic": "Вид движения@Статья ДДС",
"value": "Платежи"
}
}
}
| Ключ | Тип | Назначение |
|---|---|---|
type | строка | Откуда берётся признак: analytic, accountProperty или account. |
analytic | строка | Имя аналитики или запись Поле@Аналитика. Для типа account не нужен. |
value | строка | Значение, при котором строка считается расходом. Для типа account – имя счёта. |
allValues | логический | true – расходом считаются все строки формы. |
columnTotals | логический | Меняет знак итогов в нижней строке, см. ниже. |
Правила:
- колонка-источник признака обязана быть выведена на форму. Для типа
accountэто колонка «Счёт»; для типаaccountProperty– колонка «Счёт» либо колонка той же аналитики, объявленная какaccountProperty(колонка типаanalyticс тем же именем источником не является); - для типа
accountPropertyаналитика обязана быть свойством счёта; - при
allValuesсо значениемtrueключиtype,analyticиvalueне читаются, аcolumnTotalsпродолжает действовать; - если
tabs.budget.negationне задан, вкладка «Бюджет» работает по правилу вкладки «Данные»; - если
tabs.analysis.negationне задан, вкладка «Анализ» работает по правилу вкладки «Бюджет», а если не задан иtabs.budget.negation– по правилу вкладки «Данные».
Итоги в нижней строке считаются по исходным суммам, без построчной инверсии, поэтому у формы с расходами они по знаку не совпадают со строками. Ключ columnTotals со значением true меняет знак всей нижней строки на противоположный. Сами строки и колонка «Итого» при этом не меняются.
Ограничения формы
Ограничение сужает данные формы до одного значения аналитики проводки или свойства счёта либо до данных, где это значение не задано, – например, чтобы форма не видела корректировки, которые вносятся другой формой. Ограничение задаётся сразу на всю форму, выводить колонку под него не нужно.
"constraints": [
{ "type": "analytic", "analytic": "Передача затрат", "empty": true },
{ "type": "accountProperty", "analytic": "Раздел I БК", "value": "5 Прочие затраты" }
]
| Ключ | Тип | Назначение |
|---|---|---|
type | строка | Что ограничивается: analytic – аналитика проводки, accountProperty – свойство счёта. Обязателен, регистр не важен. |
analytic | строка | Имя аналитики. Обязателен. Запись Поле@Аналитика здесь не поддерживается. |
value | строка | Значение аналитики, которым ограничена форма. |
empty | логический | true – форма ограничена данными, где значение аналитики не задано. |
Задаётся ровно одно из двух: value или empty со значением true. "empty": false равносильно отсутствию ключа, поэтому вместе с value допустимо.
Ограничение по аналитике проводки (analytic):
- на вкладках «Данные», «Бюджет» и «Анализ» – в плане и в факте – форма видит только проводки с указанным значением аналитики, а при
empty– только проводки без значения; - в новые проводки формы значение записывается само;
- колонку этой аналитики выводить можно: в новой строке она заполняется значением ограничения и вручную не редактируется;
- колонку поля этой аналитики (
Поле@Аналитика) выводить нельзя, как и выводить саму аналитику в колонки (inColumns); - аналитика должна участвовать в проводках.
Ограничение по свойству счёта (accountProperty):
- форма видит только данные счетов, у которых свойство равно указанному значению, а при
empty– счетов без этого свойства; - в колонке «Счёт» можно выбрать только такие счета. Счёт, у которого свойство другое или не задано, подсвечивается ошибкой
Счёт "S" не подходит форме: его свойство "A" должно быть "V"и не сохраняется. Приemptyсписок счетов не сужается, а счёт с заданным свойством отклоняется ошибкойСчёт "S" не подходит форме: его свойство "A" должно быть не задано; - в проводку значение не записывается – его задаёт счёт;
- колонка
accountPropertyэтой аналитики в новой строке заполняется значением ограничения; - аналитика должна быть свойством счёта;
- если колонки «Счёт» на форме нет, данные записываются на счёт
defaultAccount, поэтому он сам обязан подходить под ограничение.
Общие правила:
- по одной аналитике – одно ограничение;
- ограничить форму по аналитикам «Бюджет» и «ЦФО» нельзя: их значения задаёт сама форма;
- инверсия знака не может зависеть от аналитики ограничения того же типа – значение у неё на форме одно;
- у аналитики, значения которой хранятся прямо в проводке, а не в справочнике (например, типа «Виза» или «Файл»), задаётся только
empty.
Ограничение accountProperty отбирает данные по значению свойства, которое у счёта сейчас. Если свойство счёта поменять, его прежние данные пропадут из формы, хотя проводки останутся в базе.
Вкладка «Бюджет»
Вкладка «Бюджет» показывает те же данные, свёрнутые до нескольких колонок. Колонка попадает на неё, только если у неё указано budgetReport:
{ "type": "analytic", "analytic": "ЦФО", "budgetReport": true }
Строки, различающиеся только непомеченными колонками, на вкладке объединяются в одну.
- колонка типа
commentколонкой отчёта быть не может; - если ни у одной колонки нет
budgetReportсо значениемtrue, вкладка открывается с ошибкой; - выпадающие списки на вкладке не используются, данные доступны только для чтения;
- собственное правило знака задаётся в
tabs.budget.negation, см. Инверсия знака.
Вкладка «Анализ»
Вкладка «Анализ» сводит строки так же, как вкладка «Бюджет», но по своему набору колонок. Колонка попадает на неё, если у неё указано analysisReport:
{ "type": "analytic", "analytic": "ЦФО", "analysisReport": true }
- если хотя бы у одной колонки указано
analysisReportсо значениемtrue, состав вкладки задаётся только этим ключом, аbudgetReportне учитывается; - если
analysisReportсо значениемtrueнет ни у одной колонки, вкладка берёт колонки сbudgetReport; - колонка типа
commentколонкой отчёта быть не может; - если колонок отчёта не нашлось ни по
analysisReport, ни поbudgetReport, вкладка открывается с ошибкой; - собственное правило знака задаётся в
tabs.analysis.negation, см. Инверсия знака.
Рецепты
Готовые фрагменты для типовых правок. Назначение ключей – в разделе Справочник ключей.
Новая форма в меню
Добавьте объект в массив forms:
{
"caption": "Capex годовой",
"defaultAccount": "Денежные средства",
"frozenColumnsCount": 3,
"columns": [
{ "type": "analytic", "analytic": "Филиал", "budgetReport": true },
{ "type": "analytic", "analytic": "ЦФО", "budgetReport": true },
{ "type": "analytic", "analytic": "Проект", "budgetReport": true },
{ "type": "comment" }
]
}
Форма появится в меню «Бюджетирование» после обновления страницы.
Колонка со свойством счёта
{ "type": "accountProperty", "analytic": "Вид направления", "name": "Вид движения" }
Аналитика обязана быть свойством счёта. Значение подставляется по счёту строки, поэтому колонку имеет смысл выводить вместе с колонкой { "type": "account" }. Вручную она не редактируется, ключ optional у неё не читается – колонка всегда необязательная.
Расход по значению аналитики
"tabs": {
"data": {
"negation": { "type": "analytic", "analytic": "Вид движения@Статья ДДС", "value": "Платежи" }
}
}
Строка считается расходом, если поле «Вид движения» её статьи ДДС равно «Платежи». На форме должна быть выведена колонка «Статья ДДС» либо колонка поля «Вид движения@Статья ДДС».
Расход по свойству счёта
"tabs": {
"data": {
"negation": { "type": "accountProperty", "analytic": "Вид направления", "value": "Доход" }
}
}
Строка считается расходом, если свойство «Вид направления» её счёта равно «Доход». На форме должна быть выведена колонка { "type": "account" } либо колонка { "type": "accountProperty", "analytic": "Вид направления" }.
Все строки – расход
"tabs": {
"data": {
"negation": { "allValues": true }
}
}
Подходит формам, где расходной является вся форма целиком.
Форма без корректировок
"constraints": [
{ "type": "analytic", "analytic": "Передача затрат", "empty": true }
]
Форма видит и сохраняет только проводки без значения аналитики «Передача затрат». Корректировки вводятся отдельной формой с тем же счётом и ограничением { "type": "analytic", "analytic": "Передача затрат", "value": "да" }: в её новые строки значение «да» записывается само.
Форма одного раздела счетов
"constraints": [
{ "type": "accountProperty", "analytic": "Раздел I БК", "value": "5 Прочие затраты" }
]
Форма видит только счета, у которых свойство «Раздел I БК» равно «5 Прочие затраты», и в новой строке можно выбрать только их. Выведите на форму колонку { "type": "account" }: без неё новые строки записываются на счёт defaultAccount, и он сам должен относиться к этому разделу.
Суммы в тысячах и закреплённые колонки
Показаны только два ключа – остальные ключи корня и формы при этом остаются на месте.
{
"numberFormat": "Thousands",
"forms": [
{ "caption": "БДДС", "frozenColumnsCount": 4 }
]
}
Формат чисел задаётся один раз в корне настройки и действует на все формы. Число закреплённых колонок задаётся у каждой формы отдельно.
Ошибки и диагностика
Сообщения об ошибках настройки
Настройка разобрана, но описывает форму, которую нельзя построить. При открытии формы текст сообщения попадает в журнал приложения, а на экране показывается «БДДС: возникла ошибка при загрузке данных». При переключении вкладок, сохранении и импорте сообщение выводится текстом как есть.
| Сообщение | Причина | Что править |
|---|---|---|
Форма не найдена | В настройке нет формы с таким именем | caption формы |
Не задан счёт для формы [X] | Не указан счёт формы | defaultAccount |
В БД нет счета с именем 'X'. | В плане счетов нет счёта с таким именем | defaultAccount |
Неизвестный тип [T] для колонки [C] | Неизвестное значение type | analytic, account, accountProperty или comment |
Неизвестное имя аналитики [A] | В справочниках нет аналитики с таким именем | analytic у колонки |
Неизвестное имя поля аналитики [F] | У аналитики нет такого поля | Часть записи Поле@Аналитика слева от @ |
Аналитика [A] не содержит колонки [C] | У аналитики нет такого поля | dropdownColumns |
Колонка [Комментарий] не может быть колонкой отчёта в форме [X] | У колонки comment указан budgetReport или analysisReport | Убрать budgetReport и analysisReport у колонки комментария |
Не задано ни одной колонки отчёта для формы [X] | Открывается вкладка «Бюджет» или «Анализ», а помеченных колонок нет | Добавить budgetReport хотя бы одной колонке, для вкладки «Анализ» подходит и analysisReport |
Неизвестный тип [T] в настройке инверсии знака отчёта Данные формы [X] | Неизвестное значение type в блоке negation | analytic, account или accountProperty |
Не задана аналитика инверсии знака отчёта Данные для формы [X] | В блоке negation не указана аналитика | analytic в блоке negation |
Не задано значение инверсии знака отчёта Данные для формы [X] | В блоке negation не указано значение | value в блоке negation |
Аналитика [A] не является свойством счёта | В блоке negation с типом accountProperty указана аналитика, не являющаяся свойством счёта. В скобках – имя аналитики из справочника, для записи Поле@Аналитика – её часть после @ | type или analytic в блоке negation |
Для инверсии знака по счёту на форме [X] должна быть выведена колонка [Счёт] | В блоке negation тип account, а колонки «Счёт» на форме нет | Добавить колонку типа account |
Для инверсии знака аналитика [A] должна быть выведена на форму [X] | В блоке negation тип analytic, а колонки этой аналитики на форме нет | Добавить колонку этой аналитики |
Для инверсии знака по свойству счёта [A] на форме [X] должна быть выведена колонка [Счёт] или колонка [B] | В блоке negation тип accountProperty, а на форме нет ни колонки «Счёт», ни колонки этой аналитики | Добавить колонку типа account либо колонку типа accountProperty |
Не задана аналитика ограничения формы [X] | У ограничения не указана аналитика | analytic в constraints |
Тип ограничения по аналитике [A] формы [X] задаётся значением [analytic] или [accountProperty] | У ограничения не указан type или указано другое значение | type в constraints |
Ограничение по аналитике [A] формы [X] задаётся либо значением [value], либо признаком [empty] | Указаны и value, и empty, либо ни одного из них | value или empty в constraints |
Неизвестное имя аналитики [A] в ограничениях формы [X] | В справочниках нет аналитики с таким именем | analytic в constraints |
Аналитика [A] повторяется в ограничениях формы [X] | Два ограничения по одной аналитике | Оставить одно ограничение |
Форму [X] нельзя ограничить по аналитике [A]: её значение задаёт сценарий | Ограничение по аналитике «Бюджет». Для «ЦФО» текст заканчивается на «её значение задаёт ЦФО формы» | Убрать ограничение |
Аналитика [A] ограничения формы [X] удалена | Аналитика удалена из справочника | analytic в constraints |
Аналитика [A] ограничения формы [X] не является свойством счёта | Тип accountProperty, а аналитика не является свойством счёта | type или analytic в constraints |
Аналитика [A] ограничения формы [X] не может участвовать в проводках | Тип analytic, а аналитика скрыта и в проводках не хранится | type в constraints или настройки аналитики |
Аналитика [A] ограничения формы [X] не может выводиться в колонке [C]: у неё на форме одно значение | Тип analytic, а на форму выведено поле аналитики ограничения (Поле@Аналитика) или сама аналитика выведена в колонки (inColumns) | Убрать колонку или inColumns |
Инверсия знака формы [X] не может зависеть от аналитики [A] ограничения формы: её значение на форме одно | Блок negation того же типа ссылается на аналитику ограничения или её поле | Блок negation или ограничение |
Ограничение по аналитике [A] формы [X] задаётся только признаком [empty] | Значение задано для аналитики, значения которой хранятся прямо в проводке | Заменить value на "empty": true |
Не найдено значение [V] аналитики [A] ограничения формы [X] | У аналитики нет такого значения | value в constraints |
Значение [V] аналитики [A] ограничения формы [X] удалено | Значение удалено из справочника | value в constraints |
Счёт [S] формы [X] не подходит под ограничение по свойству [A]: колонки счёта на форме нет, и новые строки записываются на этот счёт | Тип accountProperty, на форме нет колонки «Счёт», а свойство счёта defaultAccount не подходит под ограничение: при value – другое или не задано, при empty – задано | Добавить колонку типа account либо сменить defaultAccount |
В справочнике 'Период бюджетирования' отсутствует период '[П]' | Это не про JSON: в справочнике нет значения с нужным названием. [П] – первое из недостающих названий + 12, Год, 3 + 9, 6 + 6, 9 + 3 | Справочник «Период бюджетирования» |
Три сообщения про инверсию знака существуют в трёх вариантах: для tabs.data.negation в тексте стоит «отчёта Данные», для tabs.budget.negation – «отчёта Бюджет», для tabs.analysis.negation – «отчёта Анализ». Например: Не задано значение инверсии знака отчёта Бюджет для формы [БДДС].
Проверка перед сохранением
- нет комментариев и нет запятой перед закрывающей скобкой;
- присутствуют массивы
formsиcolumnsу каждой формы; - у каждой формы заданы
captionиdefaultAccount; - имена аналитик и полей совпадают со справочниками;
- колонки-источники инверсии знака выведены на форму;
- у каждого ограничения в
constraintsзаданыtype,analyticи одно из двух –valueили"empty": true; - есть хотя бы одна колонка с
budgetReport, если нужна вкладка «Бюджет»; - есть хотя бы одна колонка с
analysisReportилиbudgetReport, если нужна вкладка «Анализ»; numberFormatнаписан какThousands, если суммы нужны в тысячах.
Эталонная настройка целиком
Набор форм, который ФинГрад использует, пока своя настройка не задана. В нём показаны все типы колонок, выпадающие списки, колонки отчёта и инверсия знака двух видов.
{
"numberFormat": "Thousands",
"forms": [
{
"caption": "БДДС",
"budget": "План",
"frozenColumnsCount": 4,
"columns": [
{ "type": "analytic", "analytic": "ЦФО", "budgetReport": true },
{ "type": "analytic", "analytic": "Статья ДДС", "budgetReport": true },
{ "type": "analytic", "analytic": "Юр. лицо", "budgetReport": true },
{ "type": "analytic", "analytic": "Вид движения@Статья ДДС", "optional": true, "budgetReport": true },
{ "type": "comment" }
],
"defaultAccount": "Денежные средства",
"tabs": {
"data": {
"negation": {
"type": "analytic",
"analytic": "Вид движения@Статья ДДС",
"value": "Платежи"
}
}
}
},
{
"caption": "PL годовой",
"columns": [
{ "type": "analytic", "analytic": "ЦФО", "budgetReport": true },
{ "type": "account", "budgetReport": true },
{ "type": "analytic", "analytic": "Юр. лицо", "budgetReport": true },
{
"type": "analytic",
"analytic": "Контрагент",
"dropdownColumns": [ "Наименование", "ИНН", "КПП" ],
"budgetReport": true
},
{
"type": "analytic",
"analytic": "Договор",
"dropdownColumns": [ "Номер договора" ],
"budgetReport": true
},
{
"type": "accountProperty",
"analytic": "Вид направления",
"name": "Вид движения",
"budgetReport": true
}
],
"defaultAccount": "Прибыли и Убытки",
"tabs": {
"data": {
"negation": {
"type": "accountProperty",
"analytic": "Вид направления",
"value": "Доход"
}
}
}
}
]
}
Имена аналитик, счетов и значений в этом примере взяты из стандартной поставки. На конкретном стенде они могут называться иначе – сверяйтесь со справочниками своей базы.