Как определить тип процессора смартфона средствами 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке мобильных приложений на платформе 1С часто возникает необходимость получить информацию об аппаратной части устройства. Это может быть полезно для оптимизации производительности, сбора статистики или адаптации интерфейса под конкретное железо. Одной из ключевых характеристик является тип процессора. В данной статье мы разберем, какими способами можно получить эти данные, начиная от стандартных методов платформы и заканчивая более сложными техническими решениями.

Стандартный метод платформы 1С: использование объекта СистемнаяИнформация

Самый простой и очевидный способ, предусмотренный разработчиками 1С, — это обращение к свойствам объекта СистемнаяИнформация. Рассмотрим, как это реализовано в коде. Этот метод работает быстро и не требует специальных разрешений от операционной системы.

Проанализируем пример кода, который позволяет вывести информацию о процессоре:


СисИнфо = Новый СистемнаяИнформация;
ТипПроцессора = СисИнфо.Процессор;
Сообщить("Тип процессора устройства: " + ТипПроцессора);

Разберем подробнее, что именно мы получаем в результате. На настольных ПК это свойство возвращает подробную информацию (например, «Intel Core i7»). Однако на мобильных устройствах (Android или iOS) ситуация иная. Платформа 1С стремится к универсальности, поэтому свойство Процессор чаще всего вернет архитектуру набора команд (ISA), например, ARM или x86.

Важный нюанс: Если вам достаточно знать архитектуру для выбора нужной библиотеки или компоненты, этого метода хватит. Но если ваша задача — узнать коммерческое название чипа (например, Snapdragon 8 Gen 2), стандартных средств будет недостаточно.

Использование внешних компонент (Native Components)

Для получения детальных характеристик «железа» мы можем воспользоваться механизмом внешних компонент. Это позволяет 1С напрямую обращаться к API операционной системы Android или iOS. Рассмотрим, как это работает для каждой системы.

Для ОС Android: Мы можем написать небольшую компоненту на Java, которая будет обращаться к классу android.os.Build. В этом классе содержатся поля, которые дают гораздо больше информации:

  1. BOARD — название основной платы.
  2. HARDWARE — название чипсета от производителя.
  3. SOC_MODEL — модель однокристальной системы (доступно в современных версиях API Android).

Для iOS: В экосистеме Apple прямой доступ к названию процессора через программный код ограничен из соображений безопасности. Тем не менее, внешняя компонента может получить идентификатор модели (например, «iPhone 15,3»). Далее, используя внутреннюю таблицу соответствия, мы можем легко определить, какой процессор установлен в данной модели (в данном примере это A16 Bionic).

Чтение системных файлов (только для Android)

Выясним причину, по которой Android позволяет получить больше данных. Это открытая операционная система на базе ядра Linux, где информация о системе представлена в виде виртуальных файлов. Мы можем попытаться прочитать файл /proc/cpuinfo с помощью средств 1С или системных команд оболочки.

Рассмотрим пример алгоритма действий:

  1. Используем средства работы с файлами в 1С для попытки доступа к пути /proc/cpuinfo.
  2. Читаем содержимое файла построчно.
  3. Ищем строки Processor, model name или Features.

Обратите внимание: В последних версиях Android (начиная с 10-11 и выше) доступ к системным файлам для обычных приложений постепенно ограничивается Google. Поэтому данный метод может вернуть пустую строку или ошибку доступа на новых смартфонах без специальных прав (root).

Определение процессора через модель устройства

Если нам не удается получить данные напрямую от железа, мы можем применить обходной, но очень эффективный путь. Идея заключается в связке локальных данных и внешнего справочника характеристик. Разберем этот метод по шагам:

  1. Сначала получаем точное название модели устройства через СистемнаяИнформация.Модель.
  2. Отправляем HTTP-запрос к внешнему API или веб-сервису, который содержит базу данных характеристик смартфонов.
  3. По полученному коду модели (например, «SM-S911B») сервис вернет нам полный список характеристик, включая производителя процессора, количество ядер и частоту.

Этот способ является наиболее надежным для бизнес-приложений, так как позволяет получить маркетинговое название процессора, которое понятно пользователю.

Косвенное определение через JavaScript (для мобильного клиента)

Проанализируем ситуацию, когда 1С работает через Мобильный клиент или как веб-приложение. В этом случае у нас есть доступ к объекту ПолеHTMLДокумента и возможностям JavaScript. С помощью библиотек WebGL можно получить информацию о видеоускорителе (GPU). Поскольку в современных смартфонах GPU жестко интегрирован в процессор (SoC), зная модель GPU (например, Adreno 740), мы со 100% вероятностью можем определить модель центрального процессора.

Подведем итог: Для базовых задач инвентаризации используйте СистемнаяИнформация.Процессор. Если же вам требуется глубокая диагностика устройства, оптимальным выбором будет использование внешних компонент или интеграция с онлайн-базами данных характеристик по модели устройства.

← На главную