Версия: 2.1 🚧
Журнал изменений
2.0.0 (2026-09-08)
Изменение ограничения числа строк
Если вы используете Override row limit, Microsoft больше не гарантирует получение дополнительных данных сверх начального набора при экспорте визуала в PDF или PowerPoint. Эта возможность рекомендуется только для просмотра отчётов.
Чтобы дать авторам более высокий начальный предел, ограничение исходного набора данных увеличено до максимальных 30 000 строк, которые могут запросить пользовательские визуалы.
Новый конвейер разбора и отрисовки
С самого начала разбор спецификации и встраивание результата в Deneb строились по принципу «лишь бы удалось запустить это в Power BI». Это было одним из слабых мест архитектуры. В этом обновлении весь процесс — от передачи спецификации до встраивания результата — переписан и оптимизирован.
Вместе с архитектурными улучшениями версии 1.9 это открывает путь к возможностям, которые раньше было трудно реализовать без дальнейшего усложнения системы. Некоторые из них уже вошли в этот выпуск. Ниже описаны остальные изменения.
Параметры полей
Поддержку параметров полей было непросто реализовать. Идея решения существовала давно, но требовала изменений API визуалов Power BI и подготовки обработки данных в Deneb. Поэтому пользователи некоторое время применяли обходные решения, которые официально не поддерживались. Разработчики стремятся помочь с этой задачей насколько возможно.
- Когда столбцы или меры, относящиеся к параметру полей, добавлены в роль данных Values, Deneb может объединить их в один столбец с массивами значений, названный по имени параметра. Дополнительно доступны вспомогательные поля имён, строк форматирования и состояния перекрёстного выделения.
- Объединение управляется переключателем Consolidate field parameters в разделе Semantic model integration панели Project setup. Для новых проектов оно включено по умолчанию.
- В проектах, перенесённых из более ранних версий, оно по умолчанию выключено, чтобы сохранить совместимость с существующими обходными решениями. Его можно включить в любой момент.
- Для отдельного поля доступен переключатель Treat as field parameter, позволяющий пометить обычный столбец или меру как параметр.
- Это полезно для совместимости с шаблонами или проверки преобразований
flattenна данных, не являющихся параметрами. - Шаблоны учитывают новую структуру: если обычное поле назначено позиции, экспортированной как параметр, этот флаг и объединение включаются автоматически. Преобразования спецификации продолжают работать без ручной настройки.
- Это полезно для совместимости с шаблонами или проверки преобразований
- Автодополнение в редакторе JSON теперь предлагает вспомогательные поля, включённые для каждой записи набора данных, например
__names,__highlightи__format. Так их легче находить при создании спецификации.
Подробности приведены на отдельной странице «Параметры полей».
Настройка вспомогательных полей
До сих пор Deneb активно добавлял вспомогательные поля в набор данных по заранее определённым правилам. Они включают значения для управления состоянием выбора, форматирования и перекрёстного выделения.
Пользователи часто просили дать разработчикам возможность управлять этими полями, особенно в сложных случаях, когда они не нужны и создают лишний шум при отладке или преобразовании данных. Теперь можно выбирать вспомогательные поля для каждого исходного поля отдельно, а также при необходимости включать строки форматирования и отформатированные значения для столбцов.

Основной раздел документации набора данных дополнен подробностями. Ниже кратко описано поведение новых проектов.
По умолчанию действуют следующие настройки. «Недоступно» означает, что этот тип поля не может иметь соответствующего вспомогательного поля.
| Вспомогательное поле | Столбец | Мера | Параметр полей |
|---|---|---|---|
| Значение выделения | Недоступно | Включено * | Выключено * |
| Состояние выделения | Недоступно | Выключено * | Выключено * |
| Сравнение с выделенным значением | Недоступно | Выключено * | Выключено * |
| Строка форматирования | Выключено | Выключено | Выключено |
| Отформатированное значение | Выключено | Выключено | Выключено |
| Имена полей | Недоступно | Недоступно | Выключено |
| Рассматривать как параметр полей | Выключено † | Выключено † | Недоступно |
* Видно только при включённом перекрёстном выделении.
† Видно только при включённом объединении параметров полей. Позволяет вручную пометить обычный столбец или меру как параметр полей.
- Каждое вспомогательное поле включается отдельно в своей строке дерева.
- Маленькая цветная точка в заголовке поля означает, что оно создаёт хотя бы одно вспомогательное поле в наборе данных — по умолчанию или в результате явной настройки.
- Кнопка Reset в заголовке поля доступна только после явной настройки этого поля. Она удаляет такую настройку и возвращает значения по умолчанию из таблицы выше.

Если настройка вспомогательных полей не соответствует настройкам перекрёстного выделения, строка сообщений панели Settings показывает два вида предупреждений:
- Перекрёстное выделение включено, но ни у одной меры не выбрано вспомогательное поле выделения: визуал не получит выделенные значения для визуального кодирования.
- Перекрёстное выделение выключено, но хотя бы у одной меры выбрано вспомогательное поле выделения: эта настройка избыточна и не даст видимого результата.
Непрерывное представление
Раньше любые внешние изменения на странице отчёта, влияющие на набор данных Deneb, — срезы, перекрёстная фильтрация другими визуалами, изменения панели фильтров — вызывали полную повторную отрисовку и каждый раз сбрасывали представление в начальное состояние. Новый конвейер разбора и отрисовки позволил реализовать давно запрашиваемую возможность: непрерывное представление, сохраняющее состояние при обновлениях подходящего набора данных.
Когда эта возможность включена, Deneb обновляет данные в существующем представлении Vega вместо повторной компиляции спецификации. Сохраняются:
- Текущее состояние представления: масштаб, сдвиг, страница фасетов и всё остальное, управляемое сигналами Vega.
- Введённые пользователем значения: сигналы, привязанные к элементам формы — спискам, ползункам и т. п., — сохраняют выбранные значения.
- Состояние выбора: выбранные до обновления примитивы остаются выбранными, пока их записи присутствуют в новых данных.
Возможность обновления определяется двумя условиями:
- Число строк. Обновление существующего представления рассчитано на не слишком большие наборы данных. По умолчанию предел составляет 500 строк и может быть увеличен до жёсткого ограничения 5 000 строк. При превышении этого ограничения основной поток не может безопасно выполнять такие обновления, и производительность заметно ухудшилась бы. При превышении настроенного или максимального предела Deneb возвращается к обычной повторной компиляции и инициализации.
- Совместимость спецификации. Некоторые структуры спецификаций, например преобразования
forceс агрегированием, нельзя надёжно обновлять таким способом. В этом случае Deneb также выполняет полную повторную компиляцию и записывает причину в панель Logs.
Поскольку у этой возможности есть особенности, которые нужно учитывать, она выключена по умолчанию. Включить её можно параметром Enable patching for hosted datasets раздела Continuous view на панели Project setup. Там же отображается, активно или неактивно такое обновление для текущего набора данных: вы сразу видите, обновляется ли существующее представление или выполняется повторная компиляция.
Дополнительные рекомендации приведены в разделе «Набор данных».
Canvas: масштабирование с учётом масштаба отчёта
При работе с большими наборами данных отрисовка Vega через Canvas даёт существенные преимущества в производительности по сравнению с SVG. Но у неё есть недостатки: растровое изображение не подстраивается под масштаб отчёта и при увеличении может выглядеть размытым.
Теперь при выборе средства отрисовки Canvas доступен параметр Scale to report zoom level. По умолчанию он выключен:

При включении Deneb использует текущий масштаб отчёта или предварительного просмотра для расчёта подходящего масштаба отрисовки. Это не даёт полного соответствия чёткости SVG, но заметно улучшает качество отображения при разных масштабах.
Просмотр и преобразование скомпилированной Vega
Одна из полезных возможностей Vega Editor — просмотр сгенерированной спецификации Vega при работе с Vega-Lite прямо в интерфейсе. Это помогает научиться «мыслить в Vega» и сразу использовать результат как основу спецификации Vega, без начала работы с нуля. Пользователи давно просили добавить эту возможность в Deneb; новый конвейер разбора позволил её реализовать.
Как и в Vega Editor, это действие необратимо: текущая спецификация заменяется сгенерированной спецификацией Vega. Перед преобразованием рекомендуется сохранить копию спецификации Vega-Lite, чтобы при необходимости вернуться к ней.
Подробнее о возможности и её использовании — в документации редактора визуала.
Улучшенное управление контекстным меню
Deneb теперь предоставляет два уровня управления контекстным меню Power BI, вызываемым правой кнопкой мыши. Обе настройки по умолчанию включены, сохраняя прежнее поведение:
- Show context menu on right-click: определяет, показывается ли контекстное меню Power BI при щелчке правой кнопкой мыши.
- При выключении события правой кнопки мыши обрабатываются без вывода меню.
- Это позволяет использовать правую кнопку мыши в собственных обработчиках событий Vega и Vega-Lite, не вызывая меню Power BI.
- Attempt to resolve data point-specific actions: если контекстное меню включено, определяет, пытается ли Deneb сопоставить выбранную точку данных для детализации (drill-through) и других действий меню, связанных с данными.
- Настройка доступна только при включённом контекстном меню.
Обе настройки переносятся через шаблоны (см. ниже).
Выключение меню не препятствует использованию событий контекстного меню из представления Vega. Например, собственное контекстное меню, созданное в Vega, продолжит работать ожидаемым образом.
Раздельный просмотр исходных данных и наборов Vega
Раньше панель отладки объединяла исходные данные — обработанные Deneb и переданные в Vega — и наборы, созданные Vega, в одном представлении с раскрывающимся списком. Различие было не всегда очевидным, что затрудняло отладку входных и выходных данных. Теперь они разделены на вкладки:
- Source: набор данных, переданный Deneb в Vega, до преобразований Vega, со всеми вспомогательными полями. Эта вкладка открывается по умолчанию: обычно с неё удобнее начинать проверку полей и настроек вспомогательных полей.
- Data: именованные наборы данных, созданные представлением Vega после преобразований. Для их выбора по-прежнему используется существующий список.
Вкладки независимы: каждая сохраняет сортировку столбцов и текущую страницу при переключении.
Новое сочетание [Ctrl + Alt + 6] открывает вкладку Source. Сочетания для Data ([Ctrl + Alt + 7]), Signals ([Ctrl + Alt + 8]) и Logs ([Ctrl + Alt + 9]) не изменились.
Панель отладки получила и другие улучшения:
- Подсказки вкладок содержат описание назначения и сочетание клавиш.
- При быстрых обновлениях данных — менее 150 мс — больше нет мерцания индикатора загрузки.
- Улучшена доступность: вкладки предоставляют подходящие атрибуты
aria, позволяющие вспомогательным технологиям обнаруживать сочетания клавиш. Контейнер загрузки сообщаетaria-busy, пока задача обработки выполняется.
Обновлённые устройство и поведение описаны в разделе «Панель отладки».
Изменения внутренних сигналов
Изменения конвейера разбора и отрисовки позволили пересмотреть имена внутренних сигналов, обеспечивающих работу Deneb и интеграцию с Power BI. Теперь их префиксы должны отражать назначение.
Старые сигналы с префиксом pbi объявлены устаревшими. Для сохранения работоспособности Deneb сопоставляет их с новыми сигналами при разборе спецификации. В журнале появляется предупреждение с рекомендацией перейти к именам с префиксом deneb, например:

Рекомендуется при первой возможности обновить спецификации. Соответствия приведены в таблице:
| Имя сигнала | Замена при переносе |
|---|---|
pbiContainer |
denebContainer |
pbiContainerHeight |
denebContainer.height |
pbiContainerWidth |
denebContainer.width |
$schema: предупреждение и быстрое исправление
Спецификация, созданная или найденная вне Deneb, может обоснованно содержать свойство $schema: оно важно для проверки спецификаций Vega и Vega-Lite.
Но в контексте Deneb это мешает работе. Редактор пытается загрузить схему по указанному URL, что невозможно в сертифицированном визуале Power BI, где внешние запросы запрещены. В результате не работают автодополнение, встроенная документация и проверка спецификации.
Для соответствия спецификации языка Deneb добавляет подходящий URL $schema при экспорте шаблона и удаляет его при импорте через диалог Create new specification. Однако содержимое, вставленное в редактор JSON, автоматически не изменяется. Раньше это недостаточно подробно объяснялось в документации; раздел обновлён, чтобы лучше описать такое поведение.
В этом выпуске предупреждение стало заметнее. Его подробности можно прочитать при наведении:

При желании нажмите Quick Fix..., чтобы удалить это свойство $schema из редактора.
Настройка и размещение полос прокрутки
Полосы прокрутки на странице отчёта и в области предварительного просмотра редактора переработаны. Видимые улучшения:
- Фон отчёта больше не просвечивает у краёв визуала, который полностью помещается. Прежний контейнер оставлял несколько пикселей под полосу прокрутки даже при точном соответствии размера содержимого. Теперь полосы накладываются поверх содержимого и не резервируют место.
- На карточке форматирования Scrollbars появился параметр Scrollbar width: по умолчанию
10px, минимум8px, максимум16px. - Максимум Scrollbar radius увеличен до
8pxс прежних3pxдля согласования с новой настройкой.
Подробнее — на странице «Прокрутка и выход за границы».
Фокус клавиатуры на странице отчёта
Пользовательские визуалы Power BI без дополнительной реализации не позволяют передать фокус внутрь при перемещении между визуалами клавишей Tab. Теперь, когда визуал получает фокус на странице отчёта, нажмите [Enter], чтобы передать его во внутреннюю часть Deneb. После этого можно перемещаться клавишей Tab между доступными элементами редактора или просмотра и взаимодействовать с ними с клавиатуры.
Это работает и в редакторе. Если фокус находится в редакторе JSON, нажмите [Ctrl + M] в Windows или [Ctrl + Shift + M] на Mac, чтобы переключить перехват Tab и перемещаться между элементами интерфейса Deneb.
- В режиме просмотра [Esc] возвращает фокус на страницу отчёта, позволяя перейти клавишей Tab к следующему визуалу.
- В интерфейсе редактора, когда фокус вне редактора Monaco, [Esc] переводит его на действие Power BI Back to report, чтобы можно было вернуться к отчёту.
Просмотр содержимого ячеек панели отладки
Вкладки Data и Signals переработаны для просмотра значений по щелчку. Раньше длинные или сложные значения сокращались многоточием (...) и лишь частично показывались во всплывающей подсказке.
Теперь можно просмотреть любую ячейку:
Щелчок или Enter / Space, когда ячейка в фокусе, открывает редактор Monaco только для чтения с полным значением.
Скалярные значения показываются в компактном всплывающем окне как простой текст. Объекты и массивы — в более крупном окне с форматированием JSON, подсветкой синтаксиса и сворачиванием кода.
Для крупных или сложных объектов показывается поверхностная копия значения. Этого достаточно, чтобы понять структуру и содержимое, не перегружая редактор и не ухудшая производительность.

Таблицы теперь поддерживают перемещение с клавиатуры как сетка: стрелки / Home / End — перемещение, Enter / Space — просмотр значения, Escape — закрытие, Tab — выход из сетки.
Схема шаблонов v2
Схема метаданных шаблонов обновлена до v2. Сериализованный JSON шаблона теперь использует usermeta.datasets — объект с ключами по именам наборов данных — вместо usermeta.dataset, плоского массива. Ключи заполнителей включают имя своего набора данных: например, __dataset.0__ вместо __0__.
- Шаблоны предыдущих версий Deneb по-прежнему импортируются: при загрузке Deneb преобразует структуру в v2. Пользователю ничего делать не нужно.
- Новые шаблоны должны соответствовать v2. Ключи заполнителей проверяются по образцу
__<dataset>.<index>__. Собственные имена вроде__myField__, допустимые в v1, больше не принимаются. Опубликованную JSON-схему v2 можно использовать для проверки перед импортом. - Изменение касается только сериализованного JSON шаблона. Интерфейс визуала, возможности PBIR и поведение во время выполнения не меняются.
Полная структура описана на странице «Шаблоны».
Обновления Vega
- Vega обновлена до 6.4.0 с 6.2.0.
- Vega-Lite обновлена до 6.4.3 с 6.4.1.
Производительность и стабильность
Основная обработка строк после получения данных от Power BI стала примерно на 20% быстрее, чем в версии 1.9.
Загрузка и запуск ресурсов, относящихся только к редактору, — например инициализация Monaco и предварительная подготовка JSON-схем Vega, — теперь выполняются лишь в необходимых случаях. Это уменьшает блокировки интерфейса при переходе между режимами просмотра и редактирования (#581).
В пакет включены только локали, поддерживаемые Microsoft. Это уменьшает размер визуала (#593).
Зависимости внутренней проверки JSON-схем приведены к единому виду, что устранило дублирование кода (#595).
Размер пакета уменьшился до 1,74 МБ: на 5% по сравнению с 1.9.0 и на 19% по сравнению с 1.7.0.
Исправления ошибок
- Фон панели инструментов отладки и просмотра журнала ошибочно был прозрачным, что затрудняло чтение в тёмной теме (#604).
- Создание собственных сигналов
heightи/илиwidthнарушало компиляцию (#417). - При открытии редактора визуала внутри группы на странице отчёта неправильно применялась область просмотра режима View mode (#620).
- При разборе на токены пропускались имена полей, использованные как строковые литералы в выражениях (#521).
Что меняется для PBIR и шаблонов
Многие изменения выше нужно учитывать при создании визуалов в расширенном формате отчётов Power BI (PBIR) и при подготовке шаблонов. Подробности добавлены на соответствующие страницы документации. Если у вас есть собственные инструменты для такой работы, ниже приведён краткий список того, что нужно проверить и обновить.
| Возможность | Изменения свойств визуала | Изменения шаблонов |
|---|---|---|
| Схема шаблонов v2 | Свойства визуала не меняются. | usermeta.dataset — плоский массив — заменён на usermeta.datasets, объект с ключами по именам наборов данных. Формат ключей заполнителей ограничен образцом __<dataset>.<index>__. Шаблоны v1 автоматически переносятся при импорте. |
| Параметры полей | Новое свойство objects.stateManagement.consolidateFieldParameters (bool) определяет, объединяются ли компоненты параметров полей в столбцы с массивами значений. |
Новые записи kind: 'parameter' в метаданных datasets[<name>][] учитывают экспортированные параметры полей. Назначение обычного столбца или меры позиции параметра при импорте автоматически включает объединение и помечает поле как параметр. |
| Настройка вспомогательных полей | Два новых свойства: objects.stateManagement.supportFieldConfiguration (text, сериализованная в JSON карта флагов по полям) и objects.stateManagement.denebMetaVersion (text, для обнаружения старых проектов и запуска переноса). |
Значение deneb.metaVersion в шаблоне увеличено до 2. Настройка supportFieldConfiguration для каждого поля включена в соответствующую запись datasets[<name>][]. |
| Непрерывное представление | Два новых свойства: objects.dataLimit.enableIncrementalDataUpdates включает обновление существующего представления, а objects.dataLimit.incrementalUpdateThreshold задаёт максимальное число строк, при котором предпринимается такая попытка. |
Структура шаблона не меняется. |
| Масштабирование Canvas | Новое свойство масштабирования Canvas: objects.stateManagement.scaleToZoom. |
Структура шаблона не меняется. |
| Управление контекстным меню | Новое свойство objects.interactivity.enableContextMenuSelector управляет сопоставлением точек данных для контекстного меню. Существующее enableContextMenu теперь включает или выключает показ меню. |
Добавлено свойство interactivity.contextMenuSelector, определяющее использование селекторов в контекстном меню. Существующее interactivity.enableContextMenu теперь включает или выключает показ меню. |