Перейти к основному содержимому

Настройка форм

Состав форм бюджетирования задаётся одной системной настройкой в формате 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]Неизвестное значение typeanalytic, account, accountProperty или comment
Неизвестное имя аналитики [A]В справочниках нет аналитики с таким именемanalytic у колонки
Неизвестное имя поля аналитики [F]У аналитики нет такого поляЧасть записи Поле@Аналитика слева от @
Аналитика [A] не содержит колонки [C]У аналитики нет такого поляdropdownColumns
Колонка [Комментарий] не может быть колонкой отчёта в форме [X]У колонки comment указан budgetReport или analysisReportУбрать budgetReport и analysisReport у колонки комментария
Не задано ни одной колонки отчёта для формы [X]Открывается вкладка «Бюджет» или «Анализ», а помеченных колонок нетДобавить budgetReport хотя бы одной колонке, для вкладки «Анализ» подходит и analysisReport
Неизвестный тип [T] в настройке инверсии знака отчёта Данные формы [X]Неизвестное значение type в блоке negationanalytic, 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": "Доход"
}
}
}
}
]
}
примечание

Имена аналитик, счетов и значений в этом примере взяты из стандартной поставки. На конкретном стенде они могут называться иначе – сверяйтесь со справочниками своей базы.