Тип: КоллекцияОбъектовМетаданных. Коллекция объектов метаданных, которые описывают все WebSocket-клиенты, определенные в конфигурации. Элементами коллекции являются объекты типа ОбъектМетаданных: WebSocketКлиент.
Полное описание, параметры и ограничения
ОбъектМетаданныхКонфигурация.WebSocketКлиенты (ConfigurationMetadataObject.WebSocketClients)
ОбъектМетаданныхКонфигурация (ConfigurationMetadataObject)
WebSocketКлиенты (WebSocketClients)
Доступен, начиная с версии 8.3.27.
Использование:
Только чтение.
Описание:
Тип: КоллекцияОбъектовМетаданных.
Коллекция объектов метаданных, которые описывают все WebSocket-клиенты, определенные в конфигурации.
Элементами коллекции являются объекты типа ОбъектМетаданных: WebSocketКлиент.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.3.27.
Методическая информация
Практические примеры
Составить карту категорий объектов текущей конфигурации
Инвентаризация схемы: сколько определено справочников, документов, регистров, форм и сервисов. Это не число товаров или документов в базе.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Для запуска на старой версии некоторые новые категории могут отсутствовать. Здесь используется именно API 8.5.1.1343.
Категории = Новый Соответствие;
Категории.Вставить("Справочники", Метаданные.Справочники);
Категории.Вставить("Документы", Метаданные.Документы);
Категории.Вставить("Журналы документов", Метаданные.ЖурналыДокументов);
Категории.Вставить("Перечисления", Метаданные.Перечисления);
Категории.Вставить("Константы", Метаданные.Константы);
Категории.Вставить("Регистры сведений", Метаданные.РегистрыСведений);
Категории.Вставить("Регистры накопления", Метаданные.РегистрыНакопления);
Категории.Вставить("Регистры бухгалтерии", Метаданные.РегистрыБухгалтерии);
Категории.Вставить("Регистры расчета", Метаданные.РегистрыРасчета);
Категории.Вставить("Планы счетов", Метаданные.ПланыСчетов);
Категории.Вставить("Планы видов характеристик", Метаданные.ПланыВидовХарактеристик);
Категории.Вставить("Планы видов расчета", Метаданные.ПланыВидовРасчета);
Категории.Вставить("Планы обмена", Метаданные.ПланыОбмена);
Категории.Вставить("Бизнес-процессы", Метаданные.БизнесПроцессы);
Категории.Вставить("Задачи", Метаданные.Задачи);
Категории.Вставить("Последовательности", Метаданные.Последовательности);
Категории.Вставить("Нумераторы", Метаданные.НумераторыДокументов);
Категории.Вставить("Общие модули", Метаданные.ОбщиеМодули);
Категории.Вставить("Подписки на события", Метаданные.ПодпискиНаСобытия);
Категории.Вставить("Регламентные задания", Метаданные.РегламентныеЗадания);
Категории.Вставить("Общие реквизиты", Метаданные.ОбщиеРеквизиты);
Категории.Вставить("Параметры сеанса", Метаданные.ПараметрыСеанса);
Категории.Вставить("Определяемые типы", Метаданные.ОпределяемыеТипы);
Категории.Вставить("Обработки", Метаданные.Обработки);
Категории.Вставить("Отчеты", Метаданные.Отчеты);
Категории.Вставить("Общие формы", Метаданные.ОбщиеФормы);
Категории.Вставить("Общие команды", Метаданные.ОбщиеКоманды);
Категории.Вставить("Группы команд", Метаданные.ГруппыКоманд);
Категории.Вставить("Общие макеты", Метаданные.ОбщиеМакеты);
Категории.Вставить("Общие картинки", Метаданные.ОбщиеКартинки);
Категории.Вставить("Подсистемы", Метаданные.Подсистемы);
Категории.Вставить("Интерфейсы", Метаданные.Интерфейсы);
Категории.Вставить("Стили", Метаданные.Стили);
Категории.Вставить("Элементы стиля", Метаданные.ЭлементыСтиля);
Категории.Вставить("Цвета палитры", Метаданные.ЦветаПалитры);
Категории.Вставить("Языки", Метаданные.Языки);
Категории.Вставить("Роли", Метаданные.Роли);
Категории.Вставить("Роли автономных ограничений", Метаданные.РолиОграниченияАвтономнойКонфигурации);
Категории.Вставить("Функциональные опции", Метаданные.ФункциональныеОпции);
Категории.Вставить("Параметры функциональных опций", Метаданные.ПараметрыФункциональныхОпций);
Категории.Вставить("Критерии отбора", Метаданные.КритерииОтбора);
Категории.Вставить("Хранилища настроек", Метаданные.ХранилищаНастроек);
Категории.Вставить("HTTP-сервисы", Метаданные.HTTPСервисы);
Категории.Вставить("Web-сервисы", Метаданные.WebСервисы);
Категории.Вставить("WS-ссылки", Метаданные.WSСсылки);
Категории.Вставить("WebSocket-клиенты", Метаданные.WebSocketКлиенты);
Категории.Вставить("Сервисы интеграции", Метаданные.СервисыИнтеграции);
Категории.Вставить("Боты", Метаданные.Боты);
Категории.Вставить("Пакеты XDTO", Метаданные.ПакетыXDTO);
Категории.Вставить("Внешние источники данных", Метаданные.ВнешниеИсточникиДанных);
ВсегоОписаний = 0;
Для Каждого Категория Из Категории Цикл
Количество = Категория.Значение.Количество();
Сообщить(СтрШаблон("%1: %2", Категория.Ключ, Количество));
ВсегоОписаний = ВсегоОписаний + Количество;
КонецЦикла;
Сообщить("Учтено верхнеуровневых описаний: " + Строка(ВсегоОписаний));
Сообщить(Категории.Количество() = 50);Разбор по шагам
У каждой категории берём коллекцию метаданных напрямую из корня текущей конфигурации.
Соответствие связывает понятную подпись с коллекцией. Цикл вызывает Количество описаний, не выбирает данные прикладных таблиц.
Разделяем прикладные объекты, исполняемые модули/события, интерфейс/оформление, права/опции и интеграционные контракты.
Пустая коллекция допустима: отсутствие WebSocket-клиентов или планов расчёта не является ошибкой конфигурации.
Итог складывает только верхний уровень. Вложенные реквизиты, формы объектов и колонки сюда не включаются.
Как проверить результат
В выводе ровно 50 категорий с неотрицательными количествами.
Сверьте два значения со своим деревом Конфигурация: например, Справочники и ОбщиеМодули.
Пустая учебная база может иметь документы в метаданных и 0 документов в данных. Создание экземпляра документа не изменяет этот отчёт.
Ожидаемый результат
Получена карта состава схемы без чтения товаров, пользователей, документов и секретов интеграций.
На что обратить внимание
ОбщиеФормы не включает все формы каждого справочника: они вложены в соответствующие объекты.
Количество HTTPСервисов не доказывает публикацию, доступность или правильность HTTP-ответов.
Количество Роли не означает число пользователей и не раскрывает назначенные пользователю права.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Проверить происхождение объекта и границы чтения модуля
В пустой учебной конфигурации свой клиент не добавлен расширением. Модуль в метаданных возвращает Неопределено и не является способом выгрузить исходный BSL.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Только отдельная пустая конфигурация Учебная85 на платформе 8.5.1.1343, без расширений. Не добавляйте клиент в рабочую КА2/УНФ/УТ/БП для этих упражнений.
В Конфигураторе создайте Метаданные → WebSocket-клиенты → УчебныйКлиент. Синоним: Учебный канал сообщений. Комментарий: Настройки для чтения, соединение не выполняется.
Обязательно выключите Подключать автоматически до обновления базы и запуска Предприятия. URL сервера: wss://example.invalid/training; таймаут 15 секунд. Использовать аутентификацию ОС и Использовать прокси ОС выключены. Пользователь и пароль пусты.
В дополнительных заголовках задайте только X-Training-Mode = SyntaxGuide. Не добавляйте Authorization, Cookie или настоящий токен. Модуль клиента оставьте пустым. Обновите конфигурацию базы данных.
Каждый фрагмент выполняется отдельно на сервере учебной базы. Он читает описание уже подготовленного объекта; создание сетевого WebSocketКлиент и соединение не вызываются.
Описание = Метаданные.WebSocketКлиенты.Найти("УчебныйКлиент");
Если Описание = Неопределено Тогда
ВызватьИсключение "Сначала подготовьте собственный WebSocket-клиент в Конфигураторе";
КонецЕсли;
Если Описание.ПодключатьАвтоматически Тогда
ВызватьИсключение "Для этого урока автоподключение должно быть выключено до запуска базы";
КонецЕсли;
Варианты = Метаданные.СвойстваОбъектов;
Сообщить(Описание.ПринадлежностьОбъекта = Варианты.ПринадлежностьОбъекта.Собственный);
Сообщить(Не Описание.ЕстьИзмененияРасширениямиКонфигурации());
Сообщить(Описание.РасширениеКонфигурации() = Неопределено);
Сообщить(Описание.Модуль = Неопределено);
Сообщить("Тип ссылки заимствованного объекта: " + Строка(ТипЗнч(Описание.ОбъектРасширяемойКонфигурации)));
Сообщить("Стандартных описаний: " + Строка(Описание.СтандартныеРеквизиты.Количество()));Разбор по шагам
Собственный сравнивается с типизированным системным значением из СвойстваОбъектов, не с русской строкой.
В подготовке нет расширений: ожидаем отсутствие изменений и описания расширения-источника.
ОбъектРасширяемойКонфигурации нужен для заимствования. Его тип выводится диагностически; не объявляем неизвестный GUID ссылкой живого WebSocket-соединения.
Модуль по справке имеет тип Неопределено. Даже непустой BSL в Конфигураторе нельзя получить чтением этого свойства.
СтандартныеРеквизиты содержит описания стандартных полей, не данные переданных сообщений. Их количество не задаём выдуманной константой.
Как проверить результат
Четыре сравнения Истина в собственной подготовке без расширений.
Тип идентификатора и количество стандартных описаний диагностические; ни исходный модуль, ни сетевые сообщения не выгружаются.
Ожидаемый результат
Разобраны происхождение объекта и ограничения метаданных для чтения исходников.
На что обратить внимание
В конфигурации с расширениями значения могут отличаться; сначала изучите происхождение объекта.
Неопределено у Модуль не доказывает отсутствие обработчиков в Конфигураторе.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.