Выход версии платформы 8.3.16.869 стал значимым событием для сообщества разработчиков 1С. Этот релиз принес не просто косметические изменения, а фундаментальные технологические инструменты, которые расширяют границы применения системы — от аналитической отчетности до глубокой интеграции с веб-ресурсами и мобильными устройствами. В данной статье мы подробно разберем, какие возможности открываются перед программистом и как правильно использовать новые механизмы в реальных проектах.
Одной из самых ожидаемых функций стала возможность создания в расширениях собственных прикладных объектов. Ранее разработчики были вынуждены использовать различные «костыли» (например, параметры сеанса или служебные справочники), чтобы хранить настройки в расширении, не снимая основную конфигурацию с поддержки. Рассмотрим, что изменилось:
Важное замечание: При переходе на версию 8.3.16 платформа выполняет фоновую конвертацию структуры данных расширений. Это связано с тем, что теперь расширения работают с таблицами базы данных более плотно, обеспечивая производительность на уровне основной конфигурации. Мы должны учитывать, что при первом запуске тяжелых расширений может потребоваться время на реструктуризацию.
Разберем одну из самых мощных функций для разработчиков отчетов — поддержку GROUPING SETS в языке запросов. Раньше для получения итогов по разным разрезам в одном результате нам приходилось использовать конструкцию ОБЪЕДИНИТЬ ВСЕ, что приводило к многократному сканированию одних и тех же таблиц СУБД. Теперь мы можем решить эту задачу за один проход.
Проанализируем пример использования. Допустим, нам нужно получить итоги продаж одновременно в разрезах "Организация-Склад" и "Контрагент-Менеджер". С помощью ключевого слова ГРУППИРУЮЩИМ НАБОРАМ запрос будет выглядеть так:
ВЫБРАТЬ
Продажи.Организация,
Продажи.Склад,
Продажи.Контрагент,
Продажи.Менеджер,
СУММА(Продажи.Сумма) КАК СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты КАК Продажи
СГРУППИРОВАТЬ ПО
ГРУППИРУЮЩИМ НАБОРАМ (
(Продажи.Организация, Продажи.Склад),
(Продажи.Контрагент, Продажи.Менеджер)
)
В дополнение к этому реализована функция СгруппированоПо(). Она позволяет в коде определить, по какому именно набору группировки сформирована текущая строка результата. Это крайне полезно при программной обработке сложных аналитических выборок.
Выясним, как работает новая технология мобильного клиента с автономным режимом. Это решение призвано устранить главный недостаток мобильного клиента — полную зависимость от стабильного интернет-соединения.
Рассмотрим механику процесса:
Этот подход позволяет создавать приложения для складских работников или торговых представителей, которые могут продолжать работу в зонах с плохим приемом сети, а при появлении связи — синхронизировать изменения.
Платформа 8.3.16 предоставляет инструменты для «бесшовной» интеграции 1С в веб-инфраструктуру предприятия. Мы можем встроить веб-клиент внутрь любого сайта через iFrame и обеспечить взаимодействие между ними.
Для реализации обмена данными используется JavaScript API и библиотека webclient-bridge.js. Посмотрим на сценарий использования: на корпоративном портале в окне отображается форма 1С (например, личный кабинет сотрудника). При нажатии кнопки на самом сайте JS-код передает команду в 1С, форма внутри iFrame обновляется, и наоборот — 1С может передать событие сайту (например, об успешном сохранении документа), чтобы сайт обновил свои элементы управления.
Рассмотрим новые параметры информационной базы, направленные на усиление безопасности. Теперь на уровне платформы реализованы механизмы противодействия brute-force атакам (подбору паролей):
Также добавлена поддержка протокола OpenID Connect, что позволяет реализовать полноценный Single Sign-On (SSO) с использованием внешних провайдеров идентификации, таких как Google, Microsoft или корпоративные системы управления доступом.
Разберем небольшие, но крайне полезные улучшения в ежедневной работе пользователя и разработчика:
Строка поиска в таблицах: Теперь строка поиска доступна не только для динамических списков, но и для обычных таблиц формы, отображающих ТаблицаЗначений, ДеревоЗначений или СписокЗначений. Это значительно повышает удобство работы в сложных формах обработки данных.
Программный отбор в таблицах: Разработчики получили возможность более гибко управлять отображением данных. Посмотрим на пример кода для установки фиксированного отбора в таблице номенклатуры:
Элементы.ТаблицаНоменклатуры.ОтборСтрок = Новый ФиксированнаяСтруктура("ГруппаНоменклатуры", ТекущиеДанные.Группа);
Чтение PDF: Появился новый объект ЧтениеPDF. Мы можем программно извлекать текст из PDF-файлов, узнавать количество страниц и метаданные. Это открывает путь к автоматизации разбора первичных документов без использования внешних компонент.
Проанализируем технические оптимизации, которые часто остаются «под капотом»:
Подводя итог, можно сказать, что платформа 8.3.16 — это релиз про автономию (в расширениях и мобильных устройствах), аналитику (в запросах) и открытость (в интеграции с вебом). Мы рекомендуем постепенно переводить проекты на эту версию, предварительно протестировав работу расширений из-за изменения структуры их хранения.